nixos/modules/homelab/arr.nix

93 lines
2.1 KiB
Nix
Raw Permalink Normal View History

2025-04-23 00:02:00 +02:00
{
config,
lib,
2025-04-23 00:02:00 +02:00
...
}:
lib.mkIf config.fireproof.homelab.enable (let
2025-12-13 21:41:52 +01:00
inherit (config.fireproof) username;
2025-04-23 00:02:00 +02:00
user = "media";
group = "media";
mkVirtualHost = port: {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://localhost:${toString port}";
};
2025-04-26 20:02:56 +02:00
locations."/api" = {
proxyPass = "http://localhost:${toString port}";
extraConfig = ''
auth_request off;
'';
};
2025-04-23 00:02:00 +02:00
};
in {
# for linux ISOs
users.groups."${group}" = {
members = [username];
};
users.users."${user}" = {
inherit group;
isSystemUser = true;
};
services = {
2025-04-26 20:02:56 +02:00
oauth2-proxy.nginx.virtualHosts = {
"radarr.nickolaj.com".allowed_groups = ["arr"];
"sonarr.nickolaj.com".allowed_groups = ["arr"];
2026-01-22 01:46:47 +01:00
"lidarr.nickolaj.com".allowed_groups = ["arr"];
2025-04-26 20:02:56 +02:00
"prowlarr.nickolaj.com".allowed_groups = ["arr"];
"sabnzbd.nickolaj.com".allowed_groups = ["arr"];
"bazarr.nickolaj.com".allowed_groups = ["arr"];
};
2025-04-23 00:02:00 +02:00
nginx.virtualHosts = {
"radarr.nickolaj.com" = mkVirtualHost 7878;
"sonarr.nickolaj.com" = mkVirtualHost 8989;
2026-01-22 01:46:47 +01:00
"lidarr.nickolaj.com" = mkVirtualHost 8686;
2025-04-23 00:02:00 +02:00
"prowlarr.nickolaj.com" = mkVirtualHost 9696;
"sabnzbd.nickolaj.com" = mkVirtualHost 8080;
2025-04-26 20:02:56 +02:00
"bazarr.nickolaj.com" = mkVirtualHost config.services.bazarr.listenPort;
2025-04-23 00:02:00 +02:00
};
2025-04-26 20:02:56 +02:00
restic.backups.homelab = {
paths = [
"/var/lib/radarr"
"/var/lib/sonarr"
2026-01-22 01:46:47 +01:00
"/var/lib/lidarr"
2025-04-26 20:02:56 +02:00
"/var/lib/prowlarr"
"/var/lib/sabnzbd"
"/var/lib/bazarr"
];
exclude = [
# arrs logs and media cover
"/var/lib/*/.config/*/logs/"
"/var/lib/*/.config/*/MediaCover/"
"/var/lib/sabnzbd/Downloads/"
"/var/lib/sabnzbd/logs/"
];
};
2025-04-23 00:02:00 +02:00
sabnzbd = {
inherit user group;
enable = true;
};
radarr = {
inherit user group;
enable = true;
};
sonarr = {
inherit user group;
enable = true;
};
2026-01-22 01:46:47 +01:00
lidarr = {
inherit user group;
enable = true;
};
2025-04-26 20:02:56 +02:00
bazarr = {
inherit user group;
enable = true;
};
2025-04-23 00:02:00 +02:00
prowlarr.enable = true;
};
})