forked from wrenn/wrenn
Co-authored-by: Tasnim Kabir Sadik <tksadik92@gmail.com> Reviewed-on: wrenn/sandbox#8
42 lines
1.3 KiB
Caddyfile
42 lines
1.3 KiB
Caddyfile
# Sandbox port forwarding: {port}-{sandbox_id}.localhost
|
|
# Matches subdomains like 49999-sb-abcd1234.localhost and proxies them
|
|
# to the control plane, which inspects the Host header and routes to
|
|
# the correct host agent.
|
|
#
|
|
# NOTE: Wildcard *.localhost DNS resolution requires local setup.
|
|
# Option 1: Add entries to /etc/hosts for each sandbox
|
|
# Option 2: Use dnsmasq: address=/.localhost/127.0.0.1
|
|
# Option 3: Use systemd-resolved (Ubuntu default — *.localhost resolves to 127.0.0.1)
|
|
http://*.localhost {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
|
|
# Main entry point: API + frontend
|
|
http://localhost {
|
|
# API routes — strip /api prefix and proxy to the control plane.
|
|
# The frontend calls /api/v1/... which becomes /v1/... at the CP.
|
|
handle_path /api/* {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
|
|
# Backend routes served directly (SDK clients, OAuth initiation)
|
|
handle /v1/* {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
handle /openapi.yaml {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
handle /docs {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
handle /auth/oauth/* {
|
|
reverse_proxy host.docker.internal:8080
|
|
}
|
|
|
|
# Everything else — proxy to the frontend dev server
|
|
# This includes: /login, /dashboard/*, /admin/*, /auth/github/callback
|
|
handle {
|
|
reverse_proxy host.docker.internal:5173
|
|
}
|
|
}
|