From dc25aed7041c51f1780c0a9f311e6eb90fd42217 Mon Sep 17 00:00:00 2001 From: Isabella Bastaja Date: Sun, 30 Aug 2026 17:16:32 +0200 Subject: WIP: init enode host --- hosts/enode/caddy.nix | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 hosts/enode/caddy.nix (limited to 'hosts/enode/caddy.nix') diff --git a/hosts/enode/caddy.nix b/hosts/enode/caddy.nix new file mode 100644 index 0000000..bc3b745 --- /dev/null +++ b/hosts/enode/caddy.nix @@ -0,0 +1,45 @@ +{ config, ... }: +let + headscale = { + domain = config.services.headscale.address; + port = config.services.headscale.port; + }; + + simpleProxies = { + "sorre.xyz" = "tower.sorre.internal:7291"; + "git.sorre.xyz" = "tower.sorre.internal:8721"; + "idm.sorre.xyz" = "tower.sorre.internal:8443"; + }; + + simpleProxyVirtualHosts = builtins.mapAttrs (domain: upstream: { + extraConfig = '' + reverse_proxy ${upstream} { + headers_up True-Client-IP {remote_host} + header_up X-Real-IP {remote_host} + } + ''; + }) simpleProxies; +in +{ + services.caddy = { + enable = true; + virtualHosts = { + "http://headscale.sorre.xyz".extraConfig = '' + handle /generate_204 { + respond 204 + } + + handle * { + redir https://{host}{uri} + } + ''; + "headscale.sorre.xyz".extraConfig = '' + reverse_proxy ${headscale.domain}:${toString headscale.port} { + headers_up True-Client-IP {remote_host} + header_up X-Real-IP {remote_host} + } + ''; + } + // simpleProxyVirtualHosts; + }; +} -- cgit v1.3.1