Doctor
manage.py doctor checks the whole stack in one command and tells you exactly what's wrong.
Run it
sudo -u siroping /opt/siroping/venv/bin/python /opt/siroping/manage.py doctor
Exit codes: 0 = HEALTHY, 1 = WARNING, 2 = UNHEALTHY. For scripting:
sudo -u siroping /opt/siroping/venv/bin/python /opt/siroping/manage.py doctor --json
What it checks
| Check | Pass means |
|---|---|
| Application | Code loads, settings valid |
| Database | Connects (reports the engine) |
| Migrations | Up to date |
| Scheduler | Beat is running & fresh |
| Worker | Celery worker alive & processing |
| Monitoring | Active monitors have recent checks |
| Backup | Backup policy configured & recent |
| Security | DEBUG off, strong SECRET_KEY, ENCRYPTION_KEY set, secure cookies |
| SMTP | Mail relay reachable (WARN if unset) |
When to run it
- After install (target: HEALTHY).
- After an upgrade or restore.
- When something feels wrong — Doctor localizes the fault before you dig into logs.
NOTE
On a fresh install `WARNING` is normal until SMTP/ALLOWED_HOSTS/monitors are
configured. The checks tell you what's missing.