Production runbook

Guides, permissions, workflows, and company operations.

This runbook is the “corporate checklist” for operating EZ360PM in production: deployment checks, daily ops, and incident hygiene.

Before each deploy

  1. Run Ops → Checks → Run all (or run ez360_run_ops_checks_daily).
  2. Confirm migrations are applied and there are no pending migrations.
  3. Confirm staticfiles are collected and the app UI renders (especially Admin).
  4. Confirm email configuration is valid (receipt/document emails should deliver).

Daily routine

  • Run: python manage.py ez360_run_ops_checks_daily
  • Review Ops → Checks → Recent Runs for failures/warnings.
  • Prune evidence: python manage.py ez360_prune_ops_check_runs --days 30

Scheduling (Render / hosted)

EZ360PM includes a few management commands intended to run on a schedule. On Render, use Cron Jobs. On other hosts, use your platform scheduler (cron, CI, or task runner).

  • Daily ops checks (daily): python manage.py ez360_run_ops_checks_daily
  • Statement reminders (hourly or daily): python manage.py ez360_send_statement_reminders
  • Prune ops evidence (weekly): python manage.py ez360_prune_ops_check_runs --days 30
  • Prune resolved ops alerts (weekly): python manage.py ez360_prune_ops_alerts
Recommended Render cron setup
  1. Create a cron job: 0 7 * * *python manage.py ez360_run_ops_checks_daily
  2. Create a cron job: 0 * * * *python manage.py ez360_send_statement_reminders
  3. Create a cron job: 0 3 * * 0python manage.py ez360_prune_ops_check_runs --days 30
  4. Create a cron job: 15 3 * * 0python manage.py ez360_prune_ops_alerts
Tip: set alert routing in Ops → Alert routing so failures notify you by email/webhook.

Incident workflow

  • Capture evidence: download Ops runs output (Ops → Checks → Recent Runs).
  • Check server logs and any configured error reporting.
  • If a financial inconsistency is detected, run ez360_invariants_check scoped to the company.