diff --git a/hosts/sobotka/server.nix b/hosts/sobotka/server.nix index 6d8d8927..baeeb0d2 100644 --- a/hosts/sobotka/server.nix +++ b/hosts/sobotka/server.nix @@ -24,6 +24,12 @@ lidarr = { enable = true; }; + sonarr = { + enable = true; + }; + radarr = { + enable = true; + }; vaultwarden = { enable = true; url = "vault.cnst.dev"; diff --git a/modules/default.nix b/modules/default.nix index 2a79f530..32f36e6f 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -127,6 +127,8 @@ ./server/vaultwarden ./server/prowlarr ./server/lidarr + ./server/radarr + ./server/sonarr ./server/qbittorrent ]; }; diff --git a/modules/server/lidarr/default.nix b/modules/server/lidarr/default.nix index e09438c1..25faedbf 100644 --- a/modules/server/lidarr/default.nix +++ b/modules/server/lidarr/default.nix @@ -48,15 +48,5 @@ in { reverse_proxy http://127.0.0.1:8686 ''; }; - # users = { - # users.lidarr = { - # uid = 1000; - # group = "lidarr"; - # isSystemUser = true; - # }; - # groups.lidarr = { - # gid = 1000; - # }; - # }; }; } diff --git a/modules/server/radarr/default.nix b/modules/server/radarr/default.nix new file mode 100644 index 00000000..fb238e00 --- /dev/null +++ b/modules/server/radarr/default.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + ... +}: let + unit = "radarr"; + srv = config.server; + cfg = config.server.${unit}; +in { + options.server.${unit} = { + enable = lib.mkEnableOption { + description = "Enable ${unit}"; + }; + configDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/${unit}"; + }; + url = lib.mkOption { + type = lib.types.str; + default = "${unit}.${srv.domain}"; + }; + homepage.name = lib.mkOption { + type = lib.types.str; + default = "Radarr"; + }; + homepage.description = lib.mkOption { + type = lib.types.str; + default = "Music collection manager"; + }; + homepage.icon = lib.mkOption { + type = lib.types.str; + default = "radarr.svg"; + }; + homepage.category = lib.mkOption { + type = lib.types.str; + default = "Arr"; + }; + }; + config = lib.mkIf cfg.enable { + services.${unit} = { + enable = true; + user = srv.user; + group = srv.group; + }; + services.caddy.virtualHosts."${cfg.url}" = { + useACMEHost = srv.domain; + extraConfig = '' + reverse_proxy http://127.0.0.1:7878 + ''; + }; + }; +} diff --git a/modules/server/sonarr/default.nix b/modules/server/sonarr/default.nix new file mode 100644 index 00000000..6b621299 --- /dev/null +++ b/modules/server/sonarr/default.nix @@ -0,0 +1,52 @@ +{ + config, + lib, + ... +}: let + unit = "sonarr"; + srv = config.server; + cfg = config.server.${unit}; +in { + options.server.${unit} = { + enable = lib.mkEnableOption { + description = "Enable ${unit}"; + }; + configDir = lib.mkOption { + type = lib.types.str; + default = "/var/lib/${unit}"; + }; + url = lib.mkOption { + type = lib.types.str; + default = "${unit}.${srv.domain}"; + }; + homepage.name = lib.mkOption { + type = lib.types.str; + default = "Sonarr"; + }; + homepage.description = lib.mkOption { + type = lib.types.str; + default = "Music collection manager"; + }; + homepage.icon = lib.mkOption { + type = lib.types.str; + default = "sonarr.svg"; + }; + homepage.category = lib.mkOption { + type = lib.types.str; + default = "Arr"; + }; + }; + config = lib.mkIf cfg.enable { + services.${unit} = { + enable = true; + user = srv.user; + group = srv.group; + }; + services.caddy.virtualHosts."${cfg.url}" = { + useACMEHost = srv.domain; + extraConfig = '' + reverse_proxy http://127.0.0.1:8989 + ''; + }; + }; +}