diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-06-08 17:11:30 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-06-10 16:18:26 +0530 |
| commit | 969a9a311d24548c6632ddcdc4f903ffa48c5ca6 (patch) | |
| tree | 9e508610c3e077647cc39ceb398a8226be8c21d0 /modules/media | |
| parent | 93179e7a79ca08464b9e443df41383b487bda7e8 (diff) | |
| download | homeserver-nixos-config-969a9a311d24548c6632ddcdc4f903ffa48c5ca6.tar.gz homeserver-nixos-config-969a9a311d24548c6632ddcdc4f903ffa48c5ca6.zip | |
Init commit with shit that does it
Diffstat (limited to 'modules/media')
| -rw-r--r-- | modules/media/config.nix | 15 | ||||
| -rw-r--r-- | modules/media/default.nix | 73 |
2 files changed, 88 insertions, 0 deletions
diff --git a/modules/media/config.nix b/modules/media/config.nix new file mode 100644 index 0000000..1703901 --- /dev/null +++ b/modules/media/config.nix @@ -0,0 +1,15 @@ +rec { + mediaBaseDir = "/media"; + downloadsDir = "${mediaBaseDir}/_downloads"; + incompleteDownloadsDir = "${downloadsDir}/_incomplete"; + + tvDownloads = "${mediaBaseDir}/tv"; + moviesDownloads = "${mediaBaseDir}/movies"; + + radarrPort = 7878; + sonarrPort = 8989; + prowlarrPort = 9696; + jellyfinPort = 8096; + + group = "multimedia"; +} diff --git a/modules/media/default.nix b/modules/media/default.nix new file mode 100644 index 0000000..0708d8e --- /dev/null +++ b/modules/media/default.nix @@ -0,0 +1,73 @@ +{ pkgs, ... }: +let + config = import ./config.nix; +in +{ + systemd.tmpfiles.rules = [ + "d ${config.mediaBaseDir} 0770 - ${config.group} - -" + "d ${config.downloadsDir} 0770 - ${config.group} - -" + "d ${config.tvDownloads} 0770 - ${config.group} - -" + "d ${config.moviesDownloads} 0770 - ${config.group} - -" + ]; + users.groups."${config.group}" = { }; + users.users.bacchus.extraGroups = [ config.group ]; + + services.sonarr = { + enable = true; + openFirewall = true; + group = config.group; + settings = { + server.port = config.sonarrPort; + auth.enabled = false; + }; + }; + + services.radarr = { + enable = true; + openFirewall = true; + group = config.group; + settings = { + server.port = config.radarrPort; + auth.enabled = false; + }; + }; + + services.prowlarr = { + enable = true; + openFirewall = true; + settings = { + server.port = config.prowlarrPort; + }; + }; + + services.jellyfin = { + enable = true; + openFirewall = true; + group = config.group; + }; + + services.transmission = { + enable = true; + group = config.group; + settings = { + "download-dir" = config.downloadsDir; + "download-queue-enabled" = true; + "download-queue-size" = 5; + "peer-port" = 51413; + "peer-port-random-high" = 65535; + "peer-port-random-low" = 49152; + "prefetch-enabled" = true; + "rename-partial-files" = true; + "rpc-authentication-required" = false; + "rpc-bind-address" = "127.0.0.1"; + "rpc-enabled" = true; + "rpc-port" = 9091; + "rpc-whitelist-enabled" = true; + "script-torrent-done-enabled" = false; + "start-added-torrents" = true; + "trash-original-torrent-files" = false; + "umask" = 18; + "utp-enabled" = true; + }; + }; +} |
