diff options
| author | Akshay Nair <phenax5@gmail.com> | 2025-06-09 23:42:37 +0530 |
|---|---|---|
| committer | Akshay Nair <phenax5@gmail.com> | 2025-06-10 16:18:27 +0530 |
| commit | 279241632b566fd26011409672277ca02ed697d1 (patch) | |
| tree | 67e6be0ff46224ec7ba8085866ff0aef77420d46 /modules | |
| parent | 3dd4a84724190d318a960cec67077d91f4556910 (diff) | |
| download | homeserver-nixos-config-279241632b566fd26011409672277ca02ed697d1.tar.gz homeserver-nixos-config-279241632b566fd26011409672277ca02ed697d1.zip | |
Refactor config to settings.nix and settings.private.nix
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/media/config.nix | 16 | ||||
| -rw-r--r-- | modules/media/default.nix | 28 | ||||
| -rw-r--r-- | modules/media/torrent.nix | 14 | ||||
| -rw-r--r-- | modules/network/default.nix | 11 | ||||
| -rw-r--r-- | modules/network/ssh.nix | 7 | ||||
| -rw-r--r-- | modules/users.nix | 9 |
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; |
