42 lines
1,010 B
Nix
42 lines
1,010 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" ];
|
||
|
};
|
||
|
};
|
||
|
}
|