healthcheck for a basic status check of the running application. Core checks
confirm the service containers are running and healthy. If the
context’s plugin registers a healthcheck handler, its runtime checks run too and
are merged into the report. The command exits non-zero if any check still fails
after the timeout, so it is safe to use in scripts and CI.
Application plugins use shared helpers for common web stacks: route checks, MariaDB
ping checks, optional HTTP service checks, and the expected depends_on: condition: service_healthy relationship between the app container and MariaDB.
For route checks, plugins resolve the public URL from Traefik’s Compose command,
file-provider mount, dynamic router config, TLS settings, and locally published
ports. That keeps healthchecks aligned with ingress changes such as switching
between http, https, https-letsencrypt, https-custom, and https-mkcert,
publishing a new domain, or using a local override like 8080:80. Localhost-style URLs are tested
from the host at the resolved public URL, so a failed route check points at the
same URL an operator would open in a browser.
One-shot Services
A service does not have to remain running when its Compose contract is to finish once. Core treats anexited (0) container as healthy only when all of these facts are present in the effective docker compose config --format json output:
- another defined service depends on it with
condition: service_completed_successfully - that dependency is required (the default, or
required: true) - the container state is exactly
exitedwith exit code0
database-init: the root credential exists only in the one-shot initializer, while the long-running app gets its scoped credential. Optional dependencies, ordinary jobs, missing containers, nonzero exits, and dead containers fail healthcheck. If core cannot read the effective Compose model, it fails closed instead of assuming an exited job was successful.
Containers created by an ad hoc docker compose run are Compose one-offs rather than project services and are not included in the full project health report.
Reference
Check whether the active site is online. Core checks verify Docker Compose service containers are running and healthy. If the active context’s plugin registers a healthcheck handler, plugin-specific runtime checks are also run and merged into the report. All flags not consumed by sitectl itself are forwarded to the plugin’s healthcheck handler, allowing plugin-specific flags such as--codebase-rootfs.
By default, healthcheck waits for Docker services that are still starting, then
prints one status report and exits non-zero if any check fails. Use --persist to
keep retrying all failures until every check passes or --timeout is reached.
Examples:
sitectl healthcheck
sitectl healthcheck --persist --timeout 10m --interval 15s
sitectl healthcheck --format table
Common workflows
--codebase-rootfs work here too.
