Skip to content

Verify the deployment

Five checks to make sure the deploy actually worked.

  1. 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.

  2. Verify HTTPS, not HTTP.

    Terminal window
    curl -I http://whoami.example.com/

    You should get a 308 redirect to https://. Caddy auto-redirects.

  3. Tail the app logs.

    Terminal window
    simpledeploy logs whoami --follow

    Hit the domain a few times in a browser, watch the requests appear.

    Or in the dashboard: app page → Logs tab.

  4. 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.

    Metrics view

  5. 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.

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.

That is the full happy path. Next, dig in: