Snowveil 是一个基于 Nix Flakes 的约定式配置框架。它按目录自动发现 NixOS 主机、Home Manager 配置、模块、packages 和 overlays,减少多主机配置中的 import 与 output 样板。
- NixOS 与 Home Manager 共享单一模块树
- 使用角色组合主机配置
- 纯
nixpkgs.lib实现,无flake-utils或flake.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 checkMIT