docker-compose.public.yml overlay does this for
you, two ways.
Option A: Caddy with a domain (automatic TLS)
Point a domain at your server, then let the bundled Caddy fetch and renew a Let’s Encrypt certificate automatically.1
DNS
Create an A/AAAA record for your domain (e.g.
stream.example.com) pointing
at the server’s public IP. Open ports 80 and 443.2
Configure
In
deploy/.env:3
Start with the overlay
deploy/Caddyfile) and manages
TLS. Adjust the Caddyfile if you want separate subdomains for the api, addon, or
WebDAV.
Option B: Cloudflare Tunnel (no open ports)
If you can’t open ports or prefer not to expose your IP, use a Cloudflare Tunnel. Create a tunnel in the Cloudflare dashboard, then:docker-compose.public.yml overlay. Route
the tunnel’s hostnames to the internal services in the Cloudflare dashboard.