Roles / entrypoint
entrypoint.sh <role> is the image’s ENTRYPOINT; CMD defaults to web,
and docker-compose.yml overrides command: per service.
| Role | Does |
|---|---|
web |
migrate → ensure_superuser → reef_seed → gunicorn |
worker |
celery -A app worker (concurrency from CELERY_CONCURRENCY, default 2) |
beat |
celery -A app beat |
Only web runs migrations, so worker and beat can’t race the schema on
startup.
Commands
python manage.py reef_seed [--demo]
Creates the default scan schedules — idempotent, safe to re-run.
--demo also inserts a fake agent + scan + findings, handy for a UI walkthrough
without a real host.
python manage.py ensure_superuser
Creates the superuser from DJANGO_SUPERUSER_* if one doesn’t already exist.
Runs automatically as part of the web role’s startup.
python manage.py sysinfo [--json]
Prints an OS / Python / Django summary — useful when filing a bug or comparing environments.
python manage.py reef_reset [--no-input] [--include-users] [--vacuum]
--include-users is passed. Prompts for confirmation unless --no-input (alias --yes / -y) is given. Re-run reef_seed afterwards to restore the default schedules.