From 555c98b6270c80652693b6f23a51307bcaa13dda Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:16:56 +0100 Subject: [PATCH 01/16] add headscale --- nixosConfigurations/hetzner-vpn2/default.nix | 1 + .../hetzner-vpn2/headscale.nix | 23 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 nixosConfigurations/hetzner-vpn2/headscale.nix diff --git a/nixosConfigurations/hetzner-vpn2/default.nix b/nixosConfigurations/hetzner-vpn2/default.nix index 591dc20..5ad0e0f 100644 --- a/nixosConfigurations/hetzner-vpn2/default.nix +++ b/nixosConfigurations/hetzner-vpn2/default.nix @@ -2,6 +2,7 @@ imports = [ ./hardware.nix ./nginx.nix + ./headscale.nix ]; config = { diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix new file mode 100644 index 0000000..b7349bb --- /dev/null +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -0,0 +1,23 @@ +let + headscale-port = 8668; +in +{ + services = { + headscale = { + enable = true; + address = "localhost"; + port = headscale-port; + settings = { + dns.base_domain = "high-gravity.space"; + server_url = "https://headscale.zerforschen.plus"; + }; + }; + nginx.virtualHosts."uplink.darkest.space" = { + addSSL = true; + enableACME = true; + locations = { + "/".proxyPass = "http://localhost:" + headscale-port; + }; + }; + }; +} From 87bb177072e175f23455afc83adc0e7f02833436 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:17:22 +0100 Subject: [PATCH 02/16] vpn2: split nginx config --- nixosConfigurations/hetzner-vpn2/blog.nix | 43 +++++++++++++++ nixosConfigurations/hetzner-vpn2/default.nix | 1 + nixosConfigurations/hetzner-vpn2/nginx.nix | 55 +++----------------- 3 files changed, 50 insertions(+), 49 deletions(-) create mode 100644 nixosConfigurations/hetzner-vpn2/blog.nix diff --git a/nixosConfigurations/hetzner-vpn2/blog.nix b/nixosConfigurations/hetzner-vpn2/blog.nix new file mode 100644 index 0000000..4b29cb3 --- /dev/null +++ b/nixosConfigurations/hetzner-vpn2/blog.nix @@ -0,0 +1,43 @@ +{ pkgs, ... }: +let + blog-domain-socket = "/run/nginx/blog.sock"; + anubis-domain-socket = "/run/anubis/anubis-main/anubis.sock"; + anubis-metrics-socket = "/run/anubis/anubis-main/anubis-metrics.sock"; +in +{ + systemd.services = { + nginx.serviceConfig.SupplementaryGroups = [ "anubis" ]; + anubis-main.serviceConfig.SupplementaryGroups = [ "nginx" ]; + }; + + services = { + nginx.virtualHosts = { + "zerforschen.plus" = { + addSSL = true; + enableACME = true; + locations = { + "/_metrics".proxyPass = "http://unix:" + anubis-metrics-socket + ":/metrics"; + "/".proxyPass = "http://unix:" + anubis-domain-socket; + }; + }; + + "blog-in-anubis" = { + root = pkgs.zerforschen-plus-content; + listen = [ + { + addr = "unix:" + blog-domain-socket; + } + ]; + }; + }; + + anubis.instances.main = { + enable = true; + settings = { + BIND = anubis-domain-socket; + TARGET = "unix://" + blog-domain-socket; + METRICS_BIND = anubis-metrics-socket; + }; + }; + }; +} diff --git a/nixosConfigurations/hetzner-vpn2/default.nix b/nixosConfigurations/hetzner-vpn2/default.nix index 5ad0e0f..cc53cb3 100644 --- a/nixosConfigurations/hetzner-vpn2/default.nix +++ b/nixosConfigurations/hetzner-vpn2/default.nix @@ -3,6 +3,7 @@ ./hardware.nix ./nginx.nix ./headscale.nix + ./blog.nix ]; config = { diff --git a/nixosConfigurations/hetzner-vpn2/nginx.nix b/nixosConfigurations/hetzner-vpn2/nginx.nix index aa399aa..7178b0d 100644 --- a/nixosConfigurations/hetzner-vpn2/nginx.nix +++ b/nixosConfigurations/hetzner-vpn2/nginx.nix @@ -1,62 +1,19 @@ -{ pkgs, ... }: -let - blog-domain-socket = "/run/nginx/blog.sock"; - anubis-domain-socket = "/run/anubis/anubis-main/anubis.sock"; - anubis-metrics-socket = "/run/anubis/anubis-main/anubis-metrics.sock"; -in { security.acme = { acceptTerms = true; defaults.email = "acme@zerforschen.plus"; }; - systemd.services = { - nginx.serviceConfig.SupplementaryGroups = [ "anubis" ]; - anubis-main.serviceConfig.SupplementaryGroups = [ "nginx" ]; - }; - - services = { - nginx = { - enable = true; - recommendedProxySettings = true; - recommendedTlsSettings = true; - recommendedGzipSettings = true; - recommendedOptimisation = true; - - virtualHosts = { - "zerforschen.plus" = { - addSSL = true; - enableACME = true; - locations = { - "/_metrics".proxyPass = "http://unix:" + anubis-metrics-socket + ":/metrics"; - "/".proxyPass = "http://unix:" + anubis-domain-socket; - }; - }; - - "blog-in-anubis" = { - root = pkgs.zerforschen-plus-content; - listen = [ - { - addr = "unix:" + blog-domain-socket; - } - ]; - }; - }; - }; - - anubis.instances.main = { - enable = true; - settings = { - BIND = anubis-domain-socket; - TARGET = "unix://" + blog-domain-socket; - METRICS_BIND = anubis-metrics-socket; - }; - }; + services.nginx = { + enable = true; + recommendedProxySettings = true; + recommendedTlsSettings = true; + recommendedGzipSettings = true; + recommendedOptimisation = true; }; networking.firewall.allowedTCPPorts = [ 80 443 - 5201 ]; } From 7bb2c482a44bbcb93e8c20f87b664cb1454d3bb2 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:19:30 +0100 Subject: [PATCH 03/16] fix int to str --- nixosConfigurations/hetzner-vpn2/headscale.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index b7349bb..fd01241 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -16,7 +16,7 @@ in addSSL = true; enableACME = true; locations = { - "/".proxyPass = "http://localhost:" + headscale-port; + "/".proxyPass = "http://localhost:${headscale-port}"; }; }; }; From 17426908ea286fc5c66a8c25657d1cf89aabf999 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:24:40 +0100 Subject: [PATCH 04/16] fix toString --- nixosConfigurations/hetzner-vpn2/headscale.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index fd01241..05e3b5a 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -16,7 +16,7 @@ in addSSL = true; enableACME = true; locations = { - "/".proxyPass = "http://localhost:${headscale-port}"; + "/".proxyPass = "http://localhost:${builtins.toString headscale-port}"; }; }; }; From 21c988c386398667f384e294b9c930a6401b0951 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:48:08 +0100 Subject: [PATCH 05/16] disable override local --- nixosConfigurations/hetzner-vpn2/headscale.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 05e3b5a..538c557 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -8,8 +8,11 @@ in address = "localhost"; port = headscale-port; settings = { - dns.base_domain = "high-gravity.space"; server_url = "https://headscale.zerforschen.plus"; + dns = { + override_local_dns = false; + base_domain = "high-gravity.space"; + }; }; }; nginx.virtualHosts."uplink.darkest.space" = { From cadddd9da679b6dc5bd622610388f073ca36f12f Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:51:42 +0100 Subject: [PATCH 06/16] fix url --- nixosConfigurations/hetzner-vpn2/headscale.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 538c557..c27e192 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -8,7 +8,7 @@ in address = "localhost"; port = headscale-port; settings = { - server_url = "https://headscale.zerforschen.plus"; + server_url = "https://uplink.darkest.space/"; dns = { override_local_dns = false; base_domain = "high-gravity.space"; From 594e6118eb68e29a846a323c2d5962376a438f8d Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:54:55 +0100 Subject: [PATCH 07/16] force ssl --- nixosConfigurations/hetzner-vpn2/blog.nix | 1 + nixosConfigurations/hetzner-vpn2/headscale.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/nixosConfigurations/hetzner-vpn2/blog.nix b/nixosConfigurations/hetzner-vpn2/blog.nix index 4b29cb3..0eeb3d9 100644 --- a/nixosConfigurations/hetzner-vpn2/blog.nix +++ b/nixosConfigurations/hetzner-vpn2/blog.nix @@ -15,6 +15,7 @@ in "zerforschen.plus" = { addSSL = true; enableACME = true; + forceSSL = true; locations = { "/_metrics".proxyPass = "http://unix:" + anubis-metrics-socket + ":/metrics"; "/".proxyPass = "http://unix:" + anubis-domain-socket; diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index c27e192..2af7cf5 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -18,6 +18,7 @@ in nginx.virtualHosts."uplink.darkest.space" = { addSSL = true; enableACME = true; + forceSSL = true; locations = { "/".proxyPass = "http://localhost:${builtins.toString headscale-port}"; }; From fc835372385b8e57e1006f6a20d199d994398a42 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:57:27 +0100 Subject: [PATCH 08/16] proxy websockets --- nixosConfigurations/hetzner-vpn2/headscale.nix | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 2af7cf5..c9ee855 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -19,8 +19,9 @@ in addSSL = true; enableACME = true; forceSSL = true; - locations = { - "/".proxyPass = "http://localhost:${builtins.toString headscale-port}"; + locations."/" = { + proxyPass = "http://localhost:${builtins.toString headscale-port}"; + proxyWebsockets = true; }; }; }; From 2ed92f63e1ed3d7f6ac993e5c954ac1157eb5c00 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 20:59:06 +0100 Subject: [PATCH 09/16] fix force ssl --- nixosConfigurations/hetzner-vpn2/blog.nix | 1 - nixosConfigurations/hetzner-vpn2/headscale.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/nixosConfigurations/hetzner-vpn2/blog.nix b/nixosConfigurations/hetzner-vpn2/blog.nix index 0eeb3d9..367ef2b 100644 --- a/nixosConfigurations/hetzner-vpn2/blog.nix +++ b/nixosConfigurations/hetzner-vpn2/blog.nix @@ -13,7 +13,6 @@ in services = { nginx.virtualHosts = { "zerforschen.plus" = { - addSSL = true; enableACME = true; forceSSL = true; locations = { diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index c9ee855..43eda08 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -16,7 +16,6 @@ in }; }; nginx.virtualHosts."uplink.darkest.space" = { - addSSL = true; enableACME = true; forceSSL = true; locations."/" = { From 64921ebffba7570a5da3ac7e35feeee0052cc1df Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 21:59:05 +0100 Subject: [PATCH 10/16] headscale: enable DERP --- nixosConfigurations/hetzner-vpn2/headscale.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 43eda08..de87c96 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -2,6 +2,8 @@ let headscale-port = 8668; in { + # sudo tailscale up --reset --force-reauth --login-server https://uplink.darkest.space --operator=$USER + services = { headscale = { enable = true; @@ -13,8 +15,17 @@ in override_local_dns = false; base_domain = "high-gravity.space"; }; + derp = { + server = { + enabled = true; + ipv4 = "78.46.242.90"; + ipv6 = "2a01:4f8:c013:65dd::1"; + }; + urls = [ ]; + }; }; }; + nginx.virtualHosts."uplink.darkest.space" = { enableACME = true; forceSSL = true; @@ -24,4 +35,7 @@ in }; }; }; + + # for DERP + networking.firewall.allowedUDPPorts = [ 3478 ]; } From f44b7389c33d05512b4389c74e911280228956a6 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 22:01:44 +0100 Subject: [PATCH 11/16] fix DERP --- nixosConfigurations/hetzner-vpn2/headscale.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index de87c96..7acad6c 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -18,6 +18,7 @@ in derp = { server = { enabled = true; + stun_listen_addr = "0.0.0.0"; ipv4 = "78.46.242.90"; ipv6 = "2a01:4f8:c013:65dd::1"; }; From 8bf2175e9277558cbdea186b93a7d9a8c068344f Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 22:08:28 +0100 Subject: [PATCH 12/16] fix derp --- nixosConfigurations/hetzner-vpn2/headscale.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 7acad6c..75057c1 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -18,7 +18,8 @@ in derp = { server = { enabled = true; - stun_listen_addr = "0.0.0.0"; + verify_clients = true; + stun_listen_addr = "0.0.0.0:44444"; ipv4 = "78.46.242.90"; ipv6 = "2a01:4f8:c013:65dd::1"; }; From f3bce53ed18c4ca7f8605c5e8a537aee6024c1a1 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sun, 4 Jan 2026 22:15:33 +0100 Subject: [PATCH 13/16] fix derp --- nixosConfigurations/hetzner-vpn2/headscale.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 75057c1..6eac407 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -19,7 +19,7 @@ in server = { enabled = true; verify_clients = true; - stun_listen_addr = "0.0.0.0:44444"; + stun_listen_addr = "0.0.0.0:3478"; ipv4 = "78.46.242.90"; ipv6 = "2a01:4f8:c013:65dd::1"; }; From 3099056e2a3a1fab2b0174732bde70a2d541a632 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Mon, 5 Jan 2026 17:47:11 +0100 Subject: [PATCH 14/16] fix acme host --- nixosConfigurations/hetzner-vpn2/blog.nix | 1 + nixosConfigurations/hetzner-vpn2/headscale.nix | 1 + 2 files changed, 2 insertions(+) diff --git a/nixosConfigurations/hetzner-vpn2/blog.nix b/nixosConfigurations/hetzner-vpn2/blog.nix index 367ef2b..da05683 100644 --- a/nixosConfigurations/hetzner-vpn2/blog.nix +++ b/nixosConfigurations/hetzner-vpn2/blog.nix @@ -14,6 +14,7 @@ in nginx.virtualHosts = { "zerforschen.plus" = { enableACME = true; + useACMEHost = "zerforschen.plus"; forceSSL = true; locations = { "/_metrics".proxyPass = "http://unix:" + anubis-metrics-socket + ":/metrics"; diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 6eac407..59a4621 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -31,6 +31,7 @@ in nginx.virtualHosts."uplink.darkest.space" = { enableACME = true; forceSSL = true; + useACMEHost = "uplink.darkest.space"; locations."/" = { proxyPass = "http://localhost:${builtins.toString headscale-port}"; proxyWebsockets = true; From 9bc49f89c7e2af706bc4fb164329dd79f0bb52cf Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Mon, 5 Jan 2026 22:58:23 +0100 Subject: [PATCH 15/16] undo --- nixosConfigurations/hetzner-vpn2/blog.nix | 1 - nixosConfigurations/hetzner-vpn2/headscale.nix | 1 - 2 files changed, 2 deletions(-) diff --git a/nixosConfigurations/hetzner-vpn2/blog.nix b/nixosConfigurations/hetzner-vpn2/blog.nix index da05683..367ef2b 100644 --- a/nixosConfigurations/hetzner-vpn2/blog.nix +++ b/nixosConfigurations/hetzner-vpn2/blog.nix @@ -14,7 +14,6 @@ in nginx.virtualHosts = { "zerforschen.plus" = { enableACME = true; - useACMEHost = "zerforschen.plus"; forceSSL = true; locations = { "/_metrics".proxyPass = "http://unix:" + anubis-metrics-socket + ":/metrics"; diff --git a/nixosConfigurations/hetzner-vpn2/headscale.nix b/nixosConfigurations/hetzner-vpn2/headscale.nix index 59a4621..6eac407 100644 --- a/nixosConfigurations/hetzner-vpn2/headscale.nix +++ b/nixosConfigurations/hetzner-vpn2/headscale.nix @@ -31,7 +31,6 @@ in nginx.virtualHosts."uplink.darkest.space" = { enableACME = true; forceSSL = true; - useACMEHost = "uplink.darkest.space"; locations."/" = { proxyPass = "http://localhost:${builtins.toString headscale-port}"; proxyWebsockets = true; From ff881fc8e6c898ad7c1549d18f4fcd81f5dc5f28 Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Thu, 8 Jan 2026 21:51:06 +0100 Subject: [PATCH 16/16] remove powerlevel10k module --- homeModules/zsh-powerlevel10k.nix | 23 ------------ nixosModules/global-settings-desktop.nix | 47 ++++++++++++------------ 2 files changed, 23 insertions(+), 47 deletions(-) delete mode 100644 homeModules/zsh-powerlevel10k.nix diff --git a/homeModules/zsh-powerlevel10k.nix b/homeModules/zsh-powerlevel10k.nix deleted file mode 100644 index 295fd0c..0000000 --- a/homeModules/zsh-powerlevel10k.nix +++ /dev/null @@ -1,23 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -{ - options.programs.zsh-powerlevel10k = { - enable = lib.mkEnableOption "powerlevel10k zsh theme"; - package = lib.mkPackageOption pkgs "zsh-powerlevel10k" { nullable = true; }; - }; - - config = - let - cfg = config.programs.zsh-powerlevel10k; - p10k = if (cfg.package != null) then cfg.package else pkgs.zsh-powerlevel10k; - in - lib.mkIf cfg.enable { - programs.zsh.initContent = '' - source ${p10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme - ''; - }; -} diff --git a/nixosModules/global-settings-desktop.nix b/nixosModules/global-settings-desktop.nix index a92a5d2..eda369d 100644 --- a/nixosModules/global-settings-desktop.nix +++ b/nixosModules/global-settings-desktop.nix @@ -11,30 +11,6 @@ }: { imports = [ - { - home-manager = { - extraSpecialArgs = specialArgs; - useGlobalPkgs = true; - useUserPackages = true; - }; - - time.timeZone = "Europe/Berlin"; - - home-manager.sharedModules = [ - { home.stateVersion = "22.11"; } - # keep-sorted start - self.homeModules.git - self.homeModules.gnome-extensions - self.homeModules.nano - self.homeModules.templates - self.homeModules.zsh-basics - self.homeModules.zsh-powerlevel10k - # keep-sorted end - ]; - - home-manager.users = home-manager-users; - } - # keep-sorted start home-manager.nixosModules.home-manager self.nixosModules.en-de @@ -54,4 +30,27 @@ stylix.nixosModules.stylix # keep-sorted end ]; + + config = { + home-manager = { + extraSpecialArgs = specialArgs; + useGlobalPkgs = true; + useUserPackages = true; + }; + + time.timeZone = "Europe/Berlin"; + + home-manager.sharedModules = [ + { home.stateVersion = "22.11"; } + # keep-sorted start + self.homeModules.git + self.homeModules.gnome-extensions + self.homeModules.nano + self.homeModules.templates + self.homeModules.zsh-basics + # keep-sorted end + ]; + + home-manager.users = home-manager-users; + }; }