From ea924fd405161055b9cc0be279e9730853b91925 Mon Sep 17 00:00:00 2001 From: Chris Zerafa Date: Mon, 3 Aug 2026 12:05:11 -0400 Subject: [PATCH] Add edge01 Caddy configuration --- edge01/docker/caddy/Caddyfile | 66 ++++++++++++++++++++++++++++++++ edge01/docker/caddy/compose.yaml | 38 ++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 edge01/docker/caddy/Caddyfile create mode 100644 edge01/docker/caddy/compose.yaml diff --git a/edge01/docker/caddy/Caddyfile b/edge01/docker/caddy/Caddyfile new file mode 100644 index 0000000..982df48 --- /dev/null +++ b/edge01/docker/caddy/Caddyfile @@ -0,0 +1,66 @@ +{ + email chris@zerafa.com +} + +edge01.zerafa.com { + root * /srv + encode zstd gzip + file_server + + header { + Strict-Transport-Security "max-age=31536000; includeSubDomains" + X-Content-Type-Options "nosniff" + X-Frame-Options "DENY" + Referrer-Policy "strict-origin-when-cross-origin" + -Server + } +} + +git.zerafa.com { + reverse_proxy gitea:3000 +} + +portainer.zerafa.com { + reverse_proxy portainer:9000 +} + +voyager.zerafa.com { + root * /srv/voyager + encode zstd gzip + file_server + + header { + Strict-Transport-Security "max-age=31536000; includeSubDomains" + X-Content-Type-Options "nosniff" + X-Frame-Options "DENY" + Referrer-Policy "strict-origin-when-cross-origin" + -Server + } +} + +mx.zerafa.com { + respond "Zerafa Mail Gateway" 200 + + header { + Strict-Transport-Security "max-age=31536000" + X-Content-Type-Options "nosniff" + X-Frame-Options "DENY" + -Server + } +} + +rspamd.zerafa.com { + reverse_proxy rspamd:11334 + + header { + Strict-Transport-Security "max-age=31536000" + X-Content-Type-Options "nosniff" + X-Frame-Options "SAMEORIGIN" + Referrer-Policy "strict-origin-when-cross-origin" + -Server + } +} + +adsb.zerafa.com { + reverse_proxy 192.168.161.31:8080 +} diff --git a/edge01/docker/caddy/compose.yaml b/edge01/docker/caddy/compose.yaml new file mode 100644 index 0000000..83861b2 --- /dev/null +++ b/edge01/docker/caddy/compose.yaml @@ -0,0 +1,38 @@ +services: + caddy: + image: caddy:2-alpine + container_name: caddy + restart: unless-stopped + + ports: + - "80:80" + - "443:443" + - "443:443/udp" + + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - ./site:/srv:ro + - ./data:/data + - ./config:/config + + networks: + - proxy + + security_opt: + - no-new-privileges:true + + cap_drop: + - ALL + + cap_add: + - NET_BIND_SERVICE + + logging: + driver: json-file + options: + max-size: "10m" + max-file: "3" + +networks: + proxy: + external: true