doctor is the read-only deployment and release preflight command. It does not
create directories, change permissions, generate secrets, build images, start
containers, or modify the database.
Usage
The default command fails on FAIL. Strict mode also treats WARN as
blocking. JSON mode is suitable for release evidence and omits the CLI banner.
Checks
Doctor validates:
- configuration structure and version consistency;
- generated environment values and permissions;
- DNS secret files and generated Traefik configuration;
- storage paths, ownership/accessibility, and disk capacity;
- SQLite integrity;
- certificate validity, key matching, and permissions;
- Python, Docker Engine 23.0+, Docker Buildx, BuildKit configuration, the
Docker Compose plugin, Git, and OpenSSL;
- Compose rendering and network boundaries;
- required images and non-blocking source-versus-image timestamp drift;
- generated or sensitive paths accidentally tracked by Git.
Doctor reports state; setup reconciles generated runtime state:
Source timestamp drift is informational because BuildKit may safely reuse
content-addressed layers whose creation timestamp predates the host file
mtime. When source content has changed, rebuild explicitly:
Last modified on August 28, 2026