Тема
Конфигурация
Основная конфигурация развёртывания находится в файле .env. Создавайте его только из .env.example той же версии поставки.
Правила работы с .env
- Используйте разные случайные значения для всех паролей и ключей.
- Не меняйте
APP_SECRETS_KEYпосле первоначальной настройки без отдельной процедуры ротации. - Не используйте тег образа
latestв промышленной среде. - Перед запуском проверяйте конфигурацию командой
ENVFILE=.env docker compose --env-file .env config --quiet. - При обновлении сравнивайте новый
.env.exampleс действующим.env; не заменяйте рабочий файл целиком.
Каталог config монтируется в /app/config, а logs — в /app/logs. Оба каталога должны быть доступны пользователю контейнера с UID/GID 10001:10001.
Приложение
| Переменная | Назначение | Пример |
|---|---|---|
BACKEND_IMAGE | Образ серверной части. | registry.legionsecurity.ru/l1-support/l1-server |
BACKEND_VERSION | Точная версия серверной части. | v1.2.3 |
FRONTEND_IMAGE | Образ клиентской части. | registry.legionsecurity.ru/l1-support/l1-client |
FRONTEND_VERSION | Точная версия клиентской части. | v1.2.3 |
SERVICE_NAME | Имя сервиса в журналах. | l1-support |
APP_ENV | Режим работы. | prod |
SERVER_ADDRESS | Адрес прослушивания внутри контейнера. | 0.0.0.0 |
SERVER_PORT | Внутренний порт backend. | 3000 |
SERVER_HOST_PORT | Диагностический порт backend на localhost. | 9100 |
FRONTEND_HOST_PORT | Порт веб-интерфейса на хосте. | 9090 |
FRONTEND_PUBLIC_URL | Публичный адрес веб-интерфейса. | https://l1.example.org |
DOCKER_DNS_SERVER | Корпоративный DNS-сервер для контейнера backend. Используется для LDAP/AD | 192.168.20.100 |
DOCKER_DNS_SEARCH | Поисковый домен DNS. | corp.example.org |
PostgreSQL
| Переменная | Назначение | Пример |
|---|---|---|
DB_TYPE | Тип базы данных. | postgres |
DB_HOST | Имя сервиса PostgreSQL. | postgres |
DB_PORT | Внутренний порт PostgreSQL. | 5432 |
DB_USER | Пользователь базы данных. | l1_support |
DB_PASSWORD | Пароль пользователя. | <случайный_пароль> |
DB_NAME | Имя базы данных. | l1_support |
DB_HOST_PORT | Диагностический порт PostgreSQL на localhost. | 9101 |
Redis
| Переменная | Назначение | Пример |
|---|---|---|
REDIS_HOST | Имя сервиса Redis. | redis |
REDIS_PORT | Внутренний порт Redis. | 6379 |
REDIS_HOST_PORT | Диагностический порт Redis на localhost. | 9102 |
REDIS_PASSWORD | Пароль Redis. | <случайный_пароль> |
REDIS_DB | Номер логической базы. | 0 |
REDIS_MAX_RETRIES | Число повторов подключения. | 3 |
REDIS_DIAL_TIMEOUT | Тайм-аут подключения. | 5s |
REDIS_READ_TIMEOUT | Тайм-аут чтения. | 3s |
REDIS_WRITE_TIMEOUT | Тайм-аут записи. | 3s |
MinIO и S3
| Переменная | Назначение | Пример |
|---|---|---|
MINIO_ROOT_USER | Администратор MinIO. | l1-minio-admin |
MINIO_ROOT_PASSWORD | Пароль администратора MinIO. | <случайный_пароль> |
MINIO_API_HOST_PORT | Порт S3 API на хосте. | 9104 |
MINIO_CONSOLE_HOST_PORT | Порт консоли MinIO на localhost. | 9103 |
S3_BUCKET | Имя приватного бакета. | l1-files |
S3_REGION | Регион S3. | us-east-1 |
S3_ACCESS_KEY | Технический пользователь backend. | l1-app |
S3_SECRET_KEY | Пароль технического пользователя. | <случайный_пароль> |
S3_ENDPOINT | Внутренний адрес MinIO для backend. | http://minio:9000 |
S3_PUBLIC_ENDPOINT | Публичный адрес S3 API для рабочих мест. | https://s3.l1.example.org |
S3_USE_PATH_STYLE | Использование path-style адресов S3. | true |
S3_ENDPOINT используется контейнером backend, а S3_PUBLIC_ENDPOINT — браузерами пользователей. Эти адреса не взаимозаменяемы.
Аутентификация и шифрование
| Переменная | Назначение | Пример |
|---|---|---|
JWT_SECRET | Секрет подписи JWT. | <случайный_секрет> |
ACCESS_TOKEN_TTL | Время жизни access token. | 5m |
REFRESH_TOKEN_TTL | Время жизни refresh token. | 720h |
PASSWORD_RESET_TOKEN_TTL | Время жизни токена восстановления пароля. | 30m |
APP_SECRETS_KEY | Base64-ключ шифрования настроек. | результат openssl rand -base64 32 |
APP_TOTP_ISSUER | Название в приложении-аутентификаторе. | Л1 Первая Линия Техподдержки |
Значение APP_SECRETS_KEY должно декодироваться в 32 байта. Его потеря или несогласованная замена сделает сохранённые зашифрованные пароли интеграций недоступными.
Файловый модуль
| Переменная | Назначение | Пример |
|---|---|---|
FILES_CONFIG_PATH | Путь к конфигурации файлов внутри контейнера. | config/files.json |
FILES_CONFIG_RELOAD_INTERVAL | Интервал перечитывания конфигурации. | 30s |
FILES_MAX_SIZE_BYTES | Максимальный размер одного файла. | 500mb |
FILES_MULTIPART_THRESHOLD_BYTES | Порог multipart-загрузки. | 50mb |
FILES_MULTIPART_PART_SIZE_BYTES | Размер части multipart-загрузки. | 16mb |
FILES_UPLOAD_URL_TTL_SECONDS | Время жизни ссылки на загрузку. | 3600 |
FILES_DOWNLOAD_URL_TTL_SECONDS | Время жизни ссылки на скачивание. | 300 |
FILES_CLEANUP_INTERVAL | Интервал очистки незавершённых загрузок. | 20m |
FILES_CLEANUP_BATCH_SIZE | Размер пачки при очистке. | 100 |
Ограничение размера запроса на reverse proxy должно быть не меньше FILES_MAX_SIZE_BYTES.
Интеграции и фоновые обработчики
| Переменная | Назначение | Пример |
|---|---|---|
APPEARANCE_CONFIG_PATH | Конфигурация внешнего вида. | config/appearance.json |
NOTIFICATION_TEMPLATES_CONFIG_PATH | Шаблоны уведомлений. | config/notification_templates.json |
NOTIFICATION_TEMPLATES_RELOAD_INTERVAL | Интервал перечитывания шаблонов. | 30s |
DADATA_DEFAULT_TOKEN | Токен DaData. | пусто |
DADATA_BASE_URL | Адрес API DaData. | https://suggestions.dadata.ru |
DADATA_TIMEOUT | Тайм-аут обращения к DaData. | 5s |
DADATA_CONFIG_PATH | Конфигурация DaData. | config/dadata.json |
DADATA_CONFIG_RELOAD_INTERVAL | Интервал перечитывания конфигурации. | 30s |
EMAIL_WORKERS_ENABLED | Обработка электронной почты. | true |
EMAIL_IMAP_POLL_INTERVAL | Интервал проверки входящей почты. | 30s |
EMAIL_OUTBOUND_POLL_INTERVAL | Интервал отправки исходящей почты. | 30s |
EMAIL_WORKER_BATCH_SIZE | Размер пачки почтовых сообщений. | 100 |
EMAIL_LOCK_TIMEOUT | Время блокировки почтовой задачи. | 15m |
SLA_WORKER_ENABLED | Обработка SLA. | true |
SLA_POLL_INTERVAL | Интервал обработки SLA. | 30s |
SLA_WORKER_BATCH_SIZE | Размер пачки SLA-записей. | 100 |
Параметры конкретных LDAP, IMAP и SMTP-подключений задаются в интерфейсе системы. До их включения обеспечьте сетевые доступы, перечисленные в системных требованиях.