From 9aab8c644424cc0cdabd0448740a2ea9ba249cdc Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 10 Dec 2025 18:09:00 -0600 Subject: [PATCH] feat: updated abstractions --- .../config/instances/config/photoprism.nix | 0 .../bookmarks/config/flake/selfHosted.nix | 63 ++++++++++++------- .../config/search/config/flake/selfHosted.nix | 43 ++++++------- .../userSettings/config/assistant/default.nix | 2 +- .../gui/apps/tools/espanso/config/url.nix | 8 +-- .../homelab/caddy/config/forgejo/default.nix | 0 .../homelab/caddy/config/jellyfin/default.nix | 0 .../homelab/caddy/config/mastodon/default.nix | 0 .../caddy/config/photoprism/default.nix | 0 .../caddy/config/qbittorrent/default.nix | 0 .../caddy/config/syncthing/default.nix | 0 .../homelab/caddy/config/website/default.nix | 0 .../firefly-iii/fireflyEris/default.nix | 0 .../guests/forgejo/forgejoCeres/default.nix | 0 .../guests/jellyfin/jellyfinCeres/default.nix | 0 .../guests/linkpage/linkpageCeres/default.nix | 0 .../guests/mastodon/mastodonCeres/default.nix | 0 .../opencloud/opencloudCeres/default.nix | 0 .../opencloud/opencloudEris/default.nix | 0 .../qbittorrent/qbittorrentCeres/default.nix | 0 .../vaultwarden/vaultwardenCeres/default.nix | 0 .../guests/website/websiteCeres/default.nix | 0 .../zookeeper/zookeeperCeres/default.nix | 0 modules/nixos/homelab/helpers.nix | 0 modules/nixos/homelab/nasDirs/default.nix | 0 modules/nixos/homelab/samba/default.nix | 15 ----- .../homelab/samba/sambaCeres/default.nix | 1 + .../nixos/homelab/samba/sambaEris/default.nix | 1 + profiles/user0/files/misc/justfile.nix | 30 --------- systems/ceres/config/networking.nix | 2 + systems/deimos/config/wireguard.nix | 2 +- 31 files changed, 70 insertions(+), 97 deletions(-) mode change 100644 => 100755 modules/config/instances/config/photoprism.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/forgejo/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/jellyfin/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/mastodon/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/photoprism/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/qbittorrent/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/syncthing/default.nix mode change 100644 => 100755 modules/nixos/homelab/caddy/config/website/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/firefly-iii/fireflyEris/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/forgejo/forgejoCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/jellyfin/jellyfinCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/linkpage/linkpageCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/mastodon/mastodonCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/opencloud/opencloudCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/opencloud/opencloudEris/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/qbittorrent/qbittorrentCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/vaultwarden/vaultwardenCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/website/websiteCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/guests/zookeeper/zookeeperCeres/default.nix mode change 100644 => 100755 modules/nixos/homelab/helpers.nix mode change 100644 => 100755 modules/nixos/homelab/nasDirs/default.nix diff --git a/modules/config/instances/config/photoprism.nix b/modules/config/instances/config/photoprism.nix old mode 100644 new mode 100755 diff --git a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix index d820bbe..d7a56f8 100755 --- a/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix +++ b/modules/home/gui/apps/browsers/floorp/config/bookmarks/config/flake/selfHosted.nix @@ -3,46 +3,63 @@ let inherit (flake.config.machines.devices) mars; inherit (flake.config.services) instances; + svc = service: interface: { inherit service interface; }; + makeBookmarks = { suffix, urlTemplate, services, }: - builtins.map (name: { - name = "${instances.${name}.label} ${suffix}"; - url = urlTemplate name; - tags = instances.${name}.tags; - keyword = instances.${name}.short; - }) (builtins.map (service: instances.${service}.name) services); + builtins.map ( + { service, interface }: + let + name = instances.${service}.name; + interfaceData = instances.${name}.interfaces.${interface}; + in + { + name = "${instances.${name}.label} ${suffix}"; + url = urlTemplate name interfaceData; + tags = instances.${name}.tags; + keyword = instances.${name}.short; + } + ) services; - instanceList = [ - instances.firefly-iii.name - instances.forgejo.name - instances.jellyfin.name - instances.mastodon.name - instances.ollama.name - instances.qbittorrent.name - instances.vaultwarden.name - ]; bookmarkConfigs = [ { suffix = "(Remote)"; - urlTemplate = name: "https://${instances.${name}.domains.url0}"; - services = instanceList; + urlTemplate = name: iface: "https://${iface.domain}"; + services = [ + (svc instances.firefly-iii.name "interface0") + (svc instances.forgejo.name "interface0") + (svc instances.jellyfin.name "interface0") + (svc instances.mastodon.name "interface0") + (svc instances.ollama.name "interface0") + (svc instances.qbittorrent.name "interface0") + (svc instances.vaultwarden.name "interface0") + ]; } { suffix = "(Server)"; urlTemplate = - name: "http://${instances.${name}.interface.ip}:${builtins.toString instances.${name}.ports.port0}"; - services = instanceList; + name: iface: "http://${iface.microvm.ip}:${builtins.toString instances.${name}.ports.port0}"; + services = [ + (svc instances.firefly-iii.name "interface0") + (svc instances.forgejo.name "interface0") + (svc instances.jellyfin.name "interface0") + (svc instances.mastodon.name "interface0") + (svc instances.ollama.name "interface0") + (svc instances.qbittorrent.name "interface0") + (svc instances.vaultwarden.name "interface0") + ]; } { suffix = "(Desktop)"; - urlTemplate = name: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}"; + urlTemplate = + name: iface: "http://${mars.ip.address0}:${builtins.toString instances.${name}.ports.port0}"; services = [ - instances.ollama.name - instances.syncthing.name + (svc instances.ollama.name "interface0") + (svc instances.syncthing.name "interface0") ]; } ]; @@ -52,7 +69,7 @@ let flatBookmarks = [ { name = instances.web.label; - url = "http://${instances.web.localhost.address2}"; + url = "http://${instances.web.addresses.address2}"; tags = instances.web.tags; keyword = instances.web.label; } diff --git a/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix index 324e367..29f8cda 100755 --- a/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix +++ b/modules/home/gui/apps/browsers/floorp/config/search/config/flake/selfHosted.nix @@ -1,9 +1,6 @@ -{ flake, osConfig, ... }: +{ flake, ... }: let inherit (flake.config.services) instances; - inherit (flake.config.machines) devices; - localhost = instances.web.localhost.address0; - hostname = osConfig.networking.hostName; in { "${instances.jellyfin.label}" = { @@ -13,26 +10,26 @@ in icon = ./icons/jf.png; urls = [ { - template = "https://${instances.jellyfin.subdomain}.${instances.web.domains.url0}/web/#/search.html?query={searchTerms}"; - } - ]; - }; - "${instances.searx.label}" = { - definedAliases = [ - "@sx" - ]; - icon = ./icons/sx.png; - urls = [ - { - template = - ( - if hostname == devices.mars.name then - "http://${localhost}:${toString instances.searx.ports.port0}" - else - "https://${instances.searx.subdomain}.${instances.web.domains.url0}" - ) - + "/search?q={searchTerms}"; + template = "https://${instances.jellyfin.interfaces.interface0.domain}/web/#/search.html?query={searchTerms}"; } ]; }; + # "${instances.searx.label}" = { + # definedAliases = [ + # "@sx" + # ]; + # icon = ./icons/sx.png; + # urls = [ + # { + # template = + # ( + # if hostname == devices.mars.name then + # "http://${localhost}:${toString instances.searx.ports.port0}" + # else + # "https://${instances.searx.subdomain}.${instances.web.domains.url0}" + # ) + # + "/search?q={searchTerms}"; + # } + # ]; + # }; } diff --git a/modules/home/gui/apps/code/zed/config/userSettings/config/assistant/default.nix b/modules/home/gui/apps/code/zed/config/userSettings/config/assistant/default.nix index 71ff3aa..6716a29 100755 --- a/modules/home/gui/apps/code/zed/config/userSettings/config/assistant/default.nix +++ b/modules/home/gui/apps/code/zed/config/userSettings/config/assistant/default.nix @@ -8,7 +8,7 @@ let web ; service = ollama; - localhost = web.localhost.address0; + localhost = web.addresses.address0; in { agent = { diff --git a/modules/home/gui/apps/tools/espanso/config/url.nix b/modules/home/gui/apps/tools/espanso/config/url.nix index 9a57c36..a7a7556 100755 --- a/modules/home/gui/apps/tools/espanso/config/url.nix +++ b/modules/home/gui/apps/tools/espanso/config/url.nix @@ -1,10 +1,10 @@ { flake, matchHelper, ... }: let - inherit (flake.config.services.instances) forgejo mastodon web; + inherit (flake.config.services) instances; in [ (matchHelper ":dotfiles" "https://gitlab.com/upRootNutrition/dotfiles") - (matchHelper ":website" "https://${web.domains.url1}") - (matchHelper ":forgejo" "https://${forgejo.domains.url0}") - (matchHelper ":mastodon" "https://${mastodon.domains.url0}") + (matchHelper ":website" "https://${instances.jellyfin.interfaces.interface0.domain}") + (matchHelper ":forgejo" "https://${instances.forgejo.interfaces.interface0.domain}") + (matchHelper ":mastodon" "https://${instances.mastodon.interfaces.interface0.domain}") ] diff --git a/modules/nixos/homelab/caddy/config/forgejo/default.nix b/modules/nixos/homelab/caddy/config/forgejo/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/jellyfin/default.nix b/modules/nixos/homelab/caddy/config/jellyfin/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/mastodon/default.nix b/modules/nixos/homelab/caddy/config/mastodon/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/photoprism/default.nix b/modules/nixos/homelab/caddy/config/photoprism/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/qbittorrent/default.nix b/modules/nixos/homelab/caddy/config/qbittorrent/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/syncthing/default.nix b/modules/nixos/homelab/caddy/config/syncthing/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/caddy/config/website/default.nix b/modules/nixos/homelab/caddy/config/website/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/firefly-iii/fireflyEris/default.nix b/modules/nixos/homelab/guests/firefly-iii/fireflyEris/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/forgejo/forgejoCeres/default.nix b/modules/nixos/homelab/guests/forgejo/forgejoCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/jellyfin/jellyfinCeres/default.nix b/modules/nixos/homelab/guests/jellyfin/jellyfinCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/linkpage/linkpageCeres/default.nix b/modules/nixos/homelab/guests/linkpage/linkpageCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/mastodon/mastodonCeres/default.nix b/modules/nixos/homelab/guests/mastodon/mastodonCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/opencloud/opencloudCeres/default.nix b/modules/nixos/homelab/guests/opencloud/opencloudCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/opencloud/opencloudEris/default.nix b/modules/nixos/homelab/guests/opencloud/opencloudEris/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/qbittorrent/qbittorrentCeres/default.nix b/modules/nixos/homelab/guests/qbittorrent/qbittorrentCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/vaultwarden/vaultwardenCeres/default.nix b/modules/nixos/homelab/guests/vaultwarden/vaultwardenCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/website/websiteCeres/default.nix b/modules/nixos/homelab/guests/website/websiteCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/guests/zookeeper/zookeeperCeres/default.nix b/modules/nixos/homelab/guests/zookeeper/zookeeperCeres/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/helpers.nix b/modules/nixos/homelab/helpers.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/nasDirs/default.nix b/modules/nixos/homelab/nasDirs/default.nix old mode 100644 new mode 100755 diff --git a/modules/nixos/homelab/samba/default.nix b/modules/nixos/homelab/samba/default.nix index df2ed1b..da65bd2 100755 --- a/modules/nixos/homelab/samba/default.nix +++ b/modules/nixos/homelab/samba/default.nix @@ -8,19 +8,4 @@ let in { imports = importList; - - services = { - samba = { - enable = true; - }; - }; - - networking = { - firewall = { - allowedTCPPorts = [ - 445 - ]; - }; - }; - } diff --git a/modules/nixos/homelab/samba/sambaCeres/default.nix b/modules/nixos/homelab/samba/sambaCeres/default.nix index 9d851fa..f20115a 100755 --- a/modules/nixos/homelab/samba/sambaCeres/default.nix +++ b/modules/nixos/homelab/samba/sambaCeres/default.nix @@ -12,6 +12,7 @@ in # sudo smbpasswd -a username services = { samba = { + enable = true; # package = pkgs.samba4Full; openFirewall = true; settings = { diff --git a/modules/nixos/homelab/samba/sambaEris/default.nix b/modules/nixos/homelab/samba/sambaEris/default.nix index 3b26910..0d7cd19 100755 --- a/modules/nixos/homelab/samba/sambaEris/default.nix +++ b/modules/nixos/homelab/samba/sambaEris/default.nix @@ -10,6 +10,7 @@ in # sudo smbpasswd -a username services = { samba = { + enable = true; openFirewall = true; settings = { "storage" = { diff --git a/profiles/user0/files/misc/justfile.nix b/profiles/user0/files/misc/justfile.nix index 3a472fa..946332c 100755 --- a/profiles/user0/files/misc/justfile.nix +++ b/profiles/user0/files/misc/justfile.nix @@ -6,7 +6,6 @@ }: let inherit (flake.config.machines) devices; - inherit (flake.config.services) instances; hostname = config.networking.hostName; dotPath = "~/projects/dotfiles"; mkLocalRebuild = '' @@ -21,18 +20,6 @@ let ${name}: ssh ${ip} ''; - mkMicrVMSshCommands = name: ssh: '' - ${name}: - ssh -p ${builtins.toString ssh} root@localhost - ''; - balanceHosts = lib.concatStringsSep ", " [ - ''{name: "${devices.ceres.name}", ssh: "${devices.ceres.ip.address0}"}'' - ''{name: "${devices.eris.name}", ssh: "${devices.eris.ip.address0}"}'' - ''{name: "${devices.mars.name}", ssh: "${devices.mars.ip.address0}"}'' - ''{name: "${devices.deimos.name}", ssh: "${devices.deimos.ip.address0}"}'' - ''{name: "${devices.phobos.name}", ssh: "${devices.phobos.ip.address0}"}'' - ''{name: "${devices.lamdagibson.short}", ssh: "-o StrictHostKeyChecking=no denise@${devices.lamdagibson.ip.address0}"}'' - ]; systemRecords = command: lib.concatStrings [ @@ -43,31 +30,14 @@ let (command devices.phobos.name devices.phobos.ip.address0) (command "lamba" "-o StrictHostKeyChecking=no denise@192.168.50.131") ]; - instanceRecords = - command: - lib.concatStrings [ - (command instances.vaultwarden.name instances.vaultwarden.interface.ssh) - (command instances.jellyfin.name instances.jellyfin.interface.ssh) - (command instances.forgejo.name instances.forgejo.interface.ssh) - (command instances.firefly-iii.name instances.firefly-iii.interface.ssh) - (command instances.mastodon.name instances.mastodon.interface.ssh) - ]; localRebuild = mkLocalRebuild; remoteRebuild = systemRecords mkRemoteRebuild; sshCommand = systemRecords mkSshCommands; - microVMSshCommand = instanceRecords mkMicrVMSshCommands; in { text = '' ${localRebuild} ${remoteRebuild} ${sshCommand} - ${microVMSshCommand} - balance: - #!/usr/bin/env nu - let results = [${balanceHosts}] | each { |h| let val = (^ssh ...($h.ssh | split row " ") 'nu -c "open /var/lib/defenseio-data/MidnightMiner/balances.json | get snapshots | last | get balance"' | into float); print $"($h.name):"; print $val; $val } - print "---" - print "total:" - $results | math sum ''; } diff --git a/systems/ceres/config/networking.nix b/systems/ceres/config/networking.nix index c9c3cf8..65de8de 100755 --- a/systems/ceres/config/networking.nix +++ b/systems/ceres/config/networking.nix @@ -52,11 +52,13 @@ in 22 # SSH 25 # SMTP 139 # SMTP + 445 # Samba 587 # SMTP 2525 # SMTP 9999 # NC wireguardService.ports.port0 # WireGuard ]; + allowedUDPPorts = [ wireguardService.ports.port0 # WireGuard wireguardService.ports.port1 # WireGuard diff --git a/systems/deimos/config/wireguard.nix b/systems/deimos/config/wireguard.nix index d4b55aa..815296d 100755 --- a/systems/deimos/config/wireguard.nix +++ b/systems/deimos/config/wireguard.nix @@ -17,7 +17,7 @@ in sops = let sopsPath = secret: { - path = "${service.sops.path0}/${service.name}-${secret}"; + # path = "${service.sops.path0}/${service.name}-${secret}"; owner = "root"; mode = "600"; };