Конфигурация серверной части
Расположение
Файл конфигурации серверной части находится по пути: ./conf/config.toml
Формат файла
Конфигурационный файл разбит на разделы и подразделы.
Обозначение начала раздела конфигурации:
#------------------------------------------------------------------------------
#----------------- Настройки авторизации и аутентификации --------------------
#------------------------------------------------------------------------------
Обозначение начала подраздела конфигурации:
Название переменных в конфигурационном файле должны быть уникальными.
Важно
Если в файле встречаются две одинаковые записи, применяется последняя считанная (чтение выполняется сверху вниз).
Переменные могут состоять из следующих символов:
- строчные латинские буквы (a-z);
- прописные латинские буквы (A-Z);
- цифры (0-9)
- символ подчеркивания (_);
- символ тире (-).
Оформление комментария
Комментарии к переменным начинаются с 35-го символа строки. Если значение переменной превышает 35 символов, комментарий переносится на следующую строку.
Локализация
Язык интерфейса задается в соответствии со стандартом ISO 639-1 (двухбуквенные коды).
Параметр locale в разделе Общие настройки, определяет язык, используемый по умолчанию.
На данный момент поддерживаются 2 языка: ru и en
Переменные окружения
При запуске приложение проверяет наличие переменных окружения. Если переменная окружения определена, ее значение имеет приоритет над значением, указанным в конфигурационном файле.
Чтобы значение из конфигурационного файла можно было переопределить через переменную окружения, имя переменной должно начинаться с префикса
VISMIND_.
Например: переопределить название приложения
В конфигурационном файле параметр app_name задает название приложения. Чтобы переопределить его через окружение, необходимо создать переменную VISMIND_APP_NAME.
При запуске приложение:
- использует значение переменной окружения
VISMIND_APP_NAME, если она задана; - в противном случае — значение
app_nameиз конфигурационного файла.
Если переменной окружения не задать значение конфигурации, будут использоваться
значения по умолчанию.
Параметры Gunicorn также могут быть заданы через переменные окружения. Для этого имя переменной должно начинаться с префикса
vismind_gunicorn_.
Переменные окружения также описаны в разделе Переменные_окружения.md
Параметр workers может принимать значение auto.
Пример: vismind_gunicorn_workers=auto
В этом случае количество воркеров рассчитывается по формуле: (количество ядер * 2) + 1 (формула взята из
документации GUnicorn).
upd. (обновлено 2023-06-22): В связи с нестабильной работой Gunicorn при автоматическом расчете, количество воркеров рекомендуется задавать вручную, используя ту же формулу.
Пример конфигурации для Docker Compose
ППо умолчанию платформа запускается с использованием базы данных репозитория, которая создается при установке в контейнере vismind-postgres.
Вся конфигурация серверной части может быть переопределена через переменные окружения. Ниже приведен минимальный набор переменных,
необходимых для настройки подключения к базе данных и параметров аутентификации.
Переменные окружения задаются для контейнера vismind-backend в файле ./distr/docker-compose.yaml:
Пример docker-compose.yml
...
vismind-backend:
container_name: vismind-backend
image: vismind-backend:0.36
environment:
# repository
- VISMIND_REPOSITORY_HOST=vismind-postgresql
- VISMIND_REPOSITORY_PORT=5432
- VISMIND_REPOSITORY_NAME=repo_vismind
- VISMIND_REPOSITORY_USER_LOGIN=
- VISMIND_REPOSITORY_USER_PASSWORD=
# redis
- VISMIND_REDIS_HOST=vismind-redis
- VISMIND_REDIS_PORT=6379
- VISMIND_REDIS_DB=1
- VISMIND_REDIS_PASSWORD=
# LDAP
- VISMIND_LDAP_ALLOW_LOGIN=1
- VISMIND_LDAP_HOST=
- VISMIND_LDAP_PORT=389
- VISMIND_LDAP_USE_SSL=0
- VISMIND_LDAP_USER_HOST=int.bittechno.ru
- VISMIND_LDAP_DOMAIN_COMPONENT=
- VISMIND_LDAP_USERS_PARTITION=
- VISMIND_LDAP_USERNAME=sAMAccountName
- VISMIND_LDAP_GROUPS=memberOf
- VISMIND_LDAP_FIRST_NAME=givenName
- VISMIND_LDAP_LAST_NAME=sn
- VISMIND_LDAP_EMAIL=mail
- VISMIND_LDAP_SYNC_GROUP_WITH_AD=1
- VISMIND_LDAP_DEFAULT_GROUP=vismindUsers
# kerberos
- VISMIND_KERBEROS_ALLOW_LOGIN=1
- VISMIND_KERBEROS_SYSTEM_USER_LOGIN=
- VISMIND_KERBEROS_SYSTEM_USER_PASSWORD=
volumes:
- ./files:/app/files
- ./kerberos_certs/krb5.conf:/etc/krb5.conf:ro
- ./kerberos_certs/krb5.keytab:/etc/krb5.keytab:ro
depends_on:
- vismind-redis
- vismind-postgresql
networks:
- vismind-nt
restart: unless-stopped
...
Подключение внешних сервисов
Если требуется использовать внешние экземпляры Redis или PostgreSQL, необходимо указать параметры подключения к ним через переменные окружения.
Настройка доменной авторизации
Авторизация с использованием доменных учетных записей (включая сквозную) по умолчанию включена на стороне клиента, однако для полноценной работы требуется активировать соответствующие настройки на серверной стороне.
Для включения необходимо:
1. Внести изменения в конфигурацию в файле ./distr/docker-compose.yaml;
2. Выполнить перезапуск приложения.
$ docker compose -f ./distr/docker-compose.yaml down && docker compose -f ./distr/docker-compose.yaml up -d
Значения по умолчанию не заданы для соединений с внешними службами (postgres, redis, ldap)
PostgreSQL 15 repository
Определяет параметры подключения к БД репозитория приложения.
Настройки подключения к БД
VISMIND_REPOSITORY_HOST # имя сервера PostgreSQL
VISMIND_REPOSITORY_PORT # порт, по умолчанию 5432
VISMIND_REPOSITORY_NAME # имя БД репозитория платформы
VISMIND_REPOSITORY_USER_LOGIN # логин пользователя для доступа к репозиторию
VISMIND_REPOSITORY_USER_PASSWORD # пароль пользователя для доступа к репозиторию
База данных не создается заранее - ее развертывание выполняется с помощью скриптов в процессе установки приложения.
Перенос базы данных на другой сервер
При необходимости переноса можно:
1. Свернуть БД из контейнера vismind-postgresql;
2. Перенести ее на целевой сервер;
3. Изменить параметры подключения в конфигурации;
4. Перезапустить приложение.
Redis in-memory database
Определяет параметры подключения к Redis, который используется для хранения состояний и выполнения оперативных (in-memory) расчетов приложения.
Настройки подключения к БД
БД Редис не хранит свое состояние, поэтому все временные данные, хранящиеся в ней, будут удалены при остановке контейнера.
LDAP Active Directory
Параметры подключения к серверам Active Directory для авторизации с использованием доменных учетных записей приведены ниже:
Настройки подключения к LDAP
VISMIND_LDAP_ALLOW_LOGIN # Использовать LDAP
VISMIND_LDAP_HOST # Адрес сервера LDAP. Можно указывать множество хостов через разделитель <;> (точка с запятой)
VISMIND_LDAP_PORT # Порт сервера LDAP
VISMIND_LDAP_USE_SSL # Использовать ssl
VISMIND_LDAP_GET_INFO # Чтение информации о сервере,
# возможные значения:
# NONE
# DSA
# SCHEMA
# ALL
VISMIND_LDAP_CLIENT_STRATEGY # Стратегии соединения,
# возможные значения:
# SYNC
# ASYNC
# LDIF
# RESTARTABLE
# REUSABLE
# SAFE_SYNC
# SAFE_RESTARTABLE
VISMIND_LDAP_AUTHENTICATION # Аутентификация, возможные значения:
# ANONYMOUS
# SIMPLE
# SASL
# NTLM
VISMIND_LDAP_USER_HOST # Наименование домена (обязательный)
VISMIND_LDAP_DOMAIN_COMPONENT # Домен, в котором записан пользователь. Пример: dc=int,dc=bittechno,dc=ru
VISMIND_LDAP_USERS_PARTITION # Адрес до раздела с пользователями. Пример: ou=Service Accounts,ou=Enterprise
# (если оставить пустой, то поиск будет происходить по всему домену)
# Атрибуты LDAP для использования при создании пользователя в платформе
VISMIND_LDAP_USERNAME # Логин пользователя
VISMIND_LDAP_GROUPS # Группы, которые надо проверить для добавления в группы
VISMIND_LDAP_FIRST_NAME # Имя пользователя
VISMIND_LDAP_LAST_NAME # Фамилия пользователя
VISMIND_LDAP_EMAIL # Почта пользователя
При использовании LDAP пользователь считается внешним по отношению к платформе. Атрибуты такого пользователя (получаемые из LDAP при подключении) не могут быть изменены внутри платформы.
При первом входе внешнего пользователя в платформе автоматически создается учетная запись, которая заполняется данными
из LDAP. В соответствии с настройками по умолчанию, новый пользователь добавляется в группу «Администраторы».
Доступ к конфигурации в коде
Для использования в приложении настроек конфигурации, необходимо импортировать переменную SETTINGS.
Можно обращаться к разделу и переменной
Можно обращаться к разделу, к подразделу и переменной