Files
resolutionflow/docker-compose.dev.yml
chihlasm 65eb630254 chore: migrate dev env to Traefik reverse proxy with HTTPS
Replace direct port exposure with Traefik labels for dev.resolutionflow.com
routing. Adds basic auth on frontend, TLS via Let's Encrypt, and updates
Vite allowedHosts.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 02:13:47 +00:00

75 lines
2.6 KiB
YAML

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:-5432}: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
volumes:
- ./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
- SECRET_KEY=${SECRET_KEY}
- ALGORITHM=HS256
- ACCESS_TOKEN_EXPIRE_MINUTES=15
- REFRESH_TOKEN_EXPIRE_DAYS=7
- FEEDBACK_EMAIL=feedback@resolutionflow.com
- AI_PROVIDER=anthropic
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- GOOGLE_AI_API_KEY=${GOOGLE_AI_API_KEY}
- CORS_ORIGINS=["http://localhost:3000","http://localhost:5173","http://127.0.0.1:3000","http://127.0.0.1:5173","http://46.202.92.250:5173","http://46.202.92.250:3000","https://resolutionflow.com","https://www.resolutionflow.com"]
depends_on:
db:
condition: service_healthy
labels:
- "traefik.enable=true"
- "traefik.http.routers.rf-api.rule=Host(`dev.resolutionflow.com`) && PathPrefix(`/api`)"
- "traefik.http.routers.rf-api.entrypoints=websecure"
- "traefik.http.routers.rf-api.tls.certresolver=letsencrypt"
- "traefik.http.services.rf-api.loadbalancer.server.port=8000"
frontend:
build:
context: ./frontend
dockerfile: Dockerfile.dev
container_name: resolutionflow_frontend
volumes:
- ./frontend:/app
- /app/node_modules
environment:
- VITE_API_URL=https://dev.resolutionflow.com/api
depends_on:
- backend
labels:
- "traefik.enable=true"
- "traefik.http.routers.rf-frontend.rule=Host(`dev.resolutionflow.com`)"
- "traefik.http.routers.rf-frontend.middlewares=dev-auth"
- "traefik.http.middlewares.dev-auth.basicauth.users=chihlasm:$$apr1$$dJXUAZ3Y$$SsJm.K8fOjCeNMe4B70Bi0"
- "traefik.http.routers.rf-frontend.entrypoints=websecure"
- "traefik.http.routers.rf-frontend.tls.certresolver=letsencrypt"
- "traefik.http.services.rf-frontend.loadbalancer.server.port=5173"
volumes:
rf_postgres_data: