Skip to content

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

Основная конфигурация развёртывания находится в файле .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/AD192.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_KEYBase64-ключ шифрования настроек.результат 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-подключений задаются в интерфейсе системы. До их включения обеспечьте сетевые доступы, перечисленные в системных требованиях.

Логотип ЛЕГИОНЛЕГИОН