Skip to content

Repository files navigation

Snowveil

Snowveil 是一个基于 Nix Flakes 的约定式配置框架。它按目录自动发现 NixOS 主机、Home Manager 配置、模块、packages 和 overlays,减少多主机配置中的 import 与 output 样板。

  • NixOS 与 Home Manager 共享单一模块树
  • 使用角色组合主机配置
  • nixpkgs.lib 实现,无 flake-utilsflake.parts 运行时依赖

快速开始

nix flake init --template github:SnowveilOrg/Snowveil

最小 flake.nix

{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    home-manager.url = "github:nix-community/home-manager";
    home-manager.inputs.nixpkgs.follows = "nixpkgs";
    snowveil.url = "github:SnowveilOrg/Snowveil";
    snowveil.inputs.nixpkgs.follows = "nixpkgs";
    snowveil.inputs.home-manager.follows = "home-manager";
  };

  outputs = inputs: inputs.snowveil.lib.mkFlake { inherit inputs; };
}

随后在 hosts/homes/modules/ 中添加配置即可。完整示例见 examples/basic/

文档

文档站位于 docs/,本地预览可运行 cd docs && npm run docs:dev

开发

开发约定见 AGENTS.md。提交前运行:

nix fmt
deadnix -l -L -_
statix check
nix flake check

许可证

MIT

About

基于 Nix Flakes 的声明式配置框架

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Contributors

Languages