name: resolutionflow services: db: image: pgvector/pgvector:pg16 container_name: resolutionflow_postgres environment: POSTGRES_USER: postgres POSTGRES_PASSWORD: postgres POSTGRES_DB: resolutionflow ports: - "${POSTGRES_PORT:-5433}:5432" volumes: - rf_postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5 backend: build: context: ./backend dockerfile: Dockerfile.dev container_name: resolutionflow_backend command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload ports: - "8000:8000" volumes: - ${REPO_ROOT}/backend:/app environment: - APP_NAME=ResolutionFlow - DEBUG=true - DATABASE_URL=postgresql+asyncpg://postgres:postgres@db:5432/resolutionflow - DATABASE_URL_SYNC=postgresql://postgres:postgres@db:5432/resolutionflow # Dedicated test database — pytest will refuse to run against any DB # whose name doesn't contain 'test' (conftest.py safety assertion). - DATABASE_TEST_URL=postgresql+asyncpg://postgres:postgres@db:5432/resolutionflow_test - SECRET_KEY=${SECRET_KEY} - ALGORITHM=HS256 - ACCESS_TOKEN_EXPIRE_MINUTES=15 - REFRESH_TOKEN_EXPIRE_DAYS=7 - REQUIRE_INVITE_CODE=false - FEEDBACK_EMAIL=feedback@resolutionflow.com - AI_PROVIDER=anthropic - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} - GOOGLE_AI_API_KEY=${GOOGLE_AI_API_KEY:-} - STRIPE_SECRET_KEY=${STRIPE_SECRET_KEY:-} - STRIPE_PUBLISHABLE_KEY=${STRIPE_PUBLISHABLE_KEY:-} - STRIPE_WEBHOOK_SECRET=${STRIPE_WEBHOOK_SECRET:-} - SELF_SERVE_ENABLED=${SELF_SERVE_ENABLED:-false} - INTERNAL_TESTER_EMAILS=${INTERNAL_TESTER_EMAILS:-} - ENABLE_MCP_MICROSOFT_LEARN=true - FRONTEND_URL=http://docker-01:5173 - CORS_ORIGINS=["http://localhost:5173","http://127.0.0.1:5173","http://docker-01:5173","http://100.64.78.44:5173"] depends_on: db: condition: service_healthy frontend: build: context: ./frontend dockerfile: Dockerfile.dev container_name: resolutionflow_frontend command: npm run dev -- --host 0.0.0.0 --port 5173 ports: - "5173:5173" volumes: - ${REPO_ROOT}/frontend:/app - /app/node_modules environment: - VITE_API_URL=http://docker-01:8000 - CHOKIDAR_USEPOLLING=true depends_on: - backend volumes: rf_postgres_data: