nixos/applications/pelican/wings/wings.nix

42 lines
1,010 B
Nix
Raw Normal View History

{ 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" ];
};
};
}