version: "3.9" services: db: image: postgres:16-alpine container_name: youtube_banger_db environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: youtube_banger ports: - "5433:5432" volumes: - db_data:/var/lib/postgresql/data backend: build: context: ./apps/backend container_name: youtube_banger_backend environment: PORT: 8080 DATABASE_URL: postgres://postgres:postgres@db:5432/youtube_banger YT_API_KEY: ${YT_API_KEY} GEMINI_API_KEY: ${GEMINI_API_KEY} GEMINI_MODEL: ${GEMINI_MODEL} CORS_ORIGIN: http://localhost:5173 GOOGLE_OAUTH_CLIENT_ID: ${GOOGLE_OAUTH_CLIENT_ID} GOOGLE_OAUTH_CLIENT_SECRET: ${GOOGLE_OAUTH_CLIENT_SECRET} GOOGLE_OAUTH_REDIRECT_URI: ${GOOGLE_OAUTH_REDIRECT_URI} GOOGLE_OAUTH_CLIENT_SECRET_PATH: ${GOOGLE_OAUTH_CLIENT_SECRET_PATH} OAUTH_SUCCESS_REDIRECT: ${OAUTH_SUCCESS_REDIRECT} ports: - "8080:8080" depends_on: - db volumes: - ./apps/backend:/app - backend_node_modules:/app/node_modules web: build: context: ./apps/web container_name: youtube_banger_web environment: VITE_API_BASE: http://localhost:8080 ports: - "5173:5173" depends_on: - backend volumes: - ./apps/web:/app - web_node_modules:/app/node_modules volumes: db_data: backend_node_modules: web_node_modules: