Nix 统一模块系统

⭐⭐⭐⭐ Nix DevOps 配置管理

摘要

作者分享如何组织 Nix/NixOS/home-manager/darwin 配置的最佳实践,解决多平台配置管理的痛点。按功能而非类型组织模块,实现跨平台配置的无缝管理。

为什么不喜欢"标准"方法

  • 模块按类型分割(home/nixos/darwin),而非按功能
  • 相关功能的模块分散在不同目录
  • 需要手动导入和启用多个模块
  • 重构时容易遗漏

设计目标

  • 仅限 Dotfiles:只处理个人电脑配置,服务器配置分离
  • 不使用独立 Home Manager:只在 NixOS/macOS 上运行
  • 单一用户:配置只针对个人设备
  • opinionated 模块:提供开箱即用的元模块
  • 跨平台行为:轻松定义 NixOS/macOS 特定配置
  • 无外部依赖:DIY 方案,完全控制

示例配置结构

{ pkgs, ... }: { imports = [ ./hardware-configuration.nix ]; nixfiles = { enable = true; user.name = "dan"; development = {...}; desktop = {...}; # 按功能组织,而非按平台 }; }
← 返回索引