mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 20:39:18 -08:00
49 lines
1 KiB
Nix
49 lines
1 KiB
Nix
{ config, lib, pkgs, utils, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.services.syncplay;
|
|
args = [
|
|
"--disable-ready"
|
|
"--port" cfg.port
|
|
] ++ optionals (cfg.certDir != null) [ "--tls" cfg.certDir ];
|
|
|
|
in {
|
|
sops.secrets.syncplay-env.owner = cfg.user;
|
|
|
|
users.users.${cfg.user} = {
|
|
inherit (cfg) group;
|
|
isSystemUser = true;
|
|
home = "/var/lib/syncplay";
|
|
};
|
|
users.groups.${cfg.group} = { };
|
|
|
|
networks.internet.tcp = [ cfg.port ];
|
|
|
|
domains.kittywitch-syncplay = {
|
|
network = "internet";
|
|
type = "cname";
|
|
domain = "sync";
|
|
};
|
|
|
|
networks.internet = {
|
|
extra_domains = [
|
|
"sync.kittywit.ch"
|
|
];
|
|
};
|
|
|
|
services.syncplay = {
|
|
enable = true;
|
|
user = "syncplay";
|
|
};
|
|
systemd.services.syncplay = mkIf cfg.enable {
|
|
serviceConfig = {
|
|
StateDirectory = "syncplay";
|
|
EnvironmentFile = singleton config.sops.secrets.syncplay-env.path;
|
|
ExecStart = mkForce [
|
|
"${pkgs.syncplay-nogui}/bin/syncplay-server ${utils.escapeSystemdExecArgs args}"
|
|
];
|
|
};
|
|
};
|
|
}
|