Перейти к содержанию

Конфигурация

Все настройки — через переменные окружения (.env или .env.production).

Обязательные

Переменная Описание Пример
SECRET_KEY JWT и криптография (≥32 символа) openssl rand -hex 32
DATABASE_URL SQLite или PostgreSQL sqlite:///./medinsight.db
REDIS_URL Брокер Celery и кэш redis://redis:6379/0

Приложение

Переменная По умолчанию Описание
APP_ENV development development / production
APP_PORT 8000 Порт uvicorn
APP_VERSION 1.0.0 Версия в /health
CORS_ORIGINS * Разрешённые origins (через запятую)
LOG_LEVEL INFO Уровень логов

Безопасность и шифрование

Переменная Описание
AGE_PUBLIC_KEY Публичный ключ age для шифрования файлов
AGE_SECRET_KEY Приватный ключ (только на сервере!)
ENCRYPTION_ENABLED true / false

Генерация ключей:

age-keygen -o age-key.txt
# AGE_PUBLIC_KEY = age1...
# AGE_SECRET_KEY = AGE-SECRET-KEY-1...

GPT / ProxyAPI

Переменная Описание
PROXYAPI_KEY Ключ ProxyAPI (OpenAI-совместимый)
PROXYAPI_BASE_URL Базовый URL API
GPT_MODEL Модель, напр. gpt-4o-mini

Без ключа работает rule-based fallback.

Email (SMTP)

Переменная Описание
SMTP_HOST, SMTP_PORT Сервер SMTP
SMTP_USER, SMTP_PASSWORD Учётные данные
SMTP_FROM Адрес отправителя
FRONTEND_URL Базовый URL для ссылок в письмах

Telegram

Переменная Описание
TELEGRAM_BOT_TOKEN Токен @BotFather
TELEGRAM_WEBHOOK_SECRET Секрет вебхука

DICOM

Переменная По умолчанию Описание
DICOM_MAX_FILE_SIZE_MB 500 Лимит загрузки
DICOM_STORAGE_PATH storage/dicom Каталог хранения

Резервное копирование

Переменная Описание
BACKUP_ENABLED true / false
BACKUP_SCHEDULE_CRON Расписание (Celery Beat)
BACKUP_RETENTION_DAYS Срок хранения архивов

Мультитенантность

Переменная Описание
DEFAULT_TENANT_SUBDOMAIN Subdomain по умолчанию
TENANT_HEADER Заголовок для API (опционально)

Celery

Переменная Описание
CELERY_BROKER_URL Обычно = REDIS_URL
CELERY_RESULT_BACKEND Backend результатов

Применение изменений

docker compose -f docker-compose.prod.yml restart app worker beat

Полный список: environment-variables.md.