From 8d697ab71d41e8b6f9812d337437f4ea103b0a5c Mon Sep 17 00:00:00 2001 From: mc-fucker Date: Mon, 10 Nov 2025 14:18:35 +0100 Subject: [PATCH] latest arr config --- modules/arrstack/calibre.nix | 82 +++++++++++++++++++++++++++++++ modules/arrstack/default.nix | 4 +- modules/arrstack/lidarr.nix | 2 +- modules/arrstack/mediathekarr.nix | 50 +++++++++++++++++++ modules/arrstack/qbittorrent.nix | 7 ++- modules/arrstack/radarr.nix | 7 ++- modules/arrstack/sonarr.nix | 10 ++-- modules/arrstack/whisparr.nix | 2 +- 8 files changed, 155 insertions(+), 9 deletions(-) create mode 100644 modules/arrstack/calibre.nix create mode 100644 modules/arrstack/mediathekarr.nix diff --git a/modules/arrstack/calibre.nix b/modules/arrstack/calibre.nix new file mode 100644 index 0000000..dc7b5e3 --- /dev/null +++ b/modules/arrstack/calibre.nix @@ -0,0 +1,82 @@ +{ config, lib, ... }: +let + cfg = import /etc/nixos/modules/vars.nix; + name = "calibre-web-automated"; + #dbport = cfg.XXX.dbport; + #db_host = cfg.podman.hostIP; + port = cfg.calibre.port; + #domain = cfg.XXX.domain; +in +{ + imports = [ + #./podman.nix + #./podman-postgresql.nix # for the database + #./nginx.nix # for the webserver + ]; + + #sops.secrets."${name}/db" = {}; + sops.secrets."calibre/env" = {}; + + #services.podman-postgresql."${name}" = { + # enable = true; + # image = "docker.io/library/postgres:16-alpine"; + # port = (lib.strings.toInt dbport); + # passwordFile = config.sops.secrets."${name}/db".path; + #}; + + virtualisation.oci-containers.containers."${name}" = { + image = "docker.io/crocodilestick/calibre-web-automated"; + environment = { + TZ = "Europe/Berlin"; + PUID = toString config.users.users.arr.uid; + PGID = toString config.users.groups.arr.gid; + }; + #environmentFiles = [ config.sops.secrets."calibre/env".path ]; + ports = [ + "${port}:${port}" + ]; + volumes = [ + "/var/lib/${name}:/config" + "/mnt/cache/calibre:/cwa-book-ingest" + "/mnt/mergerfs/media/calibre:/calibre-library" + ]; + extraOptions = cfg.podman.extraOptions; + }; + + virtualisation.oci-containers.containers.calibre-book-downloader = { + image = "ghcr.io/calibrain/calibre-web-automated-book-downloader"; + environment = { + TZ = "Europe/Berlin"; + UID = toString config.users.users.arr.uid; + GID = toString config.users.groups.arr.gid; + FLASK_PORT = "8084"; + APP_ENV = "prod"; + SUPPORTED_FORMATS = "pdf,epub,mobi,azw3,fb2,djvu,cbz,cbr"; + }; + #environmentFiles = [ config.sops.secrets."calibre/env".path ]; + ports = [ + "8084:8084" + ]; + volumes = [ + #"/var/lib/${name}:/config" + "/mnt/cache/calibre:/cwa-book-ingest" + #"/mnt/mergerfs/media/calibre:/calibre-library" + ]; + extraOptions = cfg.podman.extraOptions; + }; + + #services.nginx.virtualHosts.${domain} = { + # forceSSL = true; + # enableACME = true; + # locations."/" = { + # proxyPass = "http://localhost:${port}"; + # proxyWebsockets = true; + # }; + # extraConfig = '' + # access_log /var/log/nginx/${domain}_access.log; + # error_log /var/log/nginx/${domain}_error.log; + # ''; + #}; + +} +# vim: set et ts=2 sw=2 ai: diff --git a/modules/arrstack/default.nix b/modules/arrstack/default.nix index 51be8c4..ec281ff 100644 --- a/modules/arrstack/default.nix +++ b/modules/arrstack/default.nix @@ -64,9 +64,11 @@ in /etc/nixos/modules/nginx.nix ./autobrr.nix ./bazarr.nix + ./calibre.nix ./crossseed.nix - ./lidarr.nix ./jellyseerr.nix + ./lidarr.nix + ./mediathekarr.nix ./prowlarr.nix ./qbittorrent.nix ./radarr.nix diff --git a/modules/arrstack/lidarr.nix b/modules/arrstack/lidarr.nix index 9b455de..8b76121 100644 --- a/modules/arrstack/lidarr.nix +++ b/modules/arrstack/lidarr.nix @@ -45,7 +45,7 @@ in "/var/lib/lidarr-extended/custom-cont-init.d:/custom-cont-init.d" "/var/lib/lidarr-extended/custom-services.d:/custom-services.d" "/mnt/mergerfs/media:/data" - "/mnt/ultracc/downloads:/mnt/ultracc" + #"/mnt/ultracc/downloads:/mnt/ultracc" ]; extraOptions = cfg.podman.extraOptions; autoStart = false; diff --git a/modules/arrstack/mediathekarr.nix b/modules/arrstack/mediathekarr.nix new file mode 100644 index 0000000..676f24b --- /dev/null +++ b/modules/arrstack/mediathekarr.nix @@ -0,0 +1,50 @@ +{ config, lib, ... }: +let + cfg = import /etc/nixos/modules/vars.nix; + name = "mediathekarr"; + port = "5007"; +in +{ + imports = [ + #./podman.nix + #./podman-postgresql.nix # for the database + #./nginx.nix # for the webserver + ]; + + #sops.secrets."${name}/db" = {}; + #sops.secrets."${name}/env" = {}; + + virtualisation.oci-containers.containers.${name} = { + image = "docker.io/pcjones/mediathekarr:beta"; + environment = { + PUID = toString config.users.users.arr.uid; + PGID = toString config.users.groups.arr.gid; + TZ = "Europe/Berlin"; + }; + #environmentFiles = [ config.sops.secrets."${name}/env".path ]; + ports = [ + "${port}:${port}" + ]; + volumes = [ + "/var/lib/${name}:/app/config" + "/mnt/mergerfs/media/mediathek:/data/mediathek" + ]; + extraOptions = cfg.podman.extraOptions; + autoStart = false; + }; + + #services.nginx.virtualHosts.${domain} = { + # forceSSL = true; + # enableACME = true; + # locations."/" = { + # proxyPass = "http://localhost:${port}"; + # proxyWebsockets = true; + # }; + # extraConfig = '' + # access_log /var/log/nginx/${domain}_access.log; + # error_log /var/log/nginx/${domain}_error.log; + # ''; + #}; + +} +# vim: set et ts=2 sw=2 ai: diff --git a/modules/arrstack/qbittorrent.nix b/modules/arrstack/qbittorrent.nix index 20ea5d4..c21fc06 100644 --- a/modules/arrstack/qbittorrent.nix +++ b/modules/arrstack/qbittorrent.nix @@ -7,8 +7,11 @@ let in { + boot.kernelModules = [ "iptable_filter" ]; # needed for the container + virtualisation.oci-containers.containers.qbittorrent = { - image = "docker.io/binhex/arch-qbittorrentvpn"; + #image = "docker.io/binhex/arch-qbittorrentvpn:5.1.1-1-01"; + image = "docker.io/binhex/arch-qbittorrentvpn:latest"; environment = { TZ = "Europe/Berlin"; PUID = toString config.users.users.arr.uid; @@ -30,7 +33,7 @@ in "/mnt/cache/qbittorrent:/cache" ]; #extraOptions = cfg.podman.extraOptions ++ [ "--cap-add=NET_ADMIN,NET_RAW" "--device=/dev/net/tun" ]; - extraOptions = cfg.podman.extraOptions ++ [ ''--sysctl="net.ipv4.conf.all.src_valid_mark=1"'' "--privileged=true" "--ip=10.88.13.37" ]; + extraOptions = cfg.podman.extraOptions ++ [ ''--sysctl="net.ipv4.conf.all.src_valid_mark=1"'' "--privileged=true" "--ip=10.88.13.37" "--cap-add=NET_ADMIN,NET_RAW" ]; autoStart = false; }; diff --git a/modules/arrstack/radarr.nix b/modules/arrstack/radarr.nix index 73905d1..2c0f6f7 100644 --- a/modules/arrstack/radarr.nix +++ b/modules/arrstack/radarr.nix @@ -20,7 +20,7 @@ in volumes = [ "/var/lib/radarr:/config" "/mnt/mergerfs/media:/data" - "/mnt/ultracc/downloads:/mnt/ultracc" + #"/mnt/ultracc/downloads:/mnt/ultracc" ]; extraOptions = cfg.podman.extraOptions; autoStart = false; @@ -60,6 +60,11 @@ in extraConfig = '' access_log /var/log/nginx/radarr.${domain}_access.log; error_log /var/log/nginx/radarr.${domain}_error.log; + send_timeout 100m; + proxy_connect_timeout 600; + proxy_send_timeout 600; + proxy_read_timeout 30m; + ''; }; diff --git a/modules/arrstack/sonarr.nix b/modules/arrstack/sonarr.nix index e95ef2f..a186a36 100644 --- a/modules/arrstack/sonarr.nix +++ b/modules/arrstack/sonarr.nix @@ -20,7 +20,7 @@ in volumes = [ "/var/lib/sonarr:/config" "/mnt/mergerfs/media:/data" - "/mnt/ultracc/downloads:/mnt/ultracc" + #"/mnt/ultracc/downloads:/mnt/ultracc" ]; extraOptions = cfg.podman.extraOptions; autoStart = false; @@ -55,8 +55,12 @@ in }; }; extraConfig = '' - access_log /var/log/nginx/sonarr.${domain}_access.log; - error_log /var/log/nginx/sonarr.${domain}_error.log; + access_log /var/log/nginx/sonarr.${domain}_access.log; + error_log /var/log/nginx/sonarr.${domain}_error.log; + send_timeout 100m; + proxy_connect_timeout 600; + proxy_send_timeout 600; + proxy_read_timeout 30m; ''; }; diff --git a/modules/arrstack/whisparr.nix b/modules/arrstack/whisparr.nix index 72a03b3..06d750e 100644 --- a/modules/arrstack/whisparr.nix +++ b/modules/arrstack/whisparr.nix @@ -20,7 +20,7 @@ in volumes = [ "/var/lib/whisparr:/config" "/mnt/mergerfs/media:/data" - "/mnt/ultracc/downloads:/mnt/ultracc" + #"/mnt/ultracc/downloads:/mnt/ultracc" ]; extraOptions = cfg.podman.extraOptions; autoStart = false;