Skip to content

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

SLOzy использует несколько уровней конфигурации: переменные окружения для базовых настроек бекенда и фронтенда, файлы .env для различных окружений, и runtime-конфигурацию через API для кэша и оповещений.

Обзор опций

Все опции серверной части задаются через переменные окружения. Фронтенд использует переменные с префиксом VITE_. Поддерживается два способа настройки подключения к PostgreSQL: единая строка DATABASE_URL или отдельные переменные POSTGRES_*.

Разделы конфигурации

РазделОписание
СерверПорт, хост, режим работы (development/production)
База данныхPostgreSQL — пул соединений, строки подключения, SSL, миграции
RedisАдрес, порт, пароль, номер БД, TLS
JWTСекретный ключ, время жизни access и refresh токенов
CORSРазрешённые источники, включение/отключение CORS
Rate LimitingГлобальный лимит запросов, лимит на IP, burst
МониторингPrometheus метрики, health checks
КэшTTL, максимальное количество записей, сжатие
ОповещенияRetry-логика, дедупликация, WebSocket
ЛогированиеУровень логов, формат (JSON/текст), вывод

Режимы окружения

SLOzy поддерживает три режима:

  • developmentDEV_MODE=true, расширенное логирование, CORS для localhost
  • productionGIN_MODE=release, минимальное логирование, строгие security-заголовки
  • testing — используется в интеграционных тестах, изолированная БД

Файлы конфигурации

Основные файлы:

  • .env.production — переменные для production-сборки
  • frontend/.env.production — переменные фронтенда
  • docker-compose.yml — полный стек (PostgreSQL, Redis, приложение)

Runtime-конфигурация

Параметры кэша и оповещений можно менять без перезапуска через API:

  • PUT /api/v1/cache/config — обновление TTL, лимитов, сжатия
  • Настройки оповещений и каналов через POST /api/v1/notifications/rules

Эти изменения хранятся в Redis и применяются мгновенно.