services: postgres: image: postgres:16-alpine restart: unless-stopped healthcheck: test: ['CMD-SHELL', 'pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB'] interval: 5s retries: 10 timeout: 2s environment: POSTGRES_USER: ${PG_USER} POSTGRES_PASSWORD: ${PG_PASSWORD} POSTGRES_DB: ${PG_DB} volumes: - postgres-data:/var/lib/postgresql/data networks: - p-stream-network p-stream: build: . restart: unless-stopped environment: DATABASE_URL: ${DATABASE_URL_DOCKER:?database URL required} META_NAME: ${META_NAME} META_DESCRIPTION: ${META_DESCRIPTION} CRYPTO_SECRET: ${CRYPTO_SECRET:?crypto secret required} TMDB_API_KEY: ${TMDB_API_KEY} TRAKT_CLIENT_ID: ${TRAKT_CLIENT_ID} TRAKT_SECRET_ID: ${TRAKT_SECRET_ID} CAPTCHA: ${CAPTCHA:-false} CAPTCHA_CLIENT_KEY: ${CAPTCHA_CLIENT_KEY} NODE_ENV: ${NODE_ENV:-production} env_file: - .env ports: - '3000:3000' depends_on: postgres: condition: service_healthy networks: - p-stream-network networks: p-stream-network: driver: bridge volumes: postgres-data: