Claude Code - Backend Implementation Specialist
Add complete FastAPI Todo application with Docker support
1941764 | version: '3.8' | |
| services: | |
| # PostgreSQL Database | |
| db: | |
| image: postgres:15-alpine | |
| container_name: todo-db | |
| environment: | |
| POSTGRES_USER: todouser | |
| POSTGRES_PASSWORD: todopassword | |
| POSTGRES_DB: tododb | |
| volumes: | |
| - postgres_data:/var/lib/postgresql/data | |
| ports: | |
| - "5432:5432" | |
| healthcheck: | |
| test: ["CMD-SHELL", "pg_isready -U todouser"] | |
| interval: 10s | |
| timeout: 5s | |
| retries: 5 | |
| # FastAPI Backend | |
| api: | |
| build: | |
| context: . | |
| dockerfile: Dockerfile | |
| container_name: todo-api | |
| environment: | |
| DATABASE_URL: postgresql://todouser:todopassword@db:5432/tododb | |
| JWT_SECRET_KEY: ${JWT_SECRET_KEY:-your-super-secret-key-change-this-min-32-characters-long} | |
| JWT_ALGORITHM: HS256 | |
| ACCESS_TOKEN_EXPIRE_MINUTES: 30 | |
| CORS_ORIGINS: http://localhost:3000,http://localhost:3001 | |
| SMTP_HOST: ${SMTP_HOST:-smtp.gmail.com} | |
| SMTP_PORT: ${SMTP_PORT:-587} | |
| SMTP_USERNAME: ${SMTP_USERNAME} | |
| SMTP_PASSWORD: ${SMTP_PASSWORD} | |
| SMTP_USE_TLS: ${SMTP_USE_TLS:-true} | |
| EMAIL_FROM: ${EMAIL_FROM} | |
| EMAIL_FROM_NAME: ${EMAIL_FROM_NAME:-Todo Application} | |
| FRONTEND_URL: ${FRONTEND_URL:-http://localhost:3000} | |
| PASSWORD_RESET_TOKEN_EXPIRY_MINUTES: 15 | |
| PASSWORD_RESET_MAX_REQUESTS_PER_HOUR: 3 | |
| COHERE_API_KEY: ${COHERE_API_KEY} | |
| ports: | |
| - "8000:8000" | |
| depends_on: | |
| db: | |
| condition: service_healthy | |
| volumes: | |
| - ./src:/app/src | |
| restart: unless-stopped | |
| volumes: | |
| postgres_data: | |