- update-dns.sh: detects public IPv4/IPv6, upserts CF records
- Runs on container start + every 5 minutes
- Only updates if IP actually changed (skips if unchanged)
- python:3-alpine container with curl
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Caddy now uses network_mode: host (sees real IPv4/IPv6)
- All backend services on fixed IPs (172.28.0.10/20/30)
- Caddyfile uses IPs instead of Docker DNS names
- /myip now returns actual client IP, not Docker gateway
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
wzp-web --relay only accepts IP:port, not Docker hostnames.
Fixed IP 172.28.0.10 on backend network with explicit subnet.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>