dots/modules/services/media/arr.nix

127 lines
2.7 KiB
Nix

{ config, lib, pkgs, ...}:
{
users.groups.media = {};
#
# Downloading movies
services.radarr = {
enable = true;
openFirewall = false;
dataDir = "/var/lib/radarr";
group = "media";
};
services.caddy.virtualHosts."radarr.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:7878
import block_non_private_ips
'';
};
#
# Downloading shows
services.sonarr = {
enable = true;
openFirewall = false;
dataDir = "/var/lib/sonarr";
group = "media";
};
services.caddy.virtualHosts."sonarr.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:8989
import block_non_private_ips
'';
};
#
# Managing Torrent sources
services.prowlarr = {
enable = true;
openFirewall = false;
};
services.caddy.virtualHosts."prowlarr.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:9696
import block_non_private_ips
'';
};
#
# Finding subtitles
services.bazarr = {
enable = true;
openFirewall = false;
group = "media";
};
services.caddy.virtualHosts."bazarr.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:6767
import block_non_private_ips
'';
};
#
# Downloading torrents
services.deluge = {
enable = true;
web.enable = true;
web.openFirewall = false;
group = "media";
declarative = true;
authFile = "/var/lib/deluge/auth";
config = {
download_location = "/media/torrents/";
torrentfiles_location = "/media/torrents/files/";
copy_torrent_file = true;
allow_remote = true;
random_port = true;
upnp = true;
max_active_seeding = 5;
max_active_downloading = 3;
max_active_limit = 8;
max_download_speed = -1;
max_upload_speed = 10000; # 10 MiB/s
new_release_check = false;
enabled_plugins = [
"Label"
];
};
};
services.caddy.virtualHosts."deluge.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:8112
import block_non_private_ips
'';
};
#
# Requesting Frontend
services.jellyseerr = {
enable = true;
port = 5055;
openFirewall = false;
package = pkgs.jellyseerr;
};
services.caddy.virtualHosts."jellyseer.${config.homelab.domain}" = {
useACMEHost = config.homelab.domain;
extraConfig = ''
reverse_proxy http://localhost:5055
import block_non_private_ips
'';
};
}