Skip to content

Configuration

This guide covers configuration for local development with Docker Compose.

For the full environment-variable reference, see Environment Variables. For AWS deployment settings, see Terraform Deployment Guide.

Scope

The development stack reads its configuration from the environment and from compose.yml. That includes the API, admin panel, frontend, cache, database, and worker services.

This page is intentionally focused on the local developer workflow. It does not describe Terraform backend settings, module inputs, or AWS deployment wiring.

Development Sources

Configuration is typically supplied from these places:

  1. Shell environment variables
  2. A local .env or .env.local file
  3. Defaults defined in the application or Compose file

The application and supporting services are designed to run inside Docker containers, so the Compose file is the primary source of truth for local service wiring.

Common Settings

The most common development settings are documented in the reference page, including:

  • POSTGRES_SERVER
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • POSTGRES_DB
  • POSTGRES_PORT
  • SECRET_KEY
  • REDIS_HOST
  • REDIS_PORT
  • REDIS_PASSWORD
  • REDIS_CLUSTER_MODE
  • REDIS_CACHE_TTL
  • REDIS_TLS_ENABLED
  • DEBUG_WAIT_FOR_CLIENT

The reference page also covers frontend and API URL settings used by the Docker Compose services.

Docker Compose Configuration

The Compose file defines the runtime configuration for local development. Examples include:

  • service-to-service hostnames such as db and dragonfly
  • container port mappings for the API, admin panel, and frontend
  • bind mounts that enable live code reload
  • environment variables passed directly into each container

Use compose.yml as the authoritative local runtime definition rather than duplicating those values in ad hoc scripts.

Working With Local Overrides

If you need to change development settings temporarily:

  1. Prefer shell overrides or a local .env.local file.
  2. Keep secrets out of version control.
  3. Avoid hardcoding deployment-specific values into application code.

What This Page Does Not Cover

  • Terraform backend configuration
  • AWS account setup
  • Terraform variables for staging or production
  • Remote state, lock tables, or module wiring

Those belong in the Terraform documentation under docs/reference/.