infrastructure/nixos/syncplay.nix
2024-06-23 17:09:18 -07:00

36 lines
809 B
Nix

{
config,
lib,
...
}: let
inherit (lib.modules) mkIf mkDefault;
cfg = config.services.syncplay;
in {
sops.secrets = let
sopsFile = mkDefault ./secrets/syncplay.yaml;
owner = cfg.user;
in
mkIf cfg.enable {
syncplay-password = {
inherit sopsFile owner;
};
syncplay-salt = {
inherit sopsFile owner;
};
};
services.syncplay = {
enable = mkDefault true;
extraArgs = [
"--disable-ready"
];
user = mkDefault "syncplay";
group = mkDefault "syncplay";
saltFile = mkDefault config.sops.secrets.syncplay-salt.path;
passwordFile = mkDefault config.sops.secrets.syncplay-password.path;
};
networking.firewall = mkIf (cfg.enable && !cfg.openFirewall) {
interfaces.local.allowedTCPPorts = [cfg.port];
};
}