← Back

Your Stack

App: Directus latest
DB: PostgreSQL latest
Proxy: Traefik latest

Production-ready docker-compose.yml for your stack. Copy it, customize variables in .env, and deploy.

docker-compose.yml
version: '3.8'
services:
  directus:
    image: directus/directus:latest
    ports:
      - "8055:8055"
    depends_on:
      - postgres

    environment:
      DB_HOST: ${APP_DB_HOST:-postgres}
      DB_USER: ${APP_DB_USER:-app_user}
      DB_PASSWORD: ${APP_DB_PASSWORD:-change_me_app_password}
      DB_DATABASE: ${APP_DB_NAME:-directus_db}
    restart: always

  postgres:
    image: postgres:latest
    ports:
      - "5432:5432"

    environment:
      POSTGRES_USER: ${APP_DB_USER:-app_user}
      POSTGRES_PASSWORD: ${APP_DB_PASSWORD:-change_me_app_password}
      POSTGRES_DB: ${APP_DB_NAME:-directus_db}
    volumes:
      - postgres_data:/var/lib/postgresql/data
    restart: always

  traefik:
    image: traefik:latest
    ports:
      - "80:80"
      - "443:443"
    depends_on:
      - directus

    command:
      - --providers.docker=true
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: always

volumes:
  postgres_data:

Customize APP_DB_* and DB_* variables in your .env file.