diff --git a/modules/nixos/apps/free-games-claimer/options.nix b/modules/nixos/apps/free-games-claimer/options.nix index b0dec1b..5bf17f7 100755 --- a/modules/nixos/apps/free-games-claimer/options.nix +++ b/modules/nixos/apps/free-games-claimer/options.nix @@ -26,7 +26,7 @@ with lib; dataPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/free-games-claimer"; + default = "/media/nas/main/nix-app-data/free-games-claimer"; }; puid = mkOption { diff --git a/modules/nixos/apps/manyfold/options.nix b/modules/nixos/apps/manyfold/options.nix index 17d2ed1..21a8d96 100755 --- a/modules/nixos/apps/manyfold/options.nix +++ b/modules/nixos/apps/manyfold/options.nix @@ -26,7 +26,7 @@ with lib; configPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/manyfold"; + default = "/media/nas/main/nix-app-data/manyfold"; }; dataPath = mkOption { diff --git a/modules/nixos/apps/mongodb/options.nix b/modules/nixos/apps/mongodb/options.nix index dfd7c36..da3582a 100755 --- a/modules/nixos/apps/mongodb/options.nix +++ b/modules/nixos/apps/mongodb/options.nix @@ -26,7 +26,7 @@ with lib; configPath = mkOption { type = types.str; - default = "/media/nas/ssd/mongodb"; + default = "/media/nas/main/mongodb"; }; puid = mkOption { diff --git a/modules/nixos/apps/tdarr/options.nix b/modules/nixos/apps/tdarr/options.nix index 71fd32f..617203f 100755 --- a/modules/nixos/apps/tdarr/options.nix +++ b/modules/nixos/apps/tdarr/options.nix @@ -31,22 +31,22 @@ with lib; configPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/tdarr/config"; + default = "/media/nas/main/nix-app-data/tdarr/config"; }; serverPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/tdarr/server"; + default = "/media/nas/main/nix-app-data/tdarr/server"; }; logPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/tdarr/logs"; + default = "/media/nas/main/nix-app-data/tdarr/logs"; }; transcodePath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/tdarr/transcode"; + default = "/media/nas/main/nix-app-data/tdarr/transcode"; }; moviesPath = mkOption { diff --git a/modules/nixos/apps/your-spotify/options.nix b/modules/nixos/apps/your-spotify/options.nix index af76f42..72ebaa8 100755 --- a/modules/nixos/apps/your-spotify/options.nix +++ b/modules/nixos/apps/your-spotify/options.nix @@ -36,7 +36,7 @@ with lib; configPath = mkOption { type = types.str; - default = "/media/nas/ssd/nix-app-data/your_spotify"; + default = "/media/nas/main/nix-app-data/your_spotify"; }; puid = mkOption { diff --git a/modules/nixos/gitea/default.nix b/modules/nixos/gitea/default.nix index c173537..f86ec32 100644 --- a/modules/nixos/gitea/default.nix +++ b/modules/nixos/gitea/default.nix @@ -7,7 +7,7 @@ let # httpPort = 3000; # sshPort = 2222; rootUrl = "https://gitea.mjallen.dev/"; - # stateDir = "/media/nas/ssd/nix-app-data/gitea"; + # stateDir = "/media/nas/main/nix-app-data/gitea"; dataDir = "/var/lib/gitea"; secretsDir = "/run/secrets/jallen-nas/gitea"; mailerPasswordFile = config.sops.secrets."jallen-nas/gitea/mail-key".path; diff --git a/modules/nixos/jellyfin/default.nix b/modules/nixos/jellyfin/default.nix index 20e0199..d5daf76 100755 --- a/modules/nixos/jellyfin/default.nix +++ b/modules/nixos/jellyfin/default.nix @@ -17,7 +17,7 @@ in openFirewall = true; user = "nix-apps"; group = "jallen-nas"; - dataDir = "/media/nas/ssd/nix-app-data/jellyfin"; + dataDir = "/media/nas/main/nix-app-data/jellyfin"; # cacheDir = "/cache"; }; }; diff --git a/modules/nixos/jellyseerr/default.nix b/modules/nixos/jellyseerr/default.nix index 411c5c0..067ec06 100755 --- a/modules/nixos/jellyseerr/default.nix +++ b/modules/nixos/jellyseerr/default.nix @@ -25,7 +25,7 @@ in bindMounts = { ${dataDir} = { - hostPath = "/media/nas/ssd/nix-app-data/jellyseerr"; + hostPath = "/media/nas/main/nix-app-data/jellyseerr"; isReadOnly = false; }; }; diff --git a/modules/nixos/lubelogger/default.nix b/modules/nixos/lubelogger/default.nix index f1d833c..3615c57 100644 --- a/modules/nixos/lubelogger/default.nix +++ b/modules/nixos/lubelogger/default.nix @@ -17,11 +17,11 @@ in image = "ghcr.io/hargata/lubelogger"; ports = [ "6754:8080" ]; volumes = [ - "/media/nas/ssd/nix-app-data/lubelogger:/App/data" - "/media/nas/ssd/nix-app-data/lubelogger/keys:/root/.aspnet/DataProtection-Keys" + "/media/nas/main/nix-app-data/lubelogger:/App/data" + "/media/nas/main/nix-app-data/lubelogger/keys:/root/.aspnet/DataProtection-Keys" ]; environmentFiles = [ - "/media/nas/ssd/nix-app-data/lubelogger/lubelogger.env" + "/media/nas/main/nix-app-data/lubelogger/lubelogger.env" ]; environment = { PUID = toString config.users.users.nix-apps.uid; diff --git a/modules/nixos/nextcloud/default.nix b/modules/nixos/nextcloud/default.nix index 6a5650e..1252c10 100755 --- a/modules/nixos/nextcloud/default.nix +++ b/modules/nixos/nextcloud/default.nix @@ -52,13 +52,13 @@ in }; "/var/lib/nextcloud" = { - hostPath = "/media/nas/ssd/nix-app-data/nextcloud"; + hostPath = "/media/nas/main/nix-app-data/nextcloud"; isReadOnly = false; mountPoint = "/var/lib/nextcloud"; }; "/var/lib/onlyoffice" = { - hostPath = "/media/nas/ssd/nix-app-data/onlyoffice"; + hostPath = "/media/nas/main/nix-app-data/onlyoffice"; isReadOnly = false; mountPoint = "/var/lib/onlyoffice"; }; diff --git a/modules/nixos/ollama/default.nix b/modules/nixos/ollama/default.nix index e1237cc..8868c07 100755 --- a/modules/nixos/ollama/default.nix +++ b/modules/nixos/ollama/default.nix @@ -33,7 +33,7 @@ in group = "jallen-nas"; openFirewall = true; acceleration = "cuda"; - home = "/media/nas/ssd/nix-app-data/ollama"; + home = "/media/nas/main/nix-app-data/ollama"; }; environment.systemPackages = [ llamaPackage ]; @@ -43,7 +43,7 @@ in port = 8127; host = "0.0.0.0"; openFirewall = true; - model = "/media/nas/ssd/nix-app-data/llama-cpp/models/functionary-small-v3.2-GGUF/functionary-small-v3.2.Q4_0.gguf"; + model = "/media/nas/main/nix-app-data/llama-cpp/models/functionary-small-v3.2-GGUF/functionary-small-v3.2.Q4_0.gguf"; package = llamaPackage; # pkgs.unstable.llama-cpp; extraFlags = [ "--n_gpu-layers" @@ -61,7 +61,7 @@ in host = "0.0.0.0"; port = 8888; openFirewall = true; - # stateDir = "/media/nas/ssd/nix-app-data/open-webui"; + # stateDir = "/media/nas/main/nix-app-data/open-webui"; environmentFile = config.sops.secrets."jallen-nas/open-webui".path; environment = { OPENID_PROVIDER_URL = "https://authentik.mjallen.dev/application/o/chat/.well-known/openid-configuration"; diff --git a/modules/nixos/orca/options.nix b/modules/nixos/orca/options.nix index 02ac2a5..3ed0bde 100644 --- a/modules/nixos/orca/options.nix +++ b/modules/nixos/orca/options.nix @@ -31,7 +31,7 @@ with lib; configPath = mkOption { type = types.str; - default = "/media/nas/ssd/ssd_app_data/orca-slicer"; + default = "/media/nas/main/ssd_app_data/orca-slicer"; }; dataPath = mkOption { diff --git a/modules/nixos/paperless/default.nix b/modules/nixos/paperless/default.nix index c9cc978..3298b9c 100755 --- a/modules/nixos/paperless/default.nix +++ b/modules/nixos/paperless/default.nix @@ -82,7 +82,7 @@ in # Bind mount directories from host bindMounts = { "/var/lib/paperless" = { - hostPath = "/media/nas/ssd/nix-app-data/paperless"; + hostPath = "/media/nas/main/nix-app-data/paperless"; isReadOnly = false; }; secrets = { diff --git a/modules/nixos/traefik/default.nix b/modules/nixos/traefik/default.nix index e37c03b..09c27c8 100755 --- a/modules/nixos/traefik/default.nix +++ b/modules/nixos/traefik/default.nix @@ -58,7 +58,7 @@ let # misc letsEncryptEmail = "jalle008@proton.me"; - dataDir = "/media/nas/ssd/nix-app-data/traefik"; + dataDir = "/media/nas/main/nix-app-data/traefik"; authentikAddress = "http://${serverIp}:9000/outpost.goauthentik.io/auth/traefik"; in { diff --git a/systems/x86_64-linux/nas/apps.nix b/systems/x86_64-linux/nas/apps.nix index ce73418..ce1be17 100755 --- a/systems/x86_64-linux/nas/apps.nix +++ b/systems/x86_64-linux/nas/apps.nix @@ -19,7 +19,7 @@ enable = true; port = 3333; localAddress = "10.0.3.18"; - dataDir = "/media/nas/ssd/nix-app-data/actual"; + dataDir = "/media/nas/main/nix-app-data/actual"; reverseProxy = { enable = true; host = "actual.mjallen.dev"; @@ -33,25 +33,25 @@ arrs = { enable = true; localAddress = "10.0.1.51"; - downloadsDir = "/media/nas/ssd/ssd_app_data/downloads"; - incompleteDownloadsDir = "/media/nas/ssd/ssd_app_data/downloads-incomplete"; + downloadsDir = "/media/nas/main/ssd_app_data/downloads"; + incompleteDownloadsDir = "/media/nas/main/ssd_app_data/downloads-incomplete"; moviesDir = "/media/nas/main/movies"; tvDir = "/media/nas/main/tv"; isosDir = "/media/nas/main/isos"; radarr = { enable = true; port = 7878; - dataDir = "/media/nas/ssd/nix-app-data/radarr"; + dataDir = "/media/nas/main/nix-app-data/radarr"; }; sonarr = { enable = true; port = 8989; - dataDir = "/media/nas/ssd/nix-app-data/sonarr"; + dataDir = "/media/nas/main/nix-app-data/sonarr"; }; sabnzbd = { enable = true; port = 8280; - dataDir = "/media/nas/ssd/nix-app-data/sabnzbd"; + dataDir = "/media/nas/main/nix-app-data/sabnzbd"; }; deluge = { enable = true; @@ -60,7 +60,7 @@ jackett = { enable = true; port = 9117; - dataDir = "/media/nas/ssd/nix-app-data/jackett"; + dataDir = "/media/nas/main/nix-app-data/jackett"; }; }; @@ -69,7 +69,7 @@ port = 9898; apiAddress = "10.0.1.3"; apiKey = "1daH89qmJ41r2Lpd9hvDw4sxtOAtBzaj3aKFOFqE"; - dataDir = "/media/nas/ssd/nix-app-data/crowdsec"; + dataDir = "/media/nas/main/nix-app-data/crowdsec"; }; gitea = { @@ -77,7 +77,7 @@ httpPort = 3000; sshPort = 2222; localAddress = "10.0.4.18"; - dataDir = "/media/nas/ssd/nix-app-data/gitea"; + dataDir = "/media/nas/main/nix-app-data/gitea"; reverseProxy = { enable = true; host = "gitea.mjallen.dev"; diff --git a/systems/x86_64-linux/nas/boot.nix b/systems/x86_64-linux/nas/boot.nix index 3f0a169..e94bd77 100755 --- a/systems/x86_64-linux/nas/boot.nix +++ b/systems/x86_64-linux/nas/boot.nix @@ -47,6 +47,12 @@ in # tpm2.enable = true; tpm2.enable = true; }; + clevis = { + enable = true; + devices = { +# "/dev/sde:/dev/sdf:/dev/sdh:/dev/sdi:/dev/sdj".secretFile = "../../../pool.jwe"; + }; + }; }; # Enable binfmt emulation for ARM diff --git a/systems/x86_64-linux/nas/default.nix b/systems/x86_64-linux/nas/default.nix index 410d008..427ca4c 100755 --- a/systems/x86_64-linux/nas/default.nix +++ b/systems/x86_64-linux/nas/default.nix @@ -1,3 +1,4 @@ + # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). @@ -26,11 +27,13 @@ ./sops.nix ]; + services.kmscon.enable = true; + powerManagement.cpuFreqGovernor = "powersave"; ${namespace} = { bootloader.lanzaboote.enable = true; - desktop.cosmic.enable = true; + desktop.cosmic.enable = false; hardware.nvidia = { enable = true; enableBeta = true; @@ -56,16 +59,6 @@ # Configure environment environment = { - etc.crypttab.text = '' - ssd1 UUID=eff4b19c-aba7-41ab-b452-a8c6654d8754 none tpm2-device=auto - ssd2 UUID=c8640e19-6cd9-49d0-a355-bac09d17ea0d none tpm2-device=auto - hdd1 UUID=8d7dd657-d9b0-47ed-97e1-a9d1eba12b56 none tpm2-device=auto - hdd2 UUID=11ee92b0-6334-4be7-bb2d-d85f5a3f51a6 none tpm2-device=auto - hdd3 UUID=4463ea6f-3fcf-4e49-80c8-ba7f424471f0 none tpm2-device=auto - hdd4 UUID=13fe7737-b72b-4d5f-a79d-1ca0d438f8f0 none tpm2-device=auto - hdd5 UUID=2b4be219-613d-4512-8277-0260989d5377 none tpm2-device=auto - ''; - etc.machine-id.text = '' 57cdf5fc27f3469f80d0a339f1238aeb ''; @@ -74,6 +67,7 @@ attic-client binutils cryptsetup + clevis cmake deconz duperemove diff --git a/systems/x86_64-linux/nas/filesystems.nix b/systems/x86_64-linux/nas/filesystems.nix index 1c1aa2e..3a77a31 100755 --- a/systems/x86_64-linux/nas/filesystems.nix +++ b/systems/x86_64-linux/nas/filesystems.nix @@ -3,133 +3,10 @@ let defaultOptions = [ "compress=zstd" ]; in { - fileSystems."/media/nas/ssd/nix-app-data" = { - device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; - fsType = "btrfs"; - options = [ "subvol=nix-app-data" ] ++ defaultOptions; + fileSystems."/mnt" = { + label = "nas_pool"; +# device = "/dev/sde:/dev/sdf:/dev/sdh:/dev/sdi:/dev/:sdj"; + fsType = "bcachefs"; + mountPoint = "/media/nas/main"; }; - - fileSystems."/media/nas/ssd/ssd_app_data" = { - device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; - fsType = "btrfs"; - options = [ "subvol=ssd_app_data" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/ssd/mariadb" = { - device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; - fsType = "btrfs"; - options = [ "subvol=mariadb" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/ssd/mongodb" = { - device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; - fsType = "btrfs"; - options = [ "subvol=mongodb" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/ssd/VMs" = { - device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; - fsType = "btrfs"; - options = [ "subvol=VMs" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/3d_printer" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=3d_printer" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/backup" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=backup" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/books" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=books" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/documents" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=documents" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/homeassistant" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=homeassistant" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/isos" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=isos" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/movies" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=movies" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/nextcloud" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=nextcloud" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/photos" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=photos" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/switch" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=switch" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/tv" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=tv" ] ++ defaultOptions; - }; - - fileSystems."/media/nas/main/timemachine" = { - device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - fsType = "btrfs"; - options = [ "subvol=timemachine" ] ++ defaultOptions; - }; - - fileSystems."/run/mount/ssd" = { - device = "/dev/mapper/ssd1"; - fsType = "btrfs"; - }; - - fileSystems."/run/mount/main" = { - device = "/dev/mapper/hdd1"; - fsType = "btrfs"; - }; - - # fileSystems."/media/nas/junk/nextcloud-backup" = { - # device = "/dev/disk/by-uuid/11948951106919390044"; - # fsType = "btrfs"; - # options = [ - # "subvol=nextcloud-backup" - # ] - # ++ defaultOptions; - # }; - - # fileSystems."/media/nas/main/vms" = { - # device = "/dev/disk/by-uuid/76e7cd98-3145-4cff-b78d-bab0206aae28"; - # fsType = "btrfs"; - # options = [ - # "subvol=vms" - # ] - # ++ defaultOptions; - # }; } diff --git a/systems/x86_64-linux/nas/grafana.nix b/systems/x86_64-linux/nas/grafana.nix index 707baf7..cfdf51f 100755 --- a/systems/x86_64-linux/nas/grafana.nix +++ b/systems/x86_64-linux/nas/grafana.nix @@ -66,7 +66,7 @@ in }; }; - dataDir = "/media/nas/ssd/nix-app-data/grafana"; + dataDir = "/media/nas/main/nix-app-data/grafana"; provision = { enable = true; diff --git a/systems/x86_64-linux/nas/samba.nix b/systems/x86_64-linux/nas/samba.nix index 5190ceb..1ceb3b1 100755 --- a/systems/x86_64-linux/nas/samba.nix +++ b/systems/x86_64-linux/nas/samba.nix @@ -31,7 +31,7 @@ }; app_data = { public = true; - sharePath = "/media/nas/ssd/ssd_app_data"; + sharePath = "/media/nas/main/ssd_app_data"; }; nix-config = { public = true; diff --git a/systems/x86_64-linux/nas/services.nix b/systems/x86_64-linux/nas/services.nix index f4545c7..6c1e224 100755 --- a/systems/x86_64-linux/nas/services.nix +++ b/systems/x86_64-linux/nas/services.nix @@ -28,7 +28,7 @@ in eula = true; declarative = true; openFirewall = true; - dataDir = "/media/nas/ssd/ssd_app_data/minecraft"; + dataDir = "/media/nas/main/ssd_app_data/minecraft"; serverProperties = { enforce-whitelist = true; white-list = true; @@ -103,7 +103,7 @@ in "--hostname=jallen-nas" "--webclient" ]; - # authKeyFile = "/media/nas/ssd/nix-app-data/tailscale/auth"; + # authKeyFile = "/media/nas/main/nix-app-data/tailscale/auth"; }; btrfs = { @@ -114,9 +114,9 @@ in "/etc" "/var/log" "/home" - "/media/nas/ssd/nix-app-data" - "/media/nas/ssd/ssd_app_data" - "/media/nas/ssd/mariadb" + "/media/nas/main/nix-app-data" + "/media/nas/main/ssd_app_data" + "/media/nas/main/mariadb" "/media/nas/main/3d_printer" "/media/nas/main/backup" "/media/nas/main/documents" @@ -144,7 +144,7 @@ in postgresql = { enable = true; package = pkgs.postgresql_16; - dataDir = "/media/nas/ssd/nix-app-data/postgresql"; + dataDir = "/media/nas/main/nix-app-data/postgresql"; ensureDatabases = [ "authentik" ]; ensureUsers = [ { @@ -294,7 +294,7 @@ in pkgs.rsync ]; script = '' - rsync -rtpogvPlHzs --ignore-existing /media/nas/ssd /media/nas/main/backup/ssd + rsync -rtpogvPlHzs --ignore-existing /media/nas/main /media/nas/main/backup/ssd ''; };