{ config, lib, pkgs, ... }: { # https://docs.tdarr.io/docs/installation/docker/run-compose virtualisation.oci-containers = { containers.tdarr = { volumes = [ "/srv/tdarr/server:/app/server" "/srv/tdarr/configs:/app/configs" "/srv/tdarr/logs:/app/logs" "/srv/tdarr/transcode_cache:/temp" "/media:/media" ]; environment = { serverIP = "0.0.0.0"; serverPort = "8266"; webUIPort = "8265"; internalNode = "false"; inContainer = "true"; nodeName = "ServerNode"; TZ = "Europe/London"; PUID = toString config.users.users.media.uid; PGID = toString config.users.groups.media.gid; }; ports = [ "8265:8265" # WebUI "8266:8266" # server port ]; image = "ghcr.io/haveagitgat/tdarr:latest"; # Warning: if the tag does not change, the image will not be updated extraOptions = [ "--network=bridge" ]; }; }; networking.firewall.allowedTCPPorts = [ 8266 ]; networking.firewall.allowedUDPPorts = [ 8266 ]; services.nginx.virtualHosts."tdarr.${config.networking.hostName}.private" = { serverAliases = [ "tdarr.${config.networking.hostName}" ]; extraConfig = '' allow ${config.tinc.private.subnet}; deny all; ''; locations."/" = { proxyPass = "http://localhost:8265"; proxyWebsockets = true; }; }; }