From 682b732b5d73874e312b44f48cb521eaeea9d68a Mon Sep 17 00:00:00 2001 From: Roy Dumblauskas Date: Wed, 27 May 2026 00:46:48 -0500 Subject: [PATCH] 3rd --- homelab-services/nimh-static/flake.nix | 150 +++++++++++++------------ 1 file changed, 76 insertions(+), 74 deletions(-) diff --git a/homelab-services/nimh-static/flake.nix b/homelab-services/nimh-static/flake.nix index f7e9b38..06f655b 100644 --- a/homelab-services/nimh-static/flake.nix +++ b/homelab-services/nimh-static/flake.nix @@ -5,91 +5,93 @@ nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11"; }; - outputs = { - nixosModules.nimh-static = - { - config, - lib, - pkgs, - ... - }: - let - opts = config.services.nimh-static; - in - { - options.services.nimh-static = { - enable = lib.mkEnableOption "serve nimh via k3s pod."; + outputs = + { }: + { + nixosModules.nimh-static = + { + config, + lib, + pkgs, + ... + }: + let + opts = config.services.nimh-static; + in + { + options.services.nimh-static = { + enable = lib.mkEnableOption "serve nimh via k3s pod."; - default-nginx = { - enable = lib.mkEnableOption "Enable nginx reverse proxy."; - hostname = lib.mkOption { - type = lib.types.str; - default = "localhost"; - description = "Hostname for reverse proxy"; - }; + default-nginx = { + enable = lib.mkEnableOption "Enable nginx reverse proxy."; + hostname = lib.mkOption { + type = lib.types.str; + default = "localhost"; + description = "Hostname for reverse proxy"; + }; - }; - }; - - config = lib.mkIf opts.enable { - users.groups.nimh = { }; - users.users.nimh = { - isSystemUser = true; - createHome = false; - group = "nimh"; - }; - - systemd.services.nimh-static = { - description = "oneshot apply service to k3s"; - after = [ "k3s.servce" ]; - wantedBy = [ "multi-user.target" ]; - - serviceConfig = { - Type = "oneshot"; - ExecStart = '' - kubernetes_config=$(mktemp) - gomplate=${pkgs.gomplate}/bin/gomplate - gomplate --input-dir=./k3s --output-dir=$kubernetes_config - kubectl=${pkgs.kubectl}/bin/kubectl - kubectl apply -k $out - ''; - - User = "nimh"; - Group = "nimh"; }; }; - service.nginx = lib.mkIf opts.default-nginx.enable { - enable = true; + config = lib.mkIf opts.enable { + users.groups.nimh = { }; + users.users.nimh = { + isSystemUser = true; + createHome = false; + group = "nimh"; + }; - virtualHosts.${opts.default-nginx.hostname} = { - forceSSL = true; + systemd.services.nimh-static = { + description = "oneshot apply service to k3s"; + after = [ "k3s.servce" ]; + wantedBy = [ "multi-user.target" ]; - # Parse TLD from hostname to use wildcard cert (just takes last two elements separated by a period) - useACMEHost = - let - b = builtins; - s = lib.strings; - fl = s.splitString "." "${opts.default-nginx.hostname}"; - in - b.concatStringsSep "." [ - (b.elemAt fl (b.length fl - 2)) - (b.elemAt fl (b.length fl - 1)) - ]; + serviceConfig = { + Type = "oneshot"; + ExecStart = '' + kubernetes_config=$(mktemp) + gomplate=${pkgs.gomplate}/bin/gomplate + gomplate --input-dir=./k3s --output-dir=$kubernetes_config + kubectl=${pkgs.kubectl}/bin/kubectl + kubectl apply -k $out + ''; - locations."/" = { - # Default k3s port? - proxyPass = "http://localhost:30080"; + User = "nimh"; + Group = "nimh"; }; }; + + service.nginx = lib.mkIf opts.default-nginx.enable { + enable = true; + + virtualHosts.${opts.default-nginx.hostname} = { + forceSSL = true; + + # Parse TLD from hostname to use wildcard cert (just takes last two elements separated by a period) + useACMEHost = + let + b = builtins; + s = lib.strings; + fl = s.splitString "." "${opts.default-nginx.hostname}"; + in + b.concatStringsSep "." [ + (b.elemAt fl (b.length fl - 2)) + (b.elemAt fl (b.length fl - 1)) + ]; + + locations."/" = { + # Default k3s port? + proxyPass = "http://localhost:30080"; + }; + }; + }; + + networking.firewall.allowedTCPPorts = lib.mkif opts.default-nginx.enable [ + 80 + 443 + ]; }; - networking.firewall.allowedTCPPorts = lib.mkif opts.default-nginx.enable [ - 80 - 443 - ]; }; - - }; - }; + }; }