Перейти к основному содержимому

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

Этот документ был подготовлен при помощи ИИ

Текст может содержать неточности, устаревшие данные или технические ошибки. Пожалуйста, проверяйте критически важную информацию перед использованием.

Compose-файл берёт конфигурацию из соседнего файла .env. Запуская контейнеры вручную, передайте им те же переменные: в архиве с приложением каждый набор хранится в своём файле .env.example.

Со значениями из репозитория docker compose up поднимается без изменений. Для промышленной установки задайте свои значения всем секретам: OAUTH2_CLIENT_SECRET, DATABASE_PASSWORD, REDIS_PASSWORD, KEYCLOAK_ADMIN_PASSWORD, KEYCLOAK_DATABASE_PASSWORD, SMTP_PASSWORD и OPENAI_API_KEY. Сгенерируйте их сами, не кладите файл .env в систему контроля версий и смените значения до того, как установка станет доступна из сети.

URL-адреса

По этим адресам браузер переходит сам, поэтому указывайте публичные адреса вашей установки, а не имена контейнеров.

ПеременнаяНазначениеПо умолчанию
APPLICATION_URLПубличный URL приложения — такой, какой набирают пользователиhttp://localhost:8080
API_GATEWAY_URLПубличный URL API-шлюза; по нему обращаются интерфейс и клиенты APIhttp://localhost:8080
METAMODEL_URLБазовый URL метамоделей. Адрес метамодели — METAMODEL_URL/scope/project/version/model; по нему модели ссылаются на свою метамодель, поэтому менять его нельзяhttp://localhost:8080
FRONTEND_PORTПорт хоста, на котором публикуется интерфейс8080
ABOUT_URLСтраница с информацией о продукте, ссылка в правом верхнем углу. Оставьте пустым, чтобы скрыть ссылкупусто
DOCUMENTATION_URLСайт документации, ссылка в правом верхнем углу. Оставьте пустым, чтобы скрыть ссылкупусто
APPLICATIONS_URLПортал приложений, ссылка в правом верхнем углу. Оставьте пустым, чтобы скрыть ссылкупусто
LANGUAGESЯзыки интерфейса: список кодов через запятую в том порядке, в котором они показываются в меню пользователяen,fr,ru

Сессии и CORS

ПеременнаяНазначениеПо умолчанию
SESSION_TIMEOUTВремя жизни сессии в Redis. Задайте его таким же, как SSO Session Idle в realm Keycloak30d
ALLOWED_ORIGINSДополнительные origin, которым разрешено обращаться к API-шлюзу, помимо APPLICATION_URL, ABOUT_URL и APPLICATIONS_URLпусто
ALLOWED_ORIGIN_PATTERNSДополнительные шаблоны origin, которым разрешено обращаться к API-шлюзупусто

OAuth 2.0

Первые три адреса открывает браузер, поэтому они должны быть публичными. Последние три вызывает сам API-шлюз, и они могут быть внутренними адресами контейнеров.

ПеременнаяНазначениеПо умолчанию
OAUTH2_ISSUER_URLАдрес издателя realmhttp://localhost:8181/realms/architeezy
OAUTH2_AUTHORIZATION_URLАдрес авторизации, на который браузер перенаправляется при входе<issuer>/protocol/openid-connect/auth
OAUTH2_ACCOUNT_URLСтраница учётной записи, открывается из меню пользователя<issuer>/account/
OAUTH2_CLIENT_IDКонфиденциальный клиент, под которым входит приложениеarchiteezy
OAUTH2_CLIENT_SECRETСекрет этого клиента. Должен совпадать с секретом в Keycloakзадайте своё значение
OAUTH2_API_CLIENT_IDПубличный клиент для внешних клиентов APIarchiteezy-api
OAUTH2_TOKEN_URLАдрес выдачи токенов, вызывается самим приложениемhttp://keycloak:8080/realms/architeezy/protocol/openid-connect/token
OAUTH2_JWK_SET_URLНабор ключей, по которому шлюз и бэкенд проверяют токеныhttp://keycloak:8080/realms/architeezy/protocol/openid-connect/certs
OAUTH2_USER_INFO_URLАдрес сведений о пользователе, вызывается самим приложениемhttp://keycloak:8080/realms/architeezy/protocol/openid-connect/userinfo

База данных

Контейнер db при первом запуске создаёт базу данных приложения с DATABASE_USERNAME и DATABASE_PASSWORD. С этой же парой к ней подключается бэкенд.

ПеременнаяНазначениеПо умолчанию
DATABASE_USERNAMEВладелец базы данных architeezyarchiteezy
DATABASE_PASSWORDПароль этого пользователязадайте своё значение
DATABASE_PORTПорт хоста, на котором публикуется PostgreSQL5441

Redis

ПеременнаяНазначениеПо умолчанию
REDIS_PASSWORDПароль, который требует Redis и предъявляет API-шлюззадайте своё значение
REDIS_PORTПорт хоста, на котором публикуется Redis6382

SMTP

Почта необязательна: оставьте всю группу пустой — приложение будет работать без отправки писем.

ПеременнаяНазначениеПо умолчанию
SMTP_HOSTХост почтового серверапусто
SMTP_PORTПорт почтового серверапусто
SMTP_PROTOCOLПочтовый протокол, например smtpпусто
SMTP_USERNAMEУчётная запись для аутентификациипусто
SMTP_PASSWORDПароль этой учётной записизадайте своё значение
SMTP_SSL_ENABLEDПодключаться ли по SSLпусто
SMTP_STARTTLS_ENABLEDПереводить ли соединение в защищённый режим по STARTTLSпусто
SMTP_MAIL_FROMАдрес отправителя исходящей почтыпусто
SMTP_MAIL_TOАдрес, на который пишет приложениепусто

LLM

ИИ-ассистент работает с любым сервисом, поддерживающим протокол OpenAI. По умолчанию он обращается к модели, развёрнутой на хост-машине.

ПеременнаяНазначениеПо умолчанию
OPENAI_URLБазовый URL API, совместимого с OpenAIhttp://host.docker.internal:11434/v1
OPENAI_API_KEYКлюч API, передаваемый с каждым запросомзадайте своё значение
OPENAI_MODELНазвание моделиqwen3:4b
OPENAI_TEMPERATUREТемпература сэмплирования0

Keycloak

ПеременнаяНазначениеПо умолчанию
KEYCLOAK_URLПубличный URL Keycloak; он же задаёт его имя хостаhttp://localhost:8181
KEYCLOAK_PORTПорт хоста, на котором публикуется Keycloak8181
KEYCLOAK_ADMIN_USERNAMEПервоначальный администратор realm masteradmin
KEYCLOAK_ADMIN_PASSWORDПароль этого администраторазадайте своё значение
KEYCLOAK_DATABASE_USERNAMEВладелец базы данных keycloakkeycloak
KEYCLOAK_DATABASE_PASSWORDПароль этого пользователязадайте своё значение
KEYCLOAK_DATABASE_PORTПорт хоста, на котором публикуется база данных Keycloak5444

Ещё два значения складываются из переменных выше и уходят в Keycloak при импорте realm: URI перенаправления API_GATEWAY_URL/login/oauth2/code/keycloak и веб-origin APPLICATION_URL. Измените любой из этих URL — соответствующую настройку клиента придётся поправить в Keycloak.