Переменные окружения
Полный справочник переменных из .env.example.
Безопасность и JWT
| Переменная |
По умолчанию |
Описание |
SECRET_KEY |
— |
Секрет JWT (≥32 символа). Обязательно |
ALGORITHM |
HS256 |
Алгоритм JWT |
ACCESS_TOKEN_EXPIRE_DAYS |
7 |
Срок жизни токена |
База данных и хранилище
| Переменная |
По умолчанию |
Описание |
DATABASE_URL |
sqlite:///./medinsight.db |
SQLite или PostgreSQL URL |
STORAGE_PATH |
./storage |
Каталог зашифрованных документов |
Приложение
| Переменная |
По умолчанию |
Описание |
APP_PORT |
8000 |
Порт uvicorn |
APP_VERSION |
1.0.0 |
Версия в /health |
CORS_ORIGINS |
localhost |
Origins через запятую |
SPACY_MODEL |
ru_core_news_lg |
NLP-модель spaCy |
LOG_LEVEL |
INFO |
Уровень логирования |
LOG_JSON_FORMAT |
true |
JSON-логи |
GRACEFUL_SHUTDOWN_TIMEOUT |
30 |
Drain при остановке (сек) |
Traefik / HTTPS (prod)
| Переменная |
Описание |
DOMAIN |
Домен для Let's Encrypt |
ACME_EMAIL |
Email для ACME |
Redis и Celery
| Переменная |
По умолчанию |
Описание |
REDIS_URL |
redis://redis:6379/0 |
Брокер Celery |
CELERY_RESULT_BACKEND |
redis://redis:6379/1 |
Backend результатов |
GPT (ProxyAPI)
| Переменная |
Описание |
OPENAI_API_KEY |
Ключ ProxyAPI |
OPENAI_BASE_URL |
https://api.proxyapi.ru/openai/v1 |
OPENAI_MODEL |
gpt-4o-mini |
Мультитенантность и шифрование
| Переменная |
По умолчанию |
Описание |
TENANT_MODE |
true |
Включить multi-tenant |
ENCRYPTION_ENABLED |
true |
Шифрование файлов |
ENCRYPTION_KEY |
— |
Ключ age (или через файл) |
ENCRYPTION_KEY_PATH |
secrets/encryption_key.txt |
Путь к ключу |
SUPER_ADMIN_EMAIL |
— |
Email суперадмина |
SUPER_ADMIN_PASSWORD |
— |
Пароль (первый запуск) |
DEFAULT_TENANT_NAME |
Default Clinic |
Имя tenant по умолчанию |
DEFAULT_TENANT_SUBDOMAIN |
default |
Subdomain по умолчанию |
Self-healing RAG
| Переменная |
По умолчанию |
Описание |
SELF_HEALING_ENABLED |
true |
Автовосстановление |
CHROMA_PERSIST_DIR |
./chroma_data |
ChromaDB |
EMBEDDING_MODEL |
all-MiniLM-L6-v2 |
Embeddings |
SIMILARITY_THRESHOLD |
0.75 |
Порог similarity |
MAX_RETRY_ATTEMPTS |
2 |
Retry GPT |
Webhooks
| Переменная |
По умолчанию |
Описание |
WEBHOOK_ENABLED |
true |
Исходящие webhooks |
WEBHOOK_TIMEOUT_SECONDS |
10 |
Таймаут HTTP |
WEBHOOK_RETRY_COUNT |
3 |
Повторы |
WEBHOOK_PUBLIC_BASE_URL |
— |
Базовый URL для callbacks |
Биллинг
| Переменная |
Описание |
BILLING_ENABLED |
false = без лимитов (тест) |
STRIPE_* |
Stripe keys и price IDs |
YOOKASSA_* |
ЮKassa |
FREEMIUM_ANALYSIS_LIMIT |
5 |
PRO_ANALYSIS_LIMIT |
100 |
ENTERPRISE_ANALYSIS_LIMIT |
999999 |
PRO_PRICE_RUB/USD |
Цены в коп/центах |
Экспорт
| Переменная |
По умолчанию |
Описание |
EXPORT_MAX_ROWS |
10000 |
Лимит строк Excel |
EXPORT_MAX_COLUMNS |
50 |
Лимит колонок |
EXPORT_TEMP_DIR |
./storage/exports |
Временные файлы |
Бэкап
| Переменная |
По умолчанию |
Описание |
BACKUP_ENABLED |
true |
Автобэкап |
BACKUP_DIR |
/backups |
Каталог архивов |
BACKUP_RETENTION_DAYS |
7 |
Дни |
BACKUP_RETENTION_WEEKS |
4 |
Недели |
BACKUP_RETENTION_MONTHS |
12 |
Месяцы |
BACKUP_SCHEDULE_FULL |
0 2 * * * |
Полный бэкап (cron) |
BACKUP_SCHEDULE_DB |
0 * * * * |
БД каждый час |
BACKUP_ENCRYPTION_ENABLED |
false |
Шифрование архива |
BACKUP_ALERT_MAX_AGE_HOURS |
48 |
Алерт если нет бэкапа |
Telegram
| Переменная |
Описание |
TELEGRAM_BOT_TOKEN |
Токен бота |
TELEGRAM_CHAT_ID |
Chat для алертов |
TELEGRAM_BOT_ENABLED |
false |
TELEGRAM_BOT_WEBHOOK_URL |
URL вебхука |
TELEGRAM_LINK_CODE_TTL |
600 сек |
UI
| Переменная |
По умолчанию |
Описание |
DEFAULT_THEME |
light |
light / dark / system |
DICOM
| Переменная |
По умолчанию |
Описание |
DICOM_ENABLED |
true |
Модуль DICOM |
DICOM_MAX_FILE_SIZE_MB |
500 |
Лимит загрузки |
DICOM_STORAGE_PATH |
./storage/dicom |
Хранилище |
DICOM_THUMBNAIL_SIZE |
256x256 |
Размер превью |
OpenTelemetry
| Переменная |
Описание |
OTEL_ENABLED |
Трейсинг |
OTEL_SERVICE_NAME |
medinsight |
OTEL_EXPORTER_OTLP_ENDPOINT |
Collector URL |
WebSocket
| Переменная |
По умолчанию |
Описание |
WEBSOCKET_ENABLED |
true |
Real-time |
WEBSOCKET_HEARTBEAT_INTERVAL |
30 |
Heartbeat (сек) |
WEBSOCKET_MAX_CONNECTIONS |
1000 |
Лимит соединений |
Rate limiting
| Переменная |
По умолчанию |
Описание |
RATE_LIMIT_ENABLED |
true |
Лимиты |
RATE_LIMIT_LOGIN_PER_MINUTE |
10 |
Логин |
RATE_LIMIT_REGISTER_PER_HOUR |
5 |
Регистрация |
Email
| Переменная |
Описание |
SMTP_HOST, SMTP_PORT |
SMTP сервер |
SMTP_USER, SMTP_PASSWORD |
Auth |
SMTP_FROM |
From address |
EMAIL_ENABLED |
Включить email |
FRONTEND_URL |
Базовый URL фронта |
Пример .env.production
SECRET_KEY=$(openssl rand -hex 32)
DATABASE_URL=sqlite:////app/data/medinsight.db
REDIS_URL=redis://redis:6379/0
APP_ENV=production
CORS_ORIGINS=https://medinsight.fileguardian.info
ENCRYPTION_ENABLED=true
OPENAI_API_KEY=sk-...
FRONTEND_URL=https://medinsight.fileguardian.info