Verify the deployment
Five checks to make sure the deploy actually worked.
-
Hit the domain.
Terminal window curl -I https://whoami.example.com/Expect
HTTP/2 200. The TLS cert is from Let’s Encrypt; your browser will trust it without warnings. -
Verify HTTPS, not HTTP.
Terminal window curl -I http://whoami.example.com/You should get a
308redirect tohttps://. Caddy auto-redirects. -
Tail the app logs.
Terminal window simpledeploy logs whoami --followHit the domain a few times in a browser, watch the requests appear.
Or in the dashboard: app page → Logs tab.
-
Check metrics.
In the dashboard, open the app and click Metrics. CPU and memory should be plotted within ~30 seconds. Request rate appears once traffic hits the proxy.

-
Set up an alert.
Go to Alerts → Rules → New rule. Pick the app, set CPU > 80% for 5 min, attach a webhook (Slack works out of the box). See Alert rules for details.
Common problems
Section titled “Common problems”Cert error / “not secure” in the browser. Wait 30-60 seconds. Caddy is provisioning. If it persists, check that DNS resolves to the box and port 80 is open from the public internet.
simpledeploy logs shows nothing.
The container may have exited. Run simpledeploy list and check status. Then docker logs <container> on the server for the raw output.
502 Bad Gateway.
The container is up but not listening on the port you set in simpledeploy.port. Double-check the label matches the port the app actually binds.
You are done
Section titled “You are done”That is the full happy path. Next, dig in:
- Add backups for stateful services.
- Invite teammates and scope per-app access.
- Wire up a private registry for non-public images.
- Front SimpleDeploy with a load balancer if you outgrow one VPS.