76 lines
2.3 KiB
Nix
76 lines
2.3 KiB
Nix
{ config, containerCfg, pkgs, lib, builder, name,... }:
|
|
let
|
|
serverCfg = config.syscfg.server;
|
|
image = pkgs.dockerTools.streamLayeredImage {
|
|
name = pkgs.handbrake.name;
|
|
tag = pkgs.handbrake.version;
|
|
#contents = [ pkgs.coreutils ];
|
|
|
|
config = {
|
|
Entrypoint = [ "${pkgs.handbrake}/bin/HandBrakeCLI" ];
|
|
WorkingDir = "/storage";
|
|
Env = [ "PATH=${lib.makeBinPath [ pkgs.handbrake ]}"];
|
|
};
|
|
};
|
|
in {
|
|
sops = false; # Enabled to manage potential API keys or secure paths
|
|
db = false;
|
|
|
|
paths = [{
|
|
path = "${serverCfg.configPath}/handbrake/config";
|
|
mode = "0755";
|
|
} {
|
|
path = "${serverCfg.dataPath}/handbrake/";
|
|
mode = "0755";
|
|
}];
|
|
|
|
containers = {
|
|
server = builder.mkContainer {
|
|
subdomain = containerCfg.subdomain;
|
|
imageStream = image;
|
|
port = 5800;
|
|
|
|
extraEnv = {
|
|
TZ = "UTC";
|
|
USER_ID = "1000";
|
|
GROUP_ID = "1000";
|
|
AUTOMATED_CONVERSION_PRESET = "Very Fast 1080p30";
|
|
AUTOMATED_CONVERSION_FORMAT = "mp4";
|
|
AUTOMATED_CONVERSION_OUTPUT_DIR = "/output";
|
|
AUTOMATED_CONVERSION_WATCH_DIR = "AUTO";
|
|
AUTOMATED_CONVERSION_KEEP_SOURCE = "1";
|
|
AUTOMATED_CONVERSION_OVERWRITE_OUTPUT = "0";
|
|
AUTOMATED_CONVERSION_VIDEO_FILE_EXTENSIONS = "";
|
|
AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION = "ignore";
|
|
AUTOMATED_CONVERSION_NON_VIDEO_FILE_EXTENSIONS = "jpg jpeg bmp png gif txt nfo";
|
|
AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS = "5";
|
|
AUTOMATED_CONVERSION_CHECK_INTERVAL = "5";
|
|
AUTOMATED_CONVERSION_HANDBRAKE_CUSTOM_ARGS = "";
|
|
AUTOMATED_CONVERSION_NO_GUI_PROGRESS = "0";
|
|
AUTOMATED_CONVERSION_USE_TRASH = "0";
|
|
HANDBRAKE_GUI = "1";
|
|
};
|
|
extraLabels = { } // (if serverCfg.containers ? authentik then {
|
|
"traefik.http.routers.${containerCfg.subdomain}.middlewares" = "authentik";
|
|
} else {});
|
|
|
|
overrides = {
|
|
volumes = [
|
|
"${serverCfg.configPath}/handbrake/config:/config:rw"
|
|
"${serverCfg.dataPath}/handbrake/watch:/watch:rw"
|
|
"${serverCfg.dataPath}/handbrake/output:/output:rw"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
setup = {
|
|
trigger = "server";
|
|
script = pkgs.writeShellScript "setup" ''
|
|
mkdir -p ${serverCfg.dataPath}/handbrake/{watch,output}
|
|
|
|
'';
|
|
};
|
|
|
|
} |