47 lines
1,008 B
Nix
47 lines
1,008 B
Nix
{
|
|
inputs,
|
|
pkgs,
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.modules.pelican-wings;
|
|
in {
|
|
options = {
|
|
modules.pelican-wings = {
|
|
enable = mkEnableOption "Pelican Wings";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
networking.firewall.allowedTCPPorts = [8080 8443];
|
|
|
|
virtualisation.docker.enable = true;
|
|
|
|
environment.systemPackages = [
|
|
(pkgs.callPackage ./package.nix {})
|
|
];
|
|
|
|
systemd.services.pelican-wings = {
|
|
description = "Wings Daemon";
|
|
after = ["docker.service"];
|
|
requires = ["docker.service"];
|
|
partOf = ["docker.service"];
|
|
|
|
serviceConfig = {
|
|
User = "root";
|
|
WorkingDirectory = "/etc/pelican";
|
|
LimitNOFILE = 4096;
|
|
PIDFile = "/var/run/wings/daemon.pid";
|
|
ExecStart = "/run/current-system/sw/bin/wings";
|
|
Restart = "on-failure";
|
|
startLimitInterval = 180;
|
|
startLimitBurst = 30;
|
|
RestartSec = "5";
|
|
};
|
|
|
|
wantedBy = ["multi-user.target"];
|
|
};
|
|
};
|
|
}
|