version: '3.8' services: # PostgreSQL Database postgres: image: postgres:15-alpine container_name: nodex-postgres restart: unless-stopped environment: POSTGRES_DB: ${POSTGRES_DB:-nodex_dev} POSTGRES_USER: ${POSTGRES_USER:-nodex} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-K9mQ7#xP$2vR8nL!wZ4jN6yE3tF5uA} PGDATA: /var/lib/postgresql/data/pgdata ports: - '${POSTGRES_PORT:-5432}:5432' volumes: - postgres_data:/var/lib/postgresql/data healthcheck: test: [ 'CMD-SHELL', 'pg_isready -U ${POSTGRES_USER:-nodex} -d ${POSTGRES_DB:-nodex_dev}', ] interval: 10s timeout: 5s retries: 5 networks: - nodex-network # NodeX API (using existing Dockerfile) bubblelab-api: build: context: . dockerfile: Dockerfile container_name: bubblelab-api ports: - '${NODEX_API_PORT:-3001}:3001' environment: - NODE_ENV=${NODE_ENV:-development} - DATABASE_URL=${DATABASE_URL:-postgresql://nodex:K9mQ7#xP$2vR8nL!wZ4jN6yE3tF5uA@postgres:5432/nodex_dev} - BUBBLE_ENV=${BUBBLE_ENV:-prod} - OPENAI_API_KEY=${OPENAI_API_KEY} - GOOGLE_API_KEY=${GOOGLE_API_KEY} - NODEX_API_URL=${NODEX_API_URL:-http://localhost:3001} - CREDENTIAL_ENCRYPTION_KEY=${CREDENTIAL_ENCRYPTION_KEY:-8VfrrosUTORJghTDpdTKG7pvfD721ChyFt97m3Art1Y=} - CLERK_SECRET_KEY=${CLERK_SECRET_KEY} depends_on: postgres: condition: service_healthy restart: unless-stopped networks: - nodex-network networks: nodex-network: driver: bridge volumes: postgres_data: driver: local