Skip to content

Runtime Modes

Purpose

Explain how local and deployment runtime mode topologies differ and how to validate behavior across both.

When To Use This Page

  • setting up environment-specific workflows
  • debugging differences between local and deploy behavior
  • validating release readiness after local implementation

Mode Comparison

Mode Compose File Typical Use Key Difference
local docker-compose.yml development/test iteration no deploy ingress layer
deploy docker-compose-deploy.yml production-like runtime ingress proxy + deploy service naming

Runtime Topology

flowchart LR
    subgraph Local["Local"]
      LA["app"] --> LDB["db"]
      LA --> LR["redis"]
      LR --> LC["celery"]
    end

    subgraph Deploy["Deploy"]
      PX["proxy"] --> DA["app"]
      DA --> DDB["db"]
      DA --> DR["redis"]
      DR --> DC["celery"]
    end

Validation Workflow

  1. Bring up local runtime mode and run checks.
  2. Execute smoke suite.
  3. Bring up deployment runtime mode and repeat checks.
  4. Compare critical route/auth/task behavior.
# local
docker compose up -d --build
docker compose run --rm app python manage.py check

# deployment runtime mode
docker compose -f docker-compose-deploy.yml up -d --build
docker compose -f docker-compose-deploy.yml run --rm <deploy-app-service> python manage.py check

Common Failure Modes

Symptom Likely Cause Fix
works local, fails deploy host/csrf/proxy settings mismatch align env security/network settings
async differs by mode service naming or redis endpoint mismatch verify broker/backend vars per compose mode
static/login issues in deploy proxy/static or ingress config mismatch validate deploy ingress and static config

Contribution expectation

Validate local workflows first, then verify deploy assumptions for high-impact changes.