diff --git a/systems/jeeves/configuration.nix b/systems/jeeves/configuration.nix index 8f72617..a369c2d 100644 --- a/systems/jeeves/configuration.nix +++ b/systems/jeeves/configuration.nix @@ -1,4 +1,7 @@ { pkgs, ... }: +let + vars = import ./vars.nix; +in { imports = [ ../../users/richie/global/ssh.nix @@ -43,6 +46,12 @@ mode = "0440"; }; }; + variables = { + ZFS_MEDIA = vars.zfs_media; + ZFS_STORAGE = vars.zfs_storage; + ZFS_STORAGE_PLEX = vars.storage_plex; + ZFS_TORRENTING = vars.zfs_torrenting; + }; }; services = { @@ -52,7 +61,7 @@ plex = { enable = true; - dataDir = "/zfs/media/plex/"; + dataDir = vars.media_plex; }; smartd.enable = true; @@ -63,7 +72,7 @@ syncthing.settings.folders = { "notes" = { id = "l62ul-lpweo"; # cspell:disable-line - path = "/zfs/media/notes"; + path = vars.media_notes; devices = [ "bob" "phone" @@ -73,7 +82,7 @@ }; "books" = { id = "6uppx-vadmy"; # cspell:disable-line - path = "/zfs/storage/syncthing/books"; + path = "${vars.storage_syncthing}/books"; devices = [ "bob" "phone" @@ -83,7 +92,7 @@ }; "important" = { id = "4ckma-gtshs"; # cspell:disable-line - path = "/zfs/storage/syncthing/important"; + path = "${vars.storage_syncthing}/important"; devices = [ "bob" "phone" @@ -93,7 +102,7 @@ }; "music" = { id = "vprc5-3azqc"; # cspell:disable-line - path = "/zfs/storage/syncthing/music"; + path = "${vars.storage_syncthing}/music"; devices = [ "bob" "phone" @@ -103,7 +112,7 @@ }; "projects" = { id = "vyma6-lqqrz"; # cspell:disable-line - path = "/zfs/storage/syncthing/projects"; + path = "${vars.storage_syncthing}/projects"; devices = [ "bob" "rhapsody-in-green" diff --git a/systems/jeeves/docker/filebrowser.nix b/systems/jeeves/docker/filebrowser.nix index 9c96930..e063242 100644 --- a/systems/jeeves/docker/filebrowser.nix +++ b/systems/jeeves/docker/filebrowser.nix @@ -1,10 +1,13 @@ +let + vars = import ../vars.nix; +in { virtualisation.oci-containers.containers.filebrowser = { image = "hurlenko/filebrowser"; extraOptions = [ "--network=web" ]; volumes = [ "/zfs:/data" - "/zfs/media/docker/configs/filebrowser:/config" + "${vars.media_docker_configs}/filebrowser:/config" ]; autoStart = true; user = "1000:users"; diff --git a/systems/jeeves/docker/internal.nix b/systems/jeeves/docker/internal.nix index 072231f..8db13a0 100644 --- a/systems/jeeves/docker/internal.nix +++ b/systems/jeeves/docker/internal.nix @@ -1,4 +1,7 @@ { config, ... }: +let + vars = import ../vars.nix; +in { virtualisation.oci-containers.containers = { qbit = { @@ -10,8 +13,8 @@ "29432:29432" ]; volumes = [ - "/zfs/media/docker/configs/qbit:/config" - "/zfs/torrenting/qbit/:/data" + "${vars.media_docker_configs}/qbit:/config" + "${vars.torrenting_qbit}:/data" ]; environment = { PUID = "600"; @@ -31,8 +34,8 @@ "8118:8118" ]; volumes = [ - "/zfs/media/docker/configs/qbitvpn:/config" - "/zfs/torrenting/qbitvpn/:/data" + "${vars.media_docker_configs}/qbitvpn:/config" + "${vars.torrenting_qbitvpn}:/data" "/etc/localtime:/etc/localtime:ro" ]; environment = { @@ -61,7 +64,7 @@ PGID = "100"; TZ = "America/New_York"; }; - volumes = [ "/zfs/media/docker/configs/prowlarr:/config" ]; + volumes = [ "${vars.media_docker_configs}/prowlarr:/config" ]; autoStart = true; }; radarr = { @@ -73,9 +76,9 @@ TZ = "America/New_York"; }; volumes = [ - "/zfs/media/docker/configs/radarr:/config" - "/zfs/storage/plex/movies:/movies" - "/zfs/torrenting/qbitvpn:/data" + "${vars.media_docker_configs}/radarr:/config" + "${vars.storage_plex}/movies:/movies" + "${vars.torrenting_qbitvpn}:/data" ]; autoStart = true; }; @@ -88,9 +91,9 @@ TZ = "America/New_York"; }; volumes = [ - "/zfs/media/docker/configs/sonarr:/config" - "/zfs/storage/plex/tv:/tv" - "/zfs/torrenting/qbitvpn:/data" + "${vars.media_docker_configs}/sonarr:/config" + "${vars.storage_plex}/tv:/tv" + "${vars.torrenting_qbitvpn}:/data" ]; autoStart = true; }; diff --git a/systems/jeeves/docker/postgresql.nix b/systems/jeeves/docker/postgresql.nix index 469b9ac..a3938b1 100644 --- a/systems/jeeves/docker/postgresql.nix +++ b/systems/jeeves/docker/postgresql.nix @@ -1,4 +1,7 @@ { config, ... }: +let + vars = import ../vars.nix; +in { users = { users.postgres = { @@ -15,7 +18,7 @@ postgres = { image = "postgres:16"; ports = [ "5432:5432" ]; - volumes = [ "/zfs/media/databases/postgres:/var/lib/postgresql/data" ]; + volumes = [ "${vars.media_database}/postgres:/var/lib/postgresql/data" ]; environment = { POSTGRES_USER = "admin"; POSTGRES_DB = "archive"; diff --git a/systems/jeeves/docker/web.nix b/systems/jeeves/docker/web.nix index 8bdbfb0..3cae3ed 100644 --- a/systems/jeeves/docker/web.nix +++ b/systems/jeeves/docker/web.nix @@ -1,9 +1,12 @@ { config, ... }: +let + vars = import ../vars.nix; +in { virtualisation.oci-containers.containers = { grafana = { image = "grafana/grafana-enterprise"; - volumes = [ "/zfs/media/docker/configs/grafana:/var/lib/grafana" ]; + volumes = [ "${vars.media_docker_configs}/grafana:/var/lib/grafana" ]; user = "600:600"; extraOptions = [ "--network=web" ]; autoStart = true; @@ -11,8 +14,8 @@ dnd_file_server = { image = "ubuntu/apache2:latest"; volumes = [ - "/zfs/media/docker/templates/file_server/sites/:/etc/apache2/sites-enabled/" - "/zfs/storage/main/Table_Top/:/data" + "${vars.media_docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/" + "${vars.storage_main}/Table_Top/:/data" ]; extraOptions = [ "--network=web" ]; autoStart = true; @@ -20,8 +23,8 @@ arch_mirror = { image = "ubuntu/apache2:latest"; volumes = [ - "/zfs/media/docker/templates/file_server/sites/:/etc/apache2/sites-enabled/" - "/zfs/media/mirror/:/data" + "${vars.media_docker_templates}/file_server/sites/:/etc/apache2/sites-enabled/" + "${vars.media_mirror}:/data" ]; ports = [ "800:80" ]; extraOptions = [ "--network=web" ]; diff --git a/systems/jeeves/scripts/plex_permission.sh b/systems/jeeves/scripts/plex_permission.sh index 18094e8..bf134dd 100644 --- a/systems/jeeves/scripts/plex_permission.sh +++ b/systems/jeeves/scripts/plex_permission.sh @@ -1,6 +1,6 @@ #!/bin/bash -plex_dir="/zfs/storage/plex/" +plex_dir=$ZFS_STORAGE_PLEX chown docker-service:users -R "$plex_dir" find "$plex_dir" -type f -exec chmod 664 {} \; diff --git a/systems/jeeves/vars.nix b/systems/jeeves/vars.nix new file mode 100644 index 0000000..27cb8f7 --- /dev/null +++ b/systems/jeeves/vars.nix @@ -0,0 +1,22 @@ +let + zfs_storage = "/zfs/storage"; + zfs_torrenting = "/zfs/torrenting"; + zfs_media = "/zfs/media"; +in +{ + # media + media_database = "${zfs_media}/syncthing/database"; + media_docker = "${zfs_media}/docker"; + media_docker_configs = "${zfs_media}/docker/configs"; + media_docker_templates = "${zfs_media}/docker/templates"; + media_mirror = "${zfs_media}/mirror"; + media_notes = "${zfs_media}/notes"; + media_plex = "${zfs_media}/plex/"; + # storage + storage_main = "${zfs_storage}/main"; + storage_plex = "${zfs_storage}/plex"; + storage_syncthing = "${zfs_storage}/syncthing"; + # torrenting + torrenting_qbit = "${zfs_torrenting}/qbit"; + torrenting_qbitvpn = "${zfs_torrenting}/qbitvpn"; +} diff --git a/users/richie/home/gui/vscode/settings.json b/users/richie/home/gui/vscode/settings.json index 5301412..1eace75 100644 --- a/users/richie/home/gui/vscode/settings.json +++ b/users/richie/home/gui/vscode/settings.json @@ -57,5 +57,6 @@ "github.copilot.enable": { "*": false }, - "terminal.integrated.scrollback": 10000 + "terminal.integrated.scrollback": 10000, + "diffEditor.ignoreTrimWhitespace": false }