Domains & URLs
Hostrig owns the local reverse proxy (Caddy). Edges only forward HTTP with the Host header intact. In v1 every web service gets a hostname under your platform base domain — not an arbitrary custom domain.
Happy path
Section titled “Happy path”- Open Domains in the dashboard.
- Set base domain (e.g.
apps.example.comorapps.localhost), protocol (httpsorhttp), enable auto-assign subdomains. - For public HTTPS: create a Cloudflare Tunnel. Public hostname
*.apps.example.com→ servicehttp://caddy:80. - Point a wildcard DNS CNAME at the tunnel once (proxied).
- Start the edge profile:
export CLOUDFLARE_TUNNEL_TOKEN=...docker compose --profile edge up -dPrimary web URL: https://{project}.{baseDomain}
Extra web services: https://{project}-{service}.{baseDomain}
Workers / Postgres / Redis: no public hostname.
Origins
Section titled “Origins”| From | URL |
|---|---|
| Compose network | http://caddy:80 |
| Host | http://127.0.0.1:8088 |
Local check without the tunnel:
curl -H "Host: acme.apps.example.com" http://127.0.0.1:8088/Caddy on the host is HTTP-only (auto_https off). TLS terminates at Cloudflare on the tunnel. There is no Let’s Encrypt on Caddy in v1.
What is not v1
Section titled “What is not v1”- Custom domains (
www.customer.com) — schema reserved; UI in v2 - PR preview URLs — v2
- Publishing Postgres/Redis through the proxy — never
DEPLOW_BASE_DOMAIN / DEPLOW_PUBLIC_URL_PROTOCOL only seed the Domains settings on first boot. After that, change domains in the UI.
Canonical detail: repo docs/access.md.