Skip to content

Главные файлы настроек

Webim Server читает основные настройки из файлов main.ini и main.json, а также из дополнительных файлов в каталогах main.ini.d и main.json.d. Эти источники объединяются в итоговую конфигурацию при старте компонентов.

Расположение файлов

По умолчанию главные файлы настроек расположены в каталоге /etc/webim/:

  • /etc/webim/main.ini

  • /etc/webim/main.ini.d/*.ini

  • /etc/webim/main.json

  • /etc/webim/main.json.d/*

Имена main.ini, main.json, а также каталогов main.ini.d и main.json.d заданы в коде и не могут быть изменены настройками.

  • В main.ini.d можно размещать один или несколько файлов с любыми именами, но с расширением .ini.

  • В main.json.d можно размещать .json-файлы, однако для совместимости всех компонентов рекомендуется использовать файл main.json.d/main.json (см. ниже).

Форматы файлов

main.ini

main.ini — ini-подобный файл с плоской структурой ключ=значение.

Пример:

service_user=service
service_password=secret
secure_internal_requests=true
nginx_upload_size=10

Массивы задаются через суффикс [] (каждое значение — отдельной строкой):

my_ips[]=192.168.10.10
my_ips[]=192.168.10.20
frontend_ips[]=192.168.10.10

Примечания:

  • Секции вида [section] в ini-стиле не используются (в части компонентов такие строки будут игнорироваться).

  • Комментарии в строках допускаются (обычно через ;, #), но рекомендуется не смешивать комментарии и значения в одной строке.

main.json

main.json — JSON-файл, который поддерживает древовидную (вложенную) структуру настроек.

Пример:

{
  "email_method_by_email_type": {
    "default": "smtp",
    "php": "smtp",
    "default_notification": "mailgun"
  },
  "password_hashers": [
    {"id": "md5-legacy", "algo": "md5", "salt": "legacy-salt"},
    {"id": "sha256", "algo": "sha256", "salt": "new-salt"}
  ],
  "encryption": [
    {"id": "fernet-default", "algo": "fernet-pbkdf2", "password": "dev-password", "salt": "dev-salt"}
  ],
  "partner_settings": {
    "default": {"domain": "webim.ru"},
    "partner1": {"domain": "example.com"}
  }
}

Как собираются настройки из main.ini/main.json и каталогов *.d

Какие файлы читаются

Компоненты Webim Server читают настройки из следующих путей:

  • main.ini:

    • /etc/webim/main.ini

    • все файлы *.ini в /etc/webim/main.ini.d/

  • main.json:

    • /etc/webim/main.json

    • файлы в /etc/webim/main.json.d/ (см. совместимость ниже)

Если какой-либо из файлов отсутствует, он просто пропускается. Наличие каждого отдельного файла (например, только main.ini или только main.json) само по себе не является обязательным, но итоговая конфигурация должна содержать параметры, необходимые используемым компонентам и включённым функциям.

Правила объединения (merge)

При объединении настроек используются следующие правила:

  • Скалярные значения (строки/числа/булевы значения) при совпадении ключа переопределяются значением из более позднего источника.

  • Словари/объекты (map/dict) при совпадении ключа объединяются рекурсивно по ключам.

  • Списки/массивы при совпадении ключа конкатенируются (элементы добавляются в конец).

Важно:

  • Порядок чтения файлов внутри каталогов main.ini.d и main.json.d не следует считать гарантированным. Не рекомендуется полагаться на «перезапись» одного и того же ключа в разных файлах внутри одного каталога. Если требуется предсказуемое поведение — храните конкретный ключ в одном месте.

Совместимость main.json.d между компонентами

Часть компонентов (в частности, некоторые Python-утилиты) исторически читает только файл:

  • /etc/webim/main.json.d/main.json

Другие компоненты (например, Admin Backend и PHP-часть) могут читать все *.json в каталоге main.json.d.

Рекомендация: чтобы настройки из main.json.d гарантированно подхватывались всеми компонентами, используйте файл:

  • /etc/webim/main.json.d/main.json

А дополнительные .json-файлы в main.json.d применяйте только если вы точно понимаете, какие компоненты их читают в вашей инсталляции.

Обязательные параметры

Наличие конкретных «обязательных» параметров зависит от режима работы (hosted/облако), подключённых компонентов и включённых интеграций.

При этом Webim Server в типовой инсталляции ожидает, что в суммарной конфигурации (из всех источников) будут присутствовать ключевые параметры:

  • параметры сервисной авторизации для внутренних запросов (например, service_user, service_password, service_password_salt);

  • сетевые параметры (например, my_ips[], frontend_ips[]) — если они используются вашей схемой развёртывания;

  • пути к рабочим директориям (например, ready_images_dir, web_cache_dir, а также пути к данным аккаунтов).

Если включены дополнительные компоненты/интеграции, становятся обязательными и соответствующие параметры (например, mq_* для RabbitMQ, параметры Mailgun/SMTP для почты и т. п.).

Параметры

Ниже перечислены наиболее используемые параметры, которые могут встречаться в главных файлах настроек. Для main.json параметры задаются соответствующими ключами/объектами JSON.

Параметр Где задаётся Обязательность Тип Пример Значение
service_user main.ini Да строка service Логин сервисного пользователя для внутренних запросов (Basic Auth).
service_password main.ini Да строка secret Пароль сервисного пользователя для внутренних запросов (Basic Auth).
service_password_salt main.ini Да строка some_salt Соль, используемая в механизмах сервисной авторизации (в т.ч. при проверке пароля сервисного доступа).
accounts-base-local-dir main.ini Да строка (путь) /var/pro/client-data/cd Локальный путь к директории, где хранятся данные/конфиги учётных записей.
my_ips[] main.ini Зависит список строк (IP/CIDR) 192.168.10.10 IP-адреса/подсети, на которых работает Webim Server.
frontend_ips[] main.ini Зависит список строк (IP/CIDR) 192.168.10.10 IP-адреса, на которых расположен фронтэнд Webim Server.
online_dir main.ini Зависит строка (путь) /var/cache/webim Директория для хранения онлайн-ресурсов и файлов.
web_cache_dir main.ini Зависит строка (путь) /var/cache/webim Директория для кэша Webim Server.
ready_images_dir main.ini Да строка (путь) /var/cache/webim Директория для сохранения обработанных изображений.
logged_operators_dir main.ini Зависит строка (путь) /var/log/webim/operators Директория для служебных файлов, связанных с логированием активности операторов (если используется).
secure_internal_requests main.ini Нет bool true Требование защищённых внутренних запросов (true — HTTPS, false — HTTP).
nginx_upload_size main.ini Нет int 10 Максимальный размер загружаемого файла (МБ).
blocked_notify_email main.ini Нет строка (email) somemail@example.com Адрес для отправки уведомлений о блокировках.
server_monitoring_email main.ini Нет строка (email) somemail@example.com Адрес для уведомлений, связанных с мониторингом сервера.
service_notifications_emails main.ini Зависит строка (email) somemail@example.com Адрес(а) для отправки сервисных уведомлений (используется отдельными сервисами, например биллингом).
webim_support_email main.ini Нет строка (email) support@example.com Адрес службы поддержки.
mq_host main.ini Зависит строка rabbitmq Хост RabbitMQ.
mq_port main.ini Зависит int 5672 Порт RabbitMQ.
mq_username main.ini Зависит строка user Имя пользователя RabbitMQ.
mq_password main.ini Зависит строка password Пароль RabbitMQ.
mailgun_key main.ini Зависит строка key-ExamPle3xAMPle API-ключ Mailgun (исторический параметр).
channels_email_mailgun_api_key_v2 main.ini Зависит строка 3f9a1d... Новый API-ключ Mailgun для исходящих запросов. Указывать без префикса key-.
channels_email_mailgun_webhook_signing_key main.ini Зависит строка 6c72bb... Ключ проверки подписи вебхуков Mailgun (timestamp/token/signature).
mailgun_dev_domain main.ini Зависит строка (домен) sandbox1234.mailgun.org Домен Mailgun для dev-режима.
hostedmode main.ini Зависит bool true Режим работы: true — hosted, false — облако.
hostedmode_smtp_server main.ini Зависит строка smtp.mailgun.org SMTP-сервер для hosted-режима (legacy-настройки).
hostedmode_smtp_port main.ini Зависит int 4242 Порт SMTP-сервера (legacy-настройки).
hostedmode_smtp_username main.ini Зависит строка user Логин SMTP (legacy-настройки).
hostedmode_smtp_password main.ini Зависит строка pass Пароль SMTP (legacy-настройки).
hostedmode_smtp_encryption main.ini Зависит enum tls Шифрование SMTP: none, ssl, tls (legacy-настройки).
hostedmode_smtp_auth_mode main.ini Зависит enum login Аутентификация SMTP: login, plain, cram-md5, либо пустое значение (legacy-настройки).
hostedmode_smtp_timeout main.ini Зависит int 30 Таймаут SMTP (секунды, legacy-настройки).
hostedmode_smtp_skip_ssl_check main.ini Нет bool true Игнорирование проверки SSL/TLS сертификатов (legacy-настройки).
https_domains[] main.ini Нет список строк (домен) example.com Список доменов, для которых включается логика HTTPS (если используется).
channels_proxy_base_url main.ini Зависит строка (URL) https://api.proxyserver.com Базовый URL сервиса прокси каналов.
channels_proxy_api_url main.ini Зависит строка (URL) https://proxyserver.com URL proxy API (создание/удаление канала для hosted и т. п.).
channels_proxy_api_secret_key main.ini Зависит строка s3cr3t Секретный ключ для операций с кастомными каналами через proxy API.
channels_apple_chat_encrypted_data_length_check_disabled main.ini Нет bool false Включение/отключение проверки длины зашифрованных сообщений Apple Messages for Business.
docker_sub_net main.ini Нет строка (CIDR) 172.195.0.0/28 Подсеть для Docker (если используется).
browscap-path main.ini Нет строка (путь) /var/pro/browscap/browscap.ini Путь к browscap.ini для определения возможностей браузера.
browscap-csv-path main.ini Нет строка (путь) /var/pro/browscap/browscap.csv Путь к browscap в формате CSV.
nginx_geosearch main.ini Нет bool false Включение геопоиска на стороне NGINX (если используется).
python_geosearch main.ini Нет bool true Включение геопоиска на стороне Python (если используется).
registration_mail_jira main.ini Нет строка (email) somemail@example.com Адрес для уведомлений о регистрации (если используется).
email_method_by_email_type main.json Нет объект (map) {"default":"smtp","php":"mailgun"} Выбор метода отправки почты по типу письма. Ключи — тип письма или default, значения — smtp или mailgun.
password_hashers main.json Зависит список объектов см. пример выше Список поддерживаемых алгоритмов хеширования паролей операторов. Элемент: {id, algo, salt}. Если параметр не задан, используется legacy-логика.
encryption main.json Нет список объектов см. пример выше Настройки расшифровки значений формата encrypted:<id>:<cipher>. Поддерживается algo=fernet-pbkdf2 (PBKDF2-SHA256). Элемент: {id, algo, password, salt}.
partner_settings main.json Зависит объект (map) см. пример выше Настройки партнёров (например, домены). Обычно содержит ключ default и опциональные ключи партнёров.

Последнее обновление страницы: 30 января 2026 г.