aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/media/config.nix16
-rw-r--r--modules/media/default.nix28
-rw-r--r--modules/media/torrent.nix14
-rw-r--r--modules/network/default.nix11
-rw-r--r--modules/network/ssh.nix7
-rw-r--r--modules/users.nix9
6 files changed, 36 insertions, 49 deletions
diff --git a/modules/media/config.nix b/modules/media/config.nix
deleted file mode 100644
index 0fb427e..0000000
--- a/modules/media/config.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-rec {
- mediaBaseDir = "/media";
- downloadsDir = "${mediaBaseDir}/_downloads";
- incompleteDownloadsDir = "${downloadsDir}/_incomplete";
-
- tvDownloads = "${mediaBaseDir}/tv";
- moviesDownloads = "${mediaBaseDir}/movies";
-
- radarrPort = 7878;
- sonarrPort = 8989;
- prowlarrPort = 9696;
- jellyfinPort = 8096;
- transmissionPort = 9091;
-
- group = "multimedia";
-}
diff --git a/modules/media/default.nix b/modules/media/default.nix
index c8b01a4..4c8edaa 100644
--- a/modules/media/default.nix
+++ b/modules/media/default.nix
@@ -1,25 +1,25 @@
-{ ... }:
+{ lib, ... }:
let
- config = import ./config.nix;
+ settings = import ../../settings.nix { inherit lib; };
in
{
imports = [ ./torrent.nix ];
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} - -"
+ "d ${settings.media.baseDir} 0770 - ${settings.media.group} - -"
+ "d ${settings.media.downloadsDir} 0770 transmission ${settings.media.group} - -"
+ "d ${settings.media.tvDir} 0770 sonarr ${settings.media.group} - -"
+ "d ${settings.media.moviesDir} 0770 radarr ${settings.media.group} - -"
];
- users.groups."${config.group}" = { };
- users.users.bacchus.extraGroups = [ config.group ];
+ users.groups."${settings.media.group}" = { };
+ users.users.bacchus.extraGroups = [ settings.media.group ];
services.sonarr = {
enable = true;
openFirewall = true;
- group = config.group;
+ group = settings.media.group;
settings = {
- server.port = config.sonarrPort;
+ server.port = settings.network.ports.sonarr;
auth.enabled = false;
};
};
@@ -27,9 +27,9 @@ in
services.radarr = {
enable = true;
openFirewall = true;
- group = config.group;
+ group = settings.media.group;
settings = {
- server.port = config.radarrPort;
+ server.port = settings.network.ports.radarr;
auth.enabled = false;
};
};
@@ -38,13 +38,13 @@ in
enable = true;
openFirewall = true;
settings = {
- server.port = config.prowlarrPort;
+ server.port = settings.network.ports.prowlarr;
};
};
services.jellyfin = {
enable = true;
openFirewall = true;
- group = config.group;
+ group = settings.media.group;
};
}
diff --git a/modules/media/torrent.nix b/modules/media/torrent.nix
index 9fd0b96..cceb94d 100644
--- a/modules/media/torrent.nix
+++ b/modules/media/torrent.nix
@@ -1,6 +1,6 @@
-{ pkgs, ... }:
+{ pkgs, lib, ... }:
let
- config = import ./config.nix;
+ settings = import ../../settings.nix { inherit lib; };
in
{
environment.systemPackages = with pkgs; [
@@ -9,10 +9,10 @@ in
services.transmission = {
enable = true;
- group = config.group;
+ group = settings.media.group;
openRPCPort = true;
settings = {
- "download-dir" = config.downloadsDir;
+ "download-dir" = settings.media.downloadsDir;
"download-queue-enabled" = true;
"download-queue-size" = 5;
"peer-port" = 51413;
@@ -21,9 +21,9 @@ in
"prefetch-enabled" = true;
"rename-partial-files" = true;
"rpc-authentication-required" = false;
- "rpc-bind-address" = "0.0.0.0";
+ "rpc-bind-address" = if settings.network.exposeTransmissionRPC then "0.0.0.0" else "127.0.0.1";
"rpc-enabled" = true;
- "rpc-port" = config.transmissionPort;
+ "rpc-port" = settings.network.ports.transmissionRPC;
"rpc-whitelist-enabled" = false;
"script-torrent-done-enabled" = false;
"start-added-torrents" = true;
@@ -34,6 +34,6 @@ in
};
systemd.services.transmission.unitConfig = {
- RequiresMountsFor = config.mediaBaseDir;
+ RequiresMountsFor = settings.media.baseDir;
};
}
diff --git a/modules/network/default.nix b/modules/network/default.nix
index 6a3ab69..5a18f37 100644
--- a/modules/network/default.nix
+++ b/modules/network/default.nix
@@ -1,7 +1,8 @@
-{ ... }:
+{ lib, ... }:
let
- private = import ../../config.private.nix;
-in {
+ settings = import ../../settings.nix { inherit lib; };
+in
+{
imports = [ ./ssh.nix ];
networking = {
@@ -21,12 +22,12 @@ in {
};
wifi = {
mode = "infrastructure";
- ssid = private.wireless.ssid;
+ ssid = settings.network.wireless.ssid;
};
wifi-security = {
auth-alg = "open";
key-mgmt = "wpa-psk";
- psk = private.wireless.password;
+ psk = settings.network.wireless.password;
};
};
};
diff --git a/modules/network/ssh.nix b/modules/network/ssh.nix
index 573bdf4..f5564bd 100644
--- a/modules/network/ssh.nix
+++ b/modules/network/ssh.nix
@@ -1,11 +1,12 @@
{ lib, ... }:
let
- private = import ../../config.private.nix;
-in {
+ settings = import ../../settings.nix { inherit lib; };
+in
+{
services.sshd.enable = true;
# Auth
- users.users.bacchus.openssh.authorizedKeys.keys = private.ssh.authorizedKeys;
+ users.users.bacchus.openssh.authorizedKeys.keys = settings.ssh.authorizedKeys;
services.openssh.settings = {
PermitRootLogin = "no";
PasswordAuthentication = false;
diff --git a/modules/users.nix b/modules/users.nix
index 0a08c2c..223a2f8 100644
--- a/modules/users.nix
+++ b/modules/users.nix
@@ -1,8 +1,9 @@
-{ pkgs, ... }:
+{ pkgs, lib, ... }:
let
- private = import ../config.private.nix;
-in {
- users.users.root.password = private.passwords.root;
+ settings = import ../settings.nix { inherit lib; };
+in
+{
+ users.users.root.password = settings.passwords.root;
users.users.bacchus = {
isNormalUser = true;