diff --git a/hosts/morax/default.nix b/hosts/morax/default.nix index 1e653d0..aa1459c 100755 --- a/hosts/morax/default.nix +++ b/hosts/morax/default.nix @@ -11,17 +11,6 @@ ../../host-secrets.nix ]; - # Enable modules - modules.caddy.enable = true; - modules.garage.enable = true; - - modules.caddy = { - email = "ana@nekomimi.pet"; - reverseProxies = { - "s3.nkp.pet" = ["valefar:3900" "morax:3900"]; - }; - }; - system.stateVersion = "25.05"; nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux"; diff --git a/hosts/morax/hardware.nix b/hosts/morax/hardware.nix index 79a2a14..932aab3 100755 --- a/hosts/morax/hardware.nix +++ b/hosts/morax/hardware.nix @@ -18,11 +18,6 @@ fsType = "ext4"; }; - fileSystems."/garage" = { - device = "/dev/sda1"; - fsType = "ext4"; - }; - swapDevices = [ ]; # Enables DHCP on each ethernet and wireless interface. In case of scripted networking diff --git a/modules/caddy/default.nix b/modules/caddy/default.nix index 674325b..1a073f9 100755 --- a/modules/caddy/default.nix +++ b/modules/caddy/default.nix @@ -8,58 +8,11 @@ with lib; let cfg = config.modules.caddy; caddyMetricsPort = 2019; - - # Generate Caddyfile content from the proxy configuration - generateCaddyfile = proxies: - let - proxyEntries = mapAttrsToList (domain: upstreams: - let - upstreamList = if isList upstreams then upstreams else [upstreams]; - upstreamStr = concatStringsSep " " upstreamList; - in '' - ${domain} { - reverse_proxy ${upstreamStr} - - # Optional: Add some common headers for better proxying - header_up Host {upstream_hostport} - header_up X-Real-IP {remote_host} - header_up X-Forwarded-For {remote_host} - header_up X-Forwarded-Proto {scheme} - } - '') proxies; - in - concatStringsSep "\n\n" proxyEntries; - in { options = { modules = { - caddy = { - enable = mkEnableOption "Deploy Caddy"; - - reverseProxies = mkOption { - type = types.attrsOf (types.either types.str (types.listOf types.str)); - default = {}; - description = "Attribute set of domain to upstream mappings for reverse proxying. Upstreams can be a single string or a list of strings for load balancing."; - example = { - "notes.nekomimi.pet" = "valefar:3009"; - "git.nekomimi.pet" = ["morax:3000" "valefar:3000"]; # Load balance between multiple upstreams - "api.nekomimi.pet" = ["server1:8080" "server2:8080" "server3:8080"]; - }; - }; - - extraConfig = mkOption { - type = types.lines; - default = ""; - description = "Extra Caddyfile configuration to append"; - }; - - email = mkOption { - type = types.nullOr types.str; - default = null; - description = "Email address for ACME certificate registration"; - }; - }; + caddy = { enable = mkEnableOption "Deploy Caddy"; }; }; }; @@ -76,22 +29,10 @@ in services.caddy = { enable = true; - /*package = pkgs.caddy.withPlugins { - plugins = [ "github.com/caddy-dns/cloudflare@v0.2.1"]; - hash = "sha256-1niaf801sijvjrqvw998y8x7b43a0g162h3ry530qwl8lrgkapii"; + /* package = pkgs.caddy.withPlugins { + plugins = [ "github.com/caddy-dns/cloudflare@v0.0.0-20240703190432-89f16b99c18e"]; + hash = "sha256-JVkUkDKdat4aALJHQCq1zorJivVCdyBT+7UhqTvaFLw="; };*/ - - extraConfig = '' - ${optionalString (cfg.email != null) '' - { - email ${cfg.email} - } - ''} - - ${generateCaddyfile cfg.reverseProxies} - - ${cfg.extraConfig} - ''; }; systemd.services.caddy = {