Skip to content

Latest commit

 

History

History
145 lines (100 loc) · 3.35 KB

File metadata and controls

145 lines (100 loc) · 3.35 KB

Docker

ReMind включает две Compose-конфигурации:

  • docker-compose.dev.yml для локальной разработки с hot reload.
  • docker-compose.yml для production-like стека с Nginx, Flask, Celery, PostgreSQL и Redis.

Development stack

Первый запуск:

docker compose -f docker-compose.dev.yml up --build

Обычный запуск после сборки зависимостей:

docker compose -f docker-compose.dev.yml up

Или через npm:

npm run docker:dev

Сервисы:

Сервис URL / роль
frontend http://127.0.0.1:5173
backend http://127.0.0.1:5000
worker Celery worker с Python file watcher
db PostgreSQL 15
redis Redis 7 с append-only persistence

Dev stack по умолчанию не читает основной .env. Он выставляет LOAD_DOTENV=false и использует Compose environment values, чтобы production cookie/domain/password настройки не ломали локальную разработку.

Для локальных override можно добавить .env.dev. Это необязательно.

Когда нужен rebuild

Rebuild нужен после изменения:

  • package.json или package-lock.json
  • requirements*.txt
  • файлы в requirements/
  • Dockerfile.dev
  • system packages или base image assumptions

Для обычных изменений frontend/backend кода достаточно:

docker compose -f docker-compose.dev.yml up

Vite отвечает за frontend HMR, Flask перезагружает backend, а scripts/reload_on_change.py перезапускает Celery worker при изменении Python-файлов.

Production-like stack

Запуск:

docker compose up --build

Сервисы:

Сервис Роль
nginx Public HTTP edge и static/API proxy
app Flask application из production image
worker Celery background worker
db PostgreSQL database
redis Sessions, queue broker и runtime cache

Обязательные environment values:

SECRET_KEY=replace-with-a-long-random-secret
DB_PASSWORD=replace-with-a-strong-db-password
REDIS_PASSWORD=replace-with-a-strong-redis-password
AI_PROVIDER_API_KEY=your-ai-provider-api-key
AI_PROVIDER_MODEL_NAME=your-ai-provider-model
BACKEND_URL=https://your-domain.example

Опциональные интеграции:

GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
TURNSTILE_SITE_KEY=
TURNSTILE_SECRET_KEY=

Health Checks

Backend health:

curl http://127.0.0.1:5000/health

Nginx health в production-like stack:

curl http://127.0.0.1/health

Metrics:

curl http://127.0.0.1:5000/metrics

Частые операции

Остановить dev stack:

npm run docker:dev:down

Посмотреть logs:

docker compose -f docker-compose.dev.yml logs -f backend
docker compose -f docker-compose.dev.yml logs -f worker

Пересобрать dev stack:

npm run docker:dev:build

Сбросить dev volumes:

docker compose -f docker-compose.dev.yml down -v

Команда удалит локальные PostgreSQL и Redis данные dev stack.