{ config, lib, pkgs, ... }: { # https://docs.tdarr.io/docs/installation/docker/run-compose virtualisation.oci-containers = { containers.tdarr = { volumes = [ "/media/arr/tdarr/server:/app/server" "/media/arr/tdarr/configs:/app/configs" "/media/arr/tdarr/logs:/app/logs" "/media/arr/tdarr/transcode_cache:/temp" "/media:/media" ]; environment = { serverIP = "0.0.0.0"; serverPort = "8266"; webUIPort = "8265"; internalNode = "true"; inContainer = "true"; nodeName = "robi"; TZ = "Europe/Berlin"; PUID = toString config.users.users.media.uid; PGID = toString config.users.groups.media.gid; }; ports = [ "127.0.0.1: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" #"--privileged" ]; }; }; #networking.firewall.interfaces.wq0.allowedTCPPorts = [ 8266 ]; #networking.firewall.interfaces.wq0.allowedUDPPorts = [ 8266 ]; #networking.firewall.interfaces.enp0s31f6.allowedTCPPorts = [ 8266 ]; #networking.firewall.interfaces.enp0s31f6.allowedUDPPorts = [ 8266 ]; services.nginx.virtualHosts."tdarr.${config.networking.hostName}.private" = { extraConfig = '' allow ${config.tinc.private.subnet}; deny all; ''; locations."/" = { proxyPass = "http://localhost:8265"; proxyWebsockets = true; }; }; }