Skip to content

Local Setup

Purpose

Set up a stable local runtime aligned with project assumptions.

When To Use This Page

  • preparing a long-lived development environment
  • debugging local environment drift
  • standardizing setup across team members

Prerequisites

Requirement Minimum Why It Matters
Docker engine + compose recent stable runs all project services
Repository checkout current branch aligns scripts/routes/models
.env from .env.example required injects app/db/security config

Local Runtime Topology

flowchart TB
    Dev["Developer"] --> App["app (Django)"]
    App --> DB["db (PostgreSQL)"]
    App --> Redis["redis"]
    Redis --> Celery["celery worker"]

Setup Commands

docker compose up -d --build
docker compose ps
docker compose down

Useful Working Commands

docker compose run --rm app python manage.py shell
docker compose run --rm app python manage.py <command>
docker compose run --rm celery celery -A app inspect registered
docker compose run --rm celery celery -A app inspect ping

Local Environment Discipline

  • keep .env local and out of version control
  • use separate env values for local/test/prod
  • keep host/CSRF/security settings explicit
Recommended local aliases
alias oc-up='docker compose up -d --build'
alias oc-check='docker compose run --rm app python manage.py check'
alias oc-smoke='./scripts/run_smoke_tests.sh'