| services: | |
| postgres: | |
| image: postgres:16-alpine | |
| environment: | |
| POSTGRES_USER: termprep | |
| POSTGRES_PASSWORD: termprep | |
| POSTGRES_DB: termprep | |
| ports: | |
| - "5432:5432" | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U termprep -d termprep"] | |
| interval: 5s | |
| timeout: 5s | |
| retries: 5 | |
| redis: | |
| image: redis:7-alpine | |
| ports: | |
| - "6379:6379" | |
| backend: | |
| build: ./backend | |
| ports: | |
| - "8000:8000" | |
| environment: | |
| DATABASE_URL: postgresql://termprep:termprep@postgres:5432/termprep | |
| REDIS_URL: redis://redis:6379/0 | |
| SECRET_KEY: ${SECRET_KEY:-dev-secret-key-change-me} | |
| FRONTEND_URL: http://localhost:5173 | |
| AI_PROVIDER: ${AI_PROVIDER:-deepseek} | |
| AI_API_KEY: ${AI_API_KEY:-} | |
| AI_MODEL: ${AI_MODEL:-deepseek-chat} | |
| GITHUB_CLIENT_ID: ${GITHUB_CLIENT_ID:-} | |
| GITHUB_CLIENT_SECRET: ${GITHUB_CLIENT_SECRET:-} | |
| GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID:-} | |
| GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET:-} | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_started | |
| volumes: | |
| - ./backend/app:/app/app | |
| command: uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload | |
| worker: | |
| build: ./backend | |
| environment: | |
| DATABASE_URL: postgresql://termprep:termprep@postgres:5432/termprep | |
| REDIS_URL: redis://redis:6379/0 | |
| SECRET_KEY: ${SECRET_KEY:-dev-secret-key-change-me} | |
| AI_PROVIDER: ${AI_PROVIDER:-deepseek} | |
| AI_API_KEY: ${AI_API_KEY:-} | |
| AI_MODEL: ${AI_MODEL:-deepseek-chat} | |
| depends_on: | |
| postgres: | |
| condition: service_healthy | |
| redis: | |
| condition: service_started | |
| volumes: | |
| - ./backend/app:/app/app | |
| command: celery -A app.celery_app worker -l info -c 2 | |
| frontend: | |
| image: node:20-alpine | |
| working_dir: /app | |
| ports: | |
| - "5173:5173" | |
| volumes: | |
| - ./frontend:/app | |
| - /app/node_modules | |
| command: sh -c "npm install && npm run dev" | |
| environment: | |
| VITE_API_BASE_URL: http://localhost:8000/api/v1 | |
| volumes: | |
| postgres_data: | |