Nix / NixOS
将 daed 模块合并到现有 NixOS flake,保留原有 Nixpkgs、系统与硬件配置,并将 HOSTNAME 替换为配置名称。
1. 导入 NixOS 模块
nix
# flake.nix
{
inputs.daeuniverse.url = "github:daeuniverse/flake.nix";
# ...
outputs = {nixpkgs, ...} @ inputs: {
nixosConfigurations.HOSTNAME = nixpkgs.lib.nixosSystem {
modules = [
inputs.daeuniverse.nixosModules.daed
];
};
};
}2. 启用 daed
nix
# nixos configuration module
{
# daed - dae with a web dashboard
services.daed = {
enable = true;
openFirewall = {
enable = true;
port = 12345;
};
/* default options
package = inputs.daeuniverse.packages.x86_64-linux.daed;
configDir = "/etc/daed";
listen = "127.0.0.1:2023";
*/
};
}默认配置目录为 /etc/daed,Web 界面监听 127.0.0.1:2023,仅供本机访问。openFirewall.port 是代理端口,并非 Web 界面端口。参见模块选项。
3. 应用系统配置
在系统 flake 目录中,将 HOSTNAME 替换为配置名称后执行:
shell
sudo nixos-rebuild switch --flake .#HOSTNAMEshell
nixos-rebuild switch --flake .#HOSTNAME模块管理 systemd 开机启动,无需另外执行 systemctl enable。
其他安装方式:全局软件包
此方式与服务模块二选一。启用 services.daed 时,不要再通过 environment.systemPackages 安装另一份 daed。按架构将 x86_64-linux 调整为 aarch64-linux。
nix
# nixos configuration module
{
environment.systemPackages =
with inputs.daeuniverse.packages.x86_64-linux;
[ daed ];
}可选:二进制缓存
上游 garnix 缓存提供 x86_64-linux 与 aarch64-linux 构建。将以下设置合并到 NixOS 配置。
nix
nix.settings = {
substituters = ["https://cache.garnix.io"];
trusted-public-keys = [
"cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g="
];
};