Health checks
The two endpoints your uptime monitor or load balancer can use to check the instance.
Metis Suite has two health endpoints for uptime monitors and load balancers. Both answer with a status code only, with no body, and need no sign-in.
| Endpoint | Answers 200 when |
Otherwise |
|---|---|---|
/api/livez |
The app process is serving requests. It checks nothing else. | No answer |
/api/readyz |
The settings loaded and both databases answer. | 503 |
For example:
curl -fsS -o /dev/null -w "%{http_code}\n" https://mail.example.com/api/readyz
Use /api/livez to decide whether to restart the app, and /api/readyz to decide whether to send it traffic. The updater also waits for /api/readyz after an upgrade.
When /api/readyz answers 503, the reason is written only to the app’s log, never to the response:
sudo docker compose --project-directory /opt/metis-suite logs app
Checks inside the dashboard
The owner dashboard has deeper checks that contact each service: the Health card on every driver and provider page under System. They run only when you click Run check. See Owner dashboard.