# Стек MedArchive: PostgreSQL+pgvector, API (FastAPI), фронт (Next.js). # Деплой — на Selectel KZ за общим Caddy (см. Caddyfile). Dockerfile'ы api/web # добавляет агент F. Секреты — только из .env (в репозиторий не попадают). services: db: image: pgvector/pgvector:pg16 restart: unless-stopped environment: POSTGRES_DB: medarchive POSTGRES_USER: medarchive POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - db_data:/var/lib/postgresql/data - ../db/migrations:/docker-entrypoint-initdb.d:ro # схема накатывается при инициализации healthcheck: test: ["CMD-SHELL", "pg_isready -U medarchive -d medarchive"] interval: 5s timeout: 3s retries: 12 api: build: context: .. dockerfile: infra/api.Dockerfile restart: unless-stopped environment: DATABASE_URL: postgresql://medarchive:${DB_PASSWORD}@db:5432/medarchive GEMINI_API_KEY: ${GEMINI_API_KEY} depends_on: db: condition: service_healthy ports: - "8000:8000" web: build: context: ../web dockerfile: ../infra/web.Dockerfile restart: unless-stopped environment: NEXT_PUBLIC_API_BASE: /api depends_on: - api ports: - "3000:3000" volumes: db_data: