name: dreamweaver x-backend-env: &backend-env DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-dreamweaver}:${POSTGRES_PASSWORD:-dreamweaver_password}@db:5432/${POSTGRES_DB:-dreamweaver_db} CELERY_BROKER_URL: redis://redis:6379/0 CELERY_RESULT_BACKEND: redis://redis:6379/0 REDIS_URL: redis://redis:6379/0 services: frontend: build: ./frontend image: dreamweaver-frontend:dev container_name: dreamweaver_frontend restart: unless-stopped ports: - "52080:80" depends_on: backend: condition: service_started frontend-admin: build: ./admin-frontend image: dreamweaver-admin-frontend:dev container_name: dreamweaver_frontend_admin restart: unless-stopped ports: - "52888:80" depends_on: backend-admin: condition: service_started backend: build: ./backend image: dreamweaver-backend:dev container_name: dreamweaver_backend restart: unless-stopped ports: - "52000:8000" env_file: ./backend/.env environment: *backend-env volumes: - backend_static:/app/static depends_on: db: condition: service_healthy redis: condition: service_started backend-admin: image: dreamweaver-backend:dev container_name: dreamweaver_backend_admin restart: unless-stopped command: ["uvicorn", "app.admin_main:app", "--host", "0.0.0.0", "--port", "8001"] ports: - "52800:8001" env_file: ./backend/.env environment: *backend-env volumes: - backend_static:/app/static depends_on: backend: condition: service_started db: condition: service_healthy redis: condition: service_started worker: image: dreamweaver-backend:dev container_name: dreamweaver_worker restart: unless-stopped command: celery -A app.core.celery_app worker --loglevel=info env_file: ./backend/.env environment: *backend-env depends_on: backend: condition: service_started db: condition: service_healthy redis: condition: service_started celery-beat: image: dreamweaver-backend:dev container_name: dreamweaver_beat restart: unless-stopped command: celery -A app.core.celery_app beat --loglevel=info env_file: ./backend/.env environment: *backend-env depends_on: backend: condition: service_started redis: condition: service_started db: image: postgres:15-alpine container_name: dreamweaver_db restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_USER:-dreamweaver} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-dreamweaver_password} POSTGRES_DB: ${POSTGRES_DB:-dreamweaver_db} ports: - "52432:5432" volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-dreamweaver} -d ${POSTGRES_DB:-dreamweaver_db}"] interval: 10s timeout: 5s retries: 5 redis: image: redis:7-alpine container_name: dreamweaver_redis restart: unless-stopped command: redis-server --appendonly yes ports: - "52379:6379" volumes: - redis_data:/data volumes: backend_static: postgres_data: redis_data: