diff --git a/options/podman.nix b/options/podman.nix index 93d172d..c0a8b46 100644 --- a/options/podman.nix +++ b/options/podman.nix @@ -43,6 +43,10 @@ in type = types.bool; default = config.profile.podman.servarr.enable; }; + rdtclient.enable = mkOption { + type = types.bool; + default = config.profile.podman.servarr.enable; + }; }; }; } diff --git a/profiles/homeserver.nix b/profiles/homeserver.nix index cc733dd..d2070a6 100644 --- a/profiles/homeserver.nix +++ b/profiles/homeserver.nix @@ -33,6 +33,8 @@ qbittorrent.enable = true; servarr.enable = true; servarr.recyclarr.enable = false; + servarr.real-debrid-manager.enable = false; + servarr.rdtclient.enable = true; }; docker = { diff --git a/system/podman/servarr/default.nix b/system/podman/servarr/default.nix index 4252a40..f071e2c 100644 --- a/system/podman/servarr/default.nix +++ b/system/podman/servarr/default.nix @@ -1,11 +1,12 @@ { ... }: { imports = [ - # ./real-debrid-manager.nix + ./real-debrid-manager.nix ./qbittorrent.nix ./sonarr.nix ./prowlarr.nix ./bazarr.nix ./radarr.nix + ./rdtclient.nix ]; } diff --git a/system/podman/servarr/rdtclient.nix b/system/podman/servarr/rdtclient.nix new file mode 100644 index 0000000..4405284 --- /dev/null +++ b/system/podman/servarr/rdtclient.nix @@ -0,0 +1,51 @@ +{ config, lib, ... }: +let + podman = config.profile.podman; + name = "rdtclient"; + cfg = podman.servarr.${name}; + ip = "10.88.2.1"; + image = "docker.io/rogerfar/rdtclient:latest"; + root = "/nas/mediaserver/servarr"; + volumeConfig = "${root}/${name}"; + mediaVolume = "${root}/data/torrents"; + domain = "${name}.tigor.web.id"; + user = config.profile.user; + uid = toString user.uid; + gid = toString user.gid; + inherit (lib) mkIf; +in +{ + config = mkIf (podman.enable && cfg.enable) { + services.caddy.virtualHosts.${domain}.extraConfig = '' + reverse_proxy ${ip}:6500 + ''; + + system.activationScripts."podman-${name}" = '' + mkdir -p ${volumeConfig} ${mediaVolume} + chown ${uid}:${gid} ${volumeConfig} ${mediaVolume} + ''; + + virtualisation.oci-containers.containers.${name} = { + inherit image; + hostname = name; + autoStart = true; + # user = "${uid}:${gid}"; + environment = { + TZ = "Asia/Jakarta"; + PUID = uid; + PGID = gid; + }; + volumes = [ + "${volumeConfig}:/data/db" + "${mediaVolume}:/data/torrents" + ]; + extraOptions = [ + "--network=podman" + "--ip=${ip}" + ]; + labels = { + "io.containers.autoupdate" = "registry"; + }; + }; + }; +} diff --git a/system/podman/servarr/real-debrid-manager.nix b/system/podman/servarr/real-debrid-manager.nix index a53e0f0..c479c9c 100644 --- a/system/podman/servarr/real-debrid-manager.nix +++ b/system/podman/servarr/real-debrid-manager.nix @@ -1,26 +1,29 @@ { config, lib, ... }: let podman = config.profile.podman; - cfg = podman.servarr.real-debrid-manager; name = "real-debrid-manager"; - ip = "10.88.2.1"; - image = "docker.io/hyperbunny77/realdebridmanager:latest"; - volume = "/nas/mediaserver/servarr/real-debrid-manager"; - domain = "rdm.tigor.web.id"; + real-debrid-manager = podman.servarr.${name}; + ip = "10.88.2.99"; + image = "docker.io/hyperbunny77/realdebridmanager:2022.06.27"; + root = "/nas/mediaserver/servarr"; + configVolume = "${root}/real-debrid-manager"; + mediaVolume = "${root}/data/torrents"; + watchVolume = "${mediaVolume}/watch"; + domain = "${name}.tigor.web.id"; user = config.profile.user; uid = toString user.uid; gid = toString user.gid; inherit (lib) mkIf; in { - config = mkIf (podman.enable && cfg.enable) { - services.caddy.${domain}.extraConfig = '' + config = mkIf (podman.enable && real-debrid-manager.enable) { + services.caddy.virtualHosts.${domain}.extraConfig = '' reverse_proxy ${ip}:5000 ''; system.activationScripts."podman-${name}" = '' - mkdir -p ${volume}/{config,downloads,watch} - chown -R ${uid}:${gid} ${volume}/{config,downloads,watch} + mkdir -p ${configVolume} ${mediaVolume} ${watchVolume} + chown ${uid}:${gid} ${configVolume} ${mediaVolume} ${watchVolume} ''; virtualisation.oci-containers.containers.${name} = { @@ -28,14 +31,14 @@ in hostname = name; autoStart = true; user = "${uid}:${gid}"; - enviroment = { + environment = { TZ = "Asia/Jakarta"; rdmport = "5000"; }; volumes = [ - "${volume}/config:/config" - "${volume}/downloads:/downloads" - "${volume}/watch:/watch" + "${configVolume}:/config" + "${mediaVolume}:/data/torrents" + "${watchVolume}:/watch" ]; extraOptions = [ "--network=podman"