{ config, containerCfg, pkgs, lib, builder, name,... }: let serverCfg = config.syscfg.server; version = "latest"; routerName = if containerCfg.subpath != null then "${containerCfg.subdomain}-${lib.strings.sanitizeDerivationName containerCfg.subpath}" else containerCfg.subdomain; in { paths = [{ path = "${serverCfg.configPath}/handbrake/config"; mode = "0755"; } { path = "${serverCfg.dataPath}/handbrake/"; mode = "0755"; }]; containers = { server = builder.mkContainer { subdomain = containerCfg.subdomain; subpath = containerCfg.subpath; image = "ghcr.io/jlesage/handbrake:${version}"; port = 5800; extraEnv = { USER_ID = "1000"; GROUP_ID = "1000"; AUTOMATED_CONVERSION_PRESET = "Custom/AV1 MKV 1080p30"; AUTOMATED_CONVERSION_FORMAT = "mkv"; AUTOMATED_CONVERSION_OUTPUT_SUBDIR = "SAME_AS_SRC"; }; extraLabels = { } // (if serverCfg.containers ? authentik then { "traefik.http.routers.${routerName}.middlewares" = "authentik"; } else {}); extraOptions = [ "--tmpfs=/tmp:rw,noexec,nosuid,size=512m" ]; 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} ''; }; }