# PiCloud dev Caddyfile. # # Same routing shape as prod, with two differences: # - bound to plain HTTP (no domain, no automatic TLS) # - upstreams are the docker-compose service names # # Control plane (`/api/admin/*`) and data plane (`/api/execute/*`, `/exec/*`) # both terminate on the `picloud` all-in-one for now; in cluster mode the # data-plane handles will list multiple orchestrator upstreams here while # the admin handle still points at a single manager. { auto_https off admin off log { output stdout format console } } :80 { # Health probes go straight to the orchestrator. handle /healthz { reverse_proxy picloud:8080 } # Control plane → manager (single-process: picloud). handle /api/admin/* { reverse_proxy picloud:8080 } # Data plane → orchestrator (single-process: picloud). handle /api/execute/* { reverse_proxy picloud:8080 } handle /exec/* { reverse_proxy picloud:8080 } # Everything else → dashboard SPA (Caddy serves a self-contained # dashboard container that already runs file_server with index.html # fallback for client-side routing). handle { reverse_proxy dashboard:80 } log { output stdout format console } }