nixos-config
一个基于 Nix Flake 和 sops-nix 的多平台、安全的系统配置管理方案。
安装使用
复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:
帮我安装这个 AI Skill:nixos-config。 它的用途是:一个基于 Nix Flake 和 sops-nix 的多平台、安全的系统配置管理方案。 详细介绍见:https://321skill.com/skills/nixos-config-michaelvessia/ 请根据该页面的说明完成安装。
使用示例
“帮我看一下如何在 Nix 配置中为一个系统服务设置环境变量,这个变量值来自一个加密的秘密文件。” 它会引导你查看仓库中 `Using secrets` 部分关于 `systemd.services` 的示例,解释如何通过 `EnvironmentFile` 引用 `sops.secrets.<name>.path`,并提醒你需要在对应主机的 secrets YAML 文件中先定义这个秘密。
介绍
这个仓库提供了一个使用 Nix 和 Home Manager 来管理个人系统配置的完整方案。它解决了在多台机器(如 NixOS 和 macOS)上维护一致、可复现的开发环境与系统设置的难题。
通过声明式的 Nix 语言定义所有配置,并使用 Flake 进行依赖锁定,确保在任何机器上都能获得完全相同的环境。其核心工作流是通过简单的 reload 命令或标准的 nixos-rebuild/darwin-rebuild 命令来应用配置变更。
它非常适合追求基础设施即代码(IaC)、希望将个人开发环境版本化并能在多设备间无缝同步的开发者、运维工程师或技术爱好者。对于使用 NixOS 或 macOS(通过 nix-darwin)的用户尤其有价值。
使用建议是,如果你是 Nix 新手,可以先从理解其目录结构(如 hosts/, modules/, users/)开始,并利用其集成的 sops-nix 来安全地管理密钥等敏感信息。注意,此配置与作者的个人硬件(如 framework13)绑定,直接使用需要根据自身主机情况进行适配。
核心特点
核心区别在于:1) 明确区分了公开配置与私有配置(如 `floai` 输入),通过主机本地 Flake 文件管理私有依赖,使得公开仓库的 `nix flake update` 无需访问内部资源。2) 提供了跨 NixOS 和 macOS 的统一管理体验,并集成了基于 age 加密的、细粒度到主机的秘密管理方案(sops-nix),且包含详细的密钥共享(如与树莓派)和预提交钩子等生产级实践。
注意事项
不适合不熟悉 Nix 语言及其生态(如 Flakes, Home Manager)的初学者快速上手使用。
常见问题
如何在新的机器上初始化这个配置?
参考 docs/initial-setup.md 进行 SSH 密钥等首次设置,然后将你的 age 密钥复制到新机器即可开始管理秘密。
如何添加一个新的秘密(如 API 密钥)?
使用 `sops` 命令编辑对应主机的 YAML 文件添加秘密,在相应的 Nix 模块中声明,然后执行 `reload` 重建系统。