nixos-config

使用 Nix 统一管理 macOS 和 NixOS 开发环境与家庭服务器配置

安装使用

复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:

帮我安装这个 AI Skill:nixos-config。
它的用途是:使用 Nix 统一管理 macOS 和 NixOS 开发环境与家庭服务器配置
完整的 Skill 内容见:https://321skill.com/skills/nixos-config-shren207/raw/index.md
请读取该页面内容,如果是 SKILL.md 格式直接安装,如果是 README 提炼核心 prompt 后安装。

提示词包含完整的 Skill 内容链接,AI 读取后即可完成安装。你也可以 查看完整内容 确认无误。

使用示例

“我想在家庭服务器上新增一个 Jellyfin 媒体服务,并集成到现有的 Caddy 反向代理中。” 它会引导你查看 `homeserver` 选项的声明方式,并参考现有服务模块的结构,在 `constants.nix` 中添加域名和端口常量,最后在 NixOS 配置中启用该服务。或者,

对AI说:“我的 Mac 上需要一个新的命令行工具,如何把它同时添加到 Mac 和服务器环境?” 它会指出应将其添加到 `modules/shared/` 下的相应程序模块中,以实现跨平台共享。

介绍

这是一个使用 Nix 生态(nix-darwin/NixOS + Home Manager)来声明式管理跨平台开发环境和家庭服务器配置的项目。它解决了在多台机器(如个人 MacBook 和远程 NixOS 服务器)上维护一致且可复现的开发环境的难题。

通过一个集中的 Flake 配置,用户可以定义共享的开发工具(如 Shell、Neovim、Git)和平台特定的设置(如 macOS 的 GUI 应用或 NixOS 的家庭服务器服务)。使用项目提供的 nrs 命令即可一键构建和切换环境。

它非常适合需要在多台机器上工作,并希望环境配置像代码一样可版本控制、可分享和可重现的开发者。对于拥有 NixOS 家庭服务器,并希望统一管理开发与部署环境的全栈开发者或运维工程师尤其有用。

建议用户具备一定的 Nix 语言基础,并仔细阅读项目中的 CLAUDE.md 以了解 AI 辅助开发的规则。配置家庭服务器时,需预先规划好网络、存储路径等常量,并在 libraries/constants.nix 中集中管理。

核心特点

与仅管理单一操作系统或纯开发环境的 Nix 配置不同,本项目核心在于将 macOS 开发机与 NixOS 家庭服务器的配置在同一个代码库中统一管理,并通过精心设计的模块化架构(如共享模块、平台专属模块、集中常量管理)实现配置的高内聚低耦合。

注意事项

不适合对 Nix 生态不熟悉、或仅需配置单台普通 Linux 桌面环境的初学者。

常见问题

如何在 Mac 和 MiniPC 上应用配置?

在项目根目录运行 `nrs` 命令,它会根据当前系统自动调用对应的重建命令。

如何添加新的家庭服务器服务?

在 `modules/nixos/options/homeserver.nix` 中声明选项,并在 `modules/nixos/configuration.nix` 中启用和配置。

给 AI 助手的安装指引

如果你的 AI 编程助手(Claude Code、Cursor、TRAE 等)能看到这个页面,把下面这段发给它即可自动完成安装:

请访问 https://321skill.com/skills/nixos-config-shren207/raw/index.md 读取 nixos-config 的原始 Skill 定义(Markdown 格式),按其中说明在我的环境里完成安装和配置。