This commit is contained in:
mjallen18
2025-08-17 21:01:56 -05:00
parent 533d6a4170
commit c053da2e30
21 changed files with 56 additions and 179 deletions

View File

@@ -26,7 +26,7 @@ with lib;
dataPath = mkOption { dataPath = mkOption {
type = types.str; 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 { puid = mkOption {

View File

@@ -26,7 +26,7 @@ with lib;
configPath = mkOption { configPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/manyfold"; default = "/media/nas/main/nix-app-data/manyfold";
}; };
dataPath = mkOption { dataPath = mkOption {

View File

@@ -26,7 +26,7 @@ with lib;
configPath = mkOption { configPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/mongodb"; default = "/media/nas/main/mongodb";
}; };
puid = mkOption { puid = mkOption {

View File

@@ -31,22 +31,22 @@ with lib;
configPath = mkOption { configPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/tdarr/config"; default = "/media/nas/main/nix-app-data/tdarr/config";
}; };
serverPath = mkOption { serverPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/tdarr/server"; default = "/media/nas/main/nix-app-data/tdarr/server";
}; };
logPath = mkOption { logPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/tdarr/logs"; default = "/media/nas/main/nix-app-data/tdarr/logs";
}; };
transcodePath = mkOption { transcodePath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/tdarr/transcode"; default = "/media/nas/main/nix-app-data/tdarr/transcode";
}; };
moviesPath = mkOption { moviesPath = mkOption {

View File

@@ -36,7 +36,7 @@ with lib;
configPath = mkOption { configPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/nix-app-data/your_spotify"; default = "/media/nas/main/nix-app-data/your_spotify";
}; };
puid = mkOption { puid = mkOption {

View File

@@ -7,7 +7,7 @@ let
# httpPort = 3000; # httpPort = 3000;
# sshPort = 2222; # sshPort = 2222;
rootUrl = "https://gitea.mjallen.dev/"; 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"; dataDir = "/var/lib/gitea";
secretsDir = "/run/secrets/jallen-nas/gitea"; secretsDir = "/run/secrets/jallen-nas/gitea";
mailerPasswordFile = config.sops.secrets."jallen-nas/gitea/mail-key".path; mailerPasswordFile = config.sops.secrets."jallen-nas/gitea/mail-key".path;

View File

@@ -17,7 +17,7 @@ in
openFirewall = true; openFirewall = true;
user = "nix-apps"; user = "nix-apps";
group = "jallen-nas"; group = "jallen-nas";
dataDir = "/media/nas/ssd/nix-app-data/jellyfin"; dataDir = "/media/nas/main/nix-app-data/jellyfin";
# cacheDir = "/cache"; # cacheDir = "/cache";
}; };
}; };

View File

@@ -25,7 +25,7 @@ in
bindMounts = { bindMounts = {
${dataDir} = { ${dataDir} = {
hostPath = "/media/nas/ssd/nix-app-data/jellyseerr"; hostPath = "/media/nas/main/nix-app-data/jellyseerr";
isReadOnly = false; isReadOnly = false;
}; };
}; };

View File

@@ -17,11 +17,11 @@ in
image = "ghcr.io/hargata/lubelogger"; image = "ghcr.io/hargata/lubelogger";
ports = [ "6754:8080" ]; ports = [ "6754:8080" ];
volumes = [ volumes = [
"/media/nas/ssd/nix-app-data/lubelogger:/App/data" "/media/nas/main/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/keys:/root/.aspnet/DataProtection-Keys"
]; ];
environmentFiles = [ environmentFiles = [
"/media/nas/ssd/nix-app-data/lubelogger/lubelogger.env" "/media/nas/main/nix-app-data/lubelogger/lubelogger.env"
]; ];
environment = { environment = {
PUID = toString config.users.users.nix-apps.uid; PUID = toString config.users.users.nix-apps.uid;

View File

@@ -52,13 +52,13 @@ in
}; };
"/var/lib/nextcloud" = { "/var/lib/nextcloud" = {
hostPath = "/media/nas/ssd/nix-app-data/nextcloud"; hostPath = "/media/nas/main/nix-app-data/nextcloud";
isReadOnly = false; isReadOnly = false;
mountPoint = "/var/lib/nextcloud"; mountPoint = "/var/lib/nextcloud";
}; };
"/var/lib/onlyoffice" = { "/var/lib/onlyoffice" = {
hostPath = "/media/nas/ssd/nix-app-data/onlyoffice"; hostPath = "/media/nas/main/nix-app-data/onlyoffice";
isReadOnly = false; isReadOnly = false;
mountPoint = "/var/lib/onlyoffice"; mountPoint = "/var/lib/onlyoffice";
}; };

View File

@@ -33,7 +33,7 @@ in
group = "jallen-nas"; group = "jallen-nas";
openFirewall = true; openFirewall = true;
acceleration = "cuda"; acceleration = "cuda";
home = "/media/nas/ssd/nix-app-data/ollama"; home = "/media/nas/main/nix-app-data/ollama";
}; };
environment.systemPackages = [ llamaPackage ]; environment.systemPackages = [ llamaPackage ];
@@ -43,7 +43,7 @@ in
port = 8127; port = 8127;
host = "0.0.0.0"; host = "0.0.0.0";
openFirewall = true; 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; package = llamaPackage; # pkgs.unstable.llama-cpp;
extraFlags = [ extraFlags = [
"--n_gpu-layers" "--n_gpu-layers"
@@ -61,7 +61,7 @@ in
host = "0.0.0.0"; host = "0.0.0.0";
port = 8888; port = 8888;
openFirewall = true; 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; environmentFile = config.sops.secrets."jallen-nas/open-webui".path;
environment = { environment = {
OPENID_PROVIDER_URL = "https://authentik.mjallen.dev/application/o/chat/.well-known/openid-configuration"; OPENID_PROVIDER_URL = "https://authentik.mjallen.dev/application/o/chat/.well-known/openid-configuration";

View File

@@ -31,7 +31,7 @@ with lib;
configPath = mkOption { configPath = mkOption {
type = types.str; type = types.str;
default = "/media/nas/ssd/ssd_app_data/orca-slicer"; default = "/media/nas/main/ssd_app_data/orca-slicer";
}; };
dataPath = mkOption { dataPath = mkOption {

View File

@@ -82,7 +82,7 @@ in
# Bind mount directories from host # Bind mount directories from host
bindMounts = { bindMounts = {
"/var/lib/paperless" = { "/var/lib/paperless" = {
hostPath = "/media/nas/ssd/nix-app-data/paperless"; hostPath = "/media/nas/main/nix-app-data/paperless";
isReadOnly = false; isReadOnly = false;
}; };
secrets = { secrets = {

View File

@@ -58,7 +58,7 @@ let
# misc # misc
letsEncryptEmail = "jalle008@proton.me"; 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"; authentikAddress = "http://${serverIp}:9000/outpost.goauthentik.io/auth/traefik";
in in
{ {

View File

@@ -19,7 +19,7 @@
enable = true; enable = true;
port = 3333; port = 3333;
localAddress = "10.0.3.18"; localAddress = "10.0.3.18";
dataDir = "/media/nas/ssd/nix-app-data/actual"; dataDir = "/media/nas/main/nix-app-data/actual";
reverseProxy = { reverseProxy = {
enable = true; enable = true;
host = "actual.mjallen.dev"; host = "actual.mjallen.dev";
@@ -33,25 +33,25 @@
arrs = { arrs = {
enable = true; enable = true;
localAddress = "10.0.1.51"; localAddress = "10.0.1.51";
downloadsDir = "/media/nas/ssd/ssd_app_data/downloads"; downloadsDir = "/media/nas/main/ssd_app_data/downloads";
incompleteDownloadsDir = "/media/nas/ssd/ssd_app_data/downloads-incomplete"; incompleteDownloadsDir = "/media/nas/main/ssd_app_data/downloads-incomplete";
moviesDir = "/media/nas/main/movies"; moviesDir = "/media/nas/main/movies";
tvDir = "/media/nas/main/tv"; tvDir = "/media/nas/main/tv";
isosDir = "/media/nas/main/isos"; isosDir = "/media/nas/main/isos";
radarr = { radarr = {
enable = true; enable = true;
port = 7878; port = 7878;
dataDir = "/media/nas/ssd/nix-app-data/radarr"; dataDir = "/media/nas/main/nix-app-data/radarr";
}; };
sonarr = { sonarr = {
enable = true; enable = true;
port = 8989; port = 8989;
dataDir = "/media/nas/ssd/nix-app-data/sonarr"; dataDir = "/media/nas/main/nix-app-data/sonarr";
}; };
sabnzbd = { sabnzbd = {
enable = true; enable = true;
port = 8280; port = 8280;
dataDir = "/media/nas/ssd/nix-app-data/sabnzbd"; dataDir = "/media/nas/main/nix-app-data/sabnzbd";
}; };
deluge = { deluge = {
enable = true; enable = true;
@@ -60,7 +60,7 @@
jackett = { jackett = {
enable = true; enable = true;
port = 9117; port = 9117;
dataDir = "/media/nas/ssd/nix-app-data/jackett"; dataDir = "/media/nas/main/nix-app-data/jackett";
}; };
}; };
@@ -69,7 +69,7 @@
port = 9898; port = 9898;
apiAddress = "10.0.1.3"; apiAddress = "10.0.1.3";
apiKey = "1daH89qmJ41r2Lpd9hvDw4sxtOAtBzaj3aKFOFqE"; apiKey = "1daH89qmJ41r2Lpd9hvDw4sxtOAtBzaj3aKFOFqE";
dataDir = "/media/nas/ssd/nix-app-data/crowdsec"; dataDir = "/media/nas/main/nix-app-data/crowdsec";
}; };
gitea = { gitea = {
@@ -77,7 +77,7 @@
httpPort = 3000; httpPort = 3000;
sshPort = 2222; sshPort = 2222;
localAddress = "10.0.4.18"; localAddress = "10.0.4.18";
dataDir = "/media/nas/ssd/nix-app-data/gitea"; dataDir = "/media/nas/main/nix-app-data/gitea";
reverseProxy = { reverseProxy = {
enable = true; enable = true;
host = "gitea.mjallen.dev"; host = "gitea.mjallen.dev";

View File

@@ -47,6 +47,12 @@ in
# tpm2.enable = true; # tpm2.enable = true;
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 # Enable binfmt emulation for ARM

View File

@@ -1,3 +1,4 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, 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`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
@@ -26,11 +27,13 @@
./sops.nix ./sops.nix
]; ];
services.kmscon.enable = true;
powerManagement.cpuFreqGovernor = "powersave"; powerManagement.cpuFreqGovernor = "powersave";
${namespace} = { ${namespace} = {
bootloader.lanzaboote.enable = true; bootloader.lanzaboote.enable = true;
desktop.cosmic.enable = true; desktop.cosmic.enable = false;
hardware.nvidia = { hardware.nvidia = {
enable = true; enable = true;
enableBeta = true; enableBeta = true;
@@ -56,16 +59,6 @@
# Configure environment # Configure environment
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 = '' etc.machine-id.text = ''
57cdf5fc27f3469f80d0a339f1238aeb 57cdf5fc27f3469f80d0a339f1238aeb
''; '';
@@ -74,6 +67,7 @@
attic-client attic-client
binutils binutils
cryptsetup cryptsetup
clevis
cmake cmake
deconz deconz
duperemove duperemove

View File

@@ -3,133 +3,10 @@ let
defaultOptions = [ "compress=zstd" ]; defaultOptions = [ "compress=zstd" ];
in in
{ {
fileSystems."/media/nas/ssd/nix-app-data" = { fileSystems."/mnt" = {
device = "/dev/disk/by-uuid/09ac8b6b-e553-4cd8-ae62-8d8c17fe8b0c"; label = "nas_pool";
fsType = "btrfs"; # device = "/dev/sde:/dev/sdf:/dev/sdh:/dev/sdi:/dev/:sdj";
options = [ "subvol=nix-app-data" ] ++ defaultOptions; 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;
# };
} }

View File

@@ -66,7 +66,7 @@ in
}; };
}; };
dataDir = "/media/nas/ssd/nix-app-data/grafana"; dataDir = "/media/nas/main/nix-app-data/grafana";
provision = { provision = {
enable = true; enable = true;

View File

@@ -31,7 +31,7 @@
}; };
app_data = { app_data = {
public = true; public = true;
sharePath = "/media/nas/ssd/ssd_app_data"; sharePath = "/media/nas/main/ssd_app_data";
}; };
nix-config = { nix-config = {
public = true; public = true;

View File

@@ -28,7 +28,7 @@ in
eula = true; eula = true;
declarative = true; declarative = true;
openFirewall = true; openFirewall = true;
dataDir = "/media/nas/ssd/ssd_app_data/minecraft"; dataDir = "/media/nas/main/ssd_app_data/minecraft";
serverProperties = { serverProperties = {
enforce-whitelist = true; enforce-whitelist = true;
white-list = true; white-list = true;
@@ -103,7 +103,7 @@ in
"--hostname=jallen-nas" "--hostname=jallen-nas"
"--webclient" "--webclient"
]; ];
# authKeyFile = "/media/nas/ssd/nix-app-data/tailscale/auth"; # authKeyFile = "/media/nas/main/nix-app-data/tailscale/auth";
}; };
btrfs = { btrfs = {
@@ -114,9 +114,9 @@ in
"/etc" "/etc"
"/var/log" "/var/log"
"/home" "/home"
"/media/nas/ssd/nix-app-data" "/media/nas/main/nix-app-data"
"/media/nas/ssd/ssd_app_data" "/media/nas/main/ssd_app_data"
"/media/nas/ssd/mariadb" "/media/nas/main/mariadb"
"/media/nas/main/3d_printer" "/media/nas/main/3d_printer"
"/media/nas/main/backup" "/media/nas/main/backup"
"/media/nas/main/documents" "/media/nas/main/documents"
@@ -144,7 +144,7 @@ in
postgresql = { postgresql = {
enable = true; enable = true;
package = pkgs.postgresql_16; package = pkgs.postgresql_16;
dataDir = "/media/nas/ssd/nix-app-data/postgresql"; dataDir = "/media/nas/main/nix-app-data/postgresql";
ensureDatabases = [ "authentik" ]; ensureDatabases = [ "authentik" ];
ensureUsers = [ ensureUsers = [
{ {
@@ -294,7 +294,7 @@ in
pkgs.rsync pkgs.rsync
]; ];
script = '' 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
''; '';
}; };