aboutsummaryrefslogtreecommitdiff
path: root/modules/media
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/media/config.nix15
-rw-r--r--modules/media/default.nix73
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;
+ };
+ };
+}