{ config, containerCfg, pkgs, lib, builder, name, ... }: let serverCfg = config.syscfg.server; image = pkgs.dockerTools.streamLayeredImage { name = pkgs.transmission_4.name; tag = pkgs.transmission_4.version; contents = [ pkgs.cacert ]; config = { Cmd = [ "${pkgs.transmission_4}/bin/transmission-daemon" "--foreground" "--config-dir" "/config" ]; ExposedPorts = { "9091/tcp" = {}; "51413/tcp" = {}; "51413/udp" = {}; }; }; }; in { paths = [{ path = "${serverCfg.dataPath}/transmission/complete"; owner = "1000:1000"; mode = "0755"; }{ path = "${serverCfg.dataPath}/transmission/incomplete"; owner = "1000:1000"; mode = "0755"; }{ path = "${serverCfg.dataPath}/transmission/config"; owner = "1000:1000"; mode = "0755"; }]; containers = { server = builder.mkContainer { subdomain = containerCfg.subdomain; imageStream = image; port = 9091; extraEnv = { PUID = "1000"; PGID = "1000"; TZ = "Europe/Zurich"; }; extraLabels = { } // (if serverCfg.containers ? authentik then { "traefik.http.routers.${containerCfg.subdomain}.middlewares" = "authentik"; } else {}); overrides = { cmd = [ ]; volumes = [ "${serverCfg.dataPath}/transmission/complete:/downloads/complete" "${serverCfg.dataPath}/transmission/incomplete:/downloads/incomplete" "${serverCfg.dataPath}/transmission/config:/config" ]; }; }; }; }