此仓库包含我所有NixOS系统的配置文件。
LT),提供广泛的函数和常量来管理配置。我的主机分为三种类型:
client:运行NixOS的主机。通常是运行桌面环境的台式机/笔记本电脑。minimal:最小化的NixOS主机,用于特殊目的。server:运行NixOS且无图形界面的主机。通常是云提供商上的虚拟机。dns:我的自定义Nix到DNSControl代码,生成DNSControl的config.js文件,控制我域名的DNS记录。
common:跨域共享的公共记录。core:将Nix属性集转换为DNSControl config.js格式的核心组件。domains:控制单个(或组)区域的Nix定义。helpers:此仓库中代码使用的快捷方式定义。
home:我的Home Manager配置。
common-apps:所有节点使用的应用程序。client-apps:client节点使用的应用程序。hosts:特定主机的NixOS系统定义。每个子目录对应一个主机。主机列表在flake.nix中自动获取。这里的配置通常控制网络参数和特定主机的调优。
nixos:公共NixOS系统定义。
所有节点使用
common-apps:所有节点使用的应用程序。minimal-apps:所有节点使用的应用程序。minimal-components:所有节点使用的系统选项。
minimal-modules:自包含的NixOS模块,理论上是可向上游提交到nixpkgs的。它们独立工作,默认禁用,只添加选项而不启用服务,除非显式配置。适用于所有主机类型。客户端节点使用
client-apps:客户端节点特有的应用程序。client-components:客户端节点特有的组件。服务器节点使用
server-apps:服务器节点使用的应用程序。server-components:服务器节点使用的组件。Proxmox VE节点使用
pve-components:Proxmox VE节点特有的组件。补充文件
hardware:通用硬件配置片段,包括LVM和QEMU虚拟机。optional-apps:部分节点使用的应用程序。需要在特定主机定义中手动导入。optional-cron-jobs:部分节点使用的Cron任务。需要在特定主机定义中手动导入。