57 lines
1.6 KiB
Nix
57 lines
1.6 KiB
Nix
{ 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"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
} |