When in Docker, localhost
means “this same container”. So this won’t work.
Instead, you should use the name of the container you want to proxy to, and its internal port (not the port you bind to the host – you don’t need to bind a port for other containers if they only need to be accessible through Caddy).
reverse_proxy foundry:30000
Those are logs from Docker itself, not from your Caddy container. Please share your logs from your Caddy container (you can run docker compose logs caddy
), see Keep Caddy Running — Caddy Documentation