name: echoboard services: app: build: . restart: unless-stopped depends_on: db: condition: service_healthy env_file: .env environment: DATABASE_URL: postgresql://echoboard:${POSTGRES_PASSWORD}@db:5432/echoboard NODE_ENV: production ports: - "${PORT:-3000}:${PORT:-3000}" volumes: - ./uploads:/app/packages/api/uploads - ./plugins-installed:/app/packages/api/plugins-installed db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_USER: echoboard POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} POSTGRES_DB: echoboard volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U echoboard"] interval: 5s timeout: 3s retries: 5