services: postgres: image: postgres:16-alpine container_name: mitai-postgres restart: unless-stopped environment: POSTGRES_DB: ${DB_NAME:-mitai} POSTGRES_USER: ${DB_USER:-mitai} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - mitai_postgres_data:/var/lib/postgresql/data ports: - "127.0.0.1:5432:5432" healthcheck: test: ["CMD-SHELL", "pg_isready -U ${DB_USER:-mitai}"] interval: 10s timeout: 5s retries: 5 backend: build: ./backend container_name: mitai-api restart: unless-stopped ports: - "8002:8000" depends_on: postgres: condition: service_healthy volumes: - bodytrack_bodytrack-photos:/app/photos environment: # Database - DB_HOST=${DB_HOST:-postgres} - DB_PORT=${DB_PORT:-5432} - DB_NAME=${DB_NAME:-mitai} - DB_USER=${DB_USER:-mitai} - DB_PASSWORD=${DB_PASSWORD} # AI - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - OPENROUTER_MODEL=${OPENROUTER_MODEL:-anthropic/claude-sonnet-4} - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} # Email - SMTP_HOST=${SMTP_HOST} - SMTP_PORT=${SMTP_PORT:-587} - SMTP_USER=${SMTP_USER} - SMTP_PASS=${SMTP_PASS} - SMTP_FROM=${SMTP_FROM} # App - APP_URL=${APP_URL} - PHOTOS_DIR=/app/photos - ALLOWED_ORIGINS=${ALLOWED_ORIGINS:-*} - ENVIRONMENT=production frontend: build: ./frontend container_name: mitai-ui restart: unless-stopped ports: - "3002:80" depends_on: - backend volumes: mitai_postgres_data: name: mitai_postgres_data bodytrack_bodytrack-photos: external: true