❄️ Nix configurations
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

refactor: nzbget config

Signed-off-by: aottr <alex@otter.foo>

aottr fbb1d34f 98198fb7

+42 -27
+42 -27
modules/nixos/server/media.nix
··· 1 - { pkgs, config, ... }: 1 + { pkgs, config, lib, ... }: 2 + 3 + let 4 + baseDir = "/var/lib/nzbget"; 5 + 6 + # subdir name -> NZBGet setting key 7 + nzbDirs = { 8 + DestDir = "dst"; 9 + InterDir = "inter"; 10 + NzbDir = "nzb"; 11 + QueueDir = "queue"; 12 + TempDir = "tmp"; 13 + ScriptDir = "scripts"; 14 + }; 15 + 16 + mediaUser = "media"; 17 + mediaGroup = "media"; 18 + 19 + # Build full paths for NZBGet settings 20 + nzbDirSettings = 21 + lib.mapAttrs (_key: sub: "${baseDir}/${sub}") nzbDirs; 22 + 23 + # Ensure directories 24 + tmpfilesRules = 25 + [ "d ${baseDir} 0755 ${mediaUser} ${mediaGroup} -" ] 26 + ++ (map 27 + (sub: "d ${baseDir}/${sub} 0755 ${mediaUser} ${mediaGroup} -") 28 + (lib.attrValues nzbDirs)); 29 + in 2 30 { 3 31 users.groups.media = { 4 32 gid = 976; 5 33 }; 6 34 users.users.media = { 7 - group = "media"; 35 + group = mediaGroup; 8 36 isSystemUser = true; 9 37 uid = 976; 10 38 }; 11 39 12 40 age.secrets.mediaUser = { 13 41 file = ../../../secrets/common/smb-media.age; 14 - owner = "media"; 15 - group = "media"; 42 + owner = mediaUser; 43 + group = mediaGroup; 16 44 }; 17 45 18 46 environment.systemPackages = [ pkgs.cifs-utils ]; ··· 28 56 /* Downloading Linux-ISOs */ 29 57 services.nzbget = { 30 58 enable = true; 31 - user = "media"; 32 - group = "media"; 59 + user = mediaUser; 60 + group = mediaGroup; 33 61 settings = { 34 - MainDir = "/var/lib/nzbget"; 35 - DestDir = "/var/lib/nzbget/dst"; 36 - InterDir = "/var/lib/nzbget/inter"; 37 - NzbDir = "/var/lib/nzbget/nzb"; 38 - QueueDir = "/var/lib/nzbget/queue"; 39 - TempDir = "/var/lib/nzbget/tmp"; 40 - ScriptDir = "/var/lib/nzbget/scripts"; 62 + MainDir = baseDir; 41 63 ControlPort = "36789"; 42 - }; 64 + } // nzbDirSettings; 43 65 }; 44 66 45 - systemd.tmpfiles.rules = [ 46 - "d /var/lib/nzbget/dst 0755 media media -" 47 - "d /var/lib/nzbget/inter 0755 media media -" 48 - "d /var/lib/nzbget/nzb 0755 media media -" 49 - "d /var/lib/nzbget/queue 0755 media media -" 50 - "d /var/lib/nzbget/tmp 0755 media media -" 51 - "d /var/lib/nzbget/scripts 0755 media media -" 52 - ]; 53 - 67 + systemd.tmpfiles.rules = tmpfilesRules; 68 + 54 69 services.jellyseerr = { 55 70 enable = true; 56 71 port = 35055; ··· 60 75 services.sonarr = { 61 76 enable = true; 62 77 settings.server.port = 38989; 63 - user = "media"; 64 - group = "media"; 78 + user = mediaUser; 79 + group = mediaGroup; 65 80 }; 66 81 67 82 services.radarr = { 68 83 enable = true; 69 84 settings.server.port = 37878; 70 - user = "media"; 71 - group = "media"; 85 + user = mediaUser; 86 + group = mediaGroup; 72 87 }; 73 88 74 89 services.traefik.dynamicConfigOptions.http = {