Оформление
Переменные окружения
Полный список переменных окружения: что делает каждая, значение по умолчанию, обязательна ли она и является ли секретом.
Как читать таблицу
Столбец «Обязательна» означает, что без переменной приложение либо не запустится, либо будет работать неверно. Столбец «Секрет» помечает значения, которые нельзя показывать и нельзя хранить в открытом виде.
Сеть и адреса
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
PORT | Порт, на котором слушает API | 3000 | нет | нет |
HOST | Адрес привязки API | 0.0.0.0 | нет | нет |
PUBLIC_API_URL | Внешний адрес платформы. Используется для сборки адресов слоя S3, предпросмотра файлов и внутреннего адреса маскирования | Собирается из PUBLIC_HOST и PORT | Фактически да при работе в контейнерах | нет |
PUBLIC_HOST | Хост для сборки PUBLIC_API_URL, если он не задан. Значения 0.0.0.0 заменяются на 127.0.0.1 | Значение HOST | нет | нет |
CORS_ORIGINS | Список разрешённых источников | пусто | нет | нет |
PUBLIC_API_URL должен быть доступен серверам MCP
Этот адрес попадает внутрь ключа доступа, который платформа выдаёт серверам MCP. Если сервер MCP работает в отдельном контейнере, адрес 127.0.0.1 для него бесполезен.
CORS_ORIGINS не действует
Переменная читается в настройки, но нигде не применяется. Фактически платформа отражает любой источник запроса. Ограничение источников нужно делать на обратном прокси.
Секреты и сессии
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
SESSION_SECRET | Главный секрет платформы. На нём строится шифрование ключей провайдеров, токенов MCP, секрета ONLYOFFICE и персональных данных, а также подписи ключей доступа к файлам и предпросмотру | dev-session-secret-change-me | Да в production | Да |
SESSION_TTL_DAYS | Срок жизни сессии входа в днях | 14 | нет | нет |
Смена SESSION_SECRET
Значение по умолчанию годится только для разработки. При смене секрета все ранее зашифрованные значения станут нечитаемыми: ключи провайдеров, токены MCP, словари замен персональных данных.
База данных
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
DATABASE_URL | Строка подключения к PostgreSQL | нет | Да, если не заданы POSTGRES_* | Да |
POSTGRES_HOST | Хост базы. Используется, когда DATABASE_URL не задан | нет | По условию | нет |
POSTGRES_USER | Пользователь базы | postgres | По условию | нет |
POSTGRES_PASSWORD | Пароль базы | password | По условию | Да |
POSTGRES_DB | Имя базы | agent_platform | По условию | нет |
POSTGRES_PORT | Порт базы | 5432 | нет | нет |
Чтобы собрать подключение из отдельных переменных, нужны все четыре: хост, пользователь, пароль и имя базы.
Первичное наполнение
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
SEED_ADMIN_LOGIN | Логин администратора, создаваемого при наполнении базы | admin | нет | нет |
SEED_ADMIN_PASSWORD | Его пароль | admin | нет | Да |
Повторное наполнение сбрасывает пароль
Если учётная запись с таким логином уже есть, наполнение перезапишет ей пароль, роль, состояние и имя.
Файлы и слой S3
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
SESSION_FILES_DIR | Каталог для содержимого файлов чатов. Приводится к абсолютному пути | .data/session-files | нет | нет |
CHAT_S3_BUCKET | Имя единственной логической корзины | chat-files | нет | нет |
CHAT_S3_TOKEN_TTL_SEC | Срок жизни ключа доступа к файлам чата, в секундах | 900 | нет | нет |
PREVIEW_TOKEN_TTL_SEC | Срок жизни ключа предпросмотра HTML, в секундах | 1200 | нет | нет |
Runtime
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
RUNTIME_URL | Адрес Runtime, по которому его вызывает API | http://127.0.0.1:3001 | нет | нет |
RUNTIME_HOST | Адрес привязки Runtime | 127.0.0.1 | нет | нет |
RUNTIME_PORT | Порт Runtime | 3001 | нет | нет |
RUNTIME_PROCESS_ROLE | Служебная метка. Runtime сам выставляет её рабочим процессам | не задана | нет | нет |
RUNTIME_PROCESS_ROLE вручную не задают
Если Runtime увидит эту переменную при старте, он завершится с ошибкой. Она предназначена только для внутреннего использования.
Персональные данные
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
PII_MODEL_ID | Модель распознавания сущностей для поиска персональных данных | Xenova/bert-base-multilingual-cased-ner-hrl | нет | нет |
PII_MODEL_CACHE_DIR | Каталог кэша этой модели | Стандартный каталог библиотеки | нет | нет |
Инструменты MCP
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
MCP_DISCOVER_TIMEOUT_MS | Таймаут подключения и получения списка инструментов при сборке каталога | 8000 | нет | нет |
MCP_CATALOG_TTL_MS | Срок жизни кэша каталога инструментов | 60000 | нет | нет |
MCP_TOOL_CALL_TIMEOUT_MS | Таймаут вызова инструмента | 30000 | нет | нет |
MCP_GATEWAY_SESSION_TTL_MS | Срок жизни неактивной сессии внешнего шлюза MCP | 1800000 | нет | нет |
ONLYOFFICE
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
ONLYOFFICE_URL | Начальный адрес Document Server | http://127.0.0.1:8000 | нет | нет |
ONLYOFFICE_PLATFORM_URL | Начальный адрес платформы для Document Server | Значение PUBLIC_API_URL | нет | нет |
ONLYOFFICE_TOKEN_TTL_SEC | Начальный срок жизни ключа доступа к файлу, от 60 до 86400 | 1200 | нет | нет |
ONLYOFFICE_PORT | Порт контейнера Document Server в поставке для разработки | 8000 | нет | нет |
ONLYOFFICE_CONFIG_DIR | Каталог с конфигурацией Document Server | ./onlyoffice-config | нет | нет |
Эти переменные только для первого запуска
Значения переменных ONLYOFFICE записываются в настройки платформы один раз, при создании строки настроек. Дальше их меняют в разделе администрирования, а не в переменных окружения.
Внешние агенты
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
EACP_TIMEOUT_MS | Таймаут обычного обращения к внешнему агенту | 15000 | нет | нет |
EACP_EXPORT_TIMEOUT_MS | Отдельный, больший таймаут на выгрузку данных агента | 120000 | нет | нет |
MANAGED_AGENT_UI_MANIFEST_TTL_SECONDS | Срок жизни кэша описания разделов, которые объявляет агент | 30 | нет | нет |
MANAGED_AGENT_UI_EXPORT_MAX_BYTES | Предел размера выгрузки раздела агента | 33554432 | нет | нет |
MANAGED_AGENT_UI_EMBED_ENABLED | Разрешить агенту объявлять встроенные страницы | false | нет | нет |
MANAGED_AGENT_LLM_GATEWAY_URL | Адрес OpenAI-совместимого шлюза, который платформа сообщает агенту | Адрес платформы плюс /v1 | нет | нет |
Токен агента переменной не задаётся
Токен внешнего агента вводится в разделе администрирования и хранится в базе в зашифрованном виде. Переменной окружения для него нет.
Интерфейс
| Переменная | Что делает | По умолчанию | Обязательна | Секрет |
|---|---|---|---|---|
VITE_API_URL | Адрес API для интерфейса. Пустое значение означает тот же домен | пусто | нет | нет |
VITE_DEV_PROXY_TARGET | Адрес, куда проксирует запросы сервер разработки | http://127.0.0.1:3000 | нет | нет |
VITE_BASE_URL | Базовый путь, если интерфейс раздаётся не с корня домена | / | нет | нет |
Что настройками окружения не меняется
Часть значений заложена в код и переменными не управляется:
| Значение | Сколько |
|---|---|
| Предел шагов в одном запуске | 60 |
| Максимальный размер файла | 1 ГиБ |
| Таймаут загрузки файла | 1 час |
| Интервал проверки очереди | 2,5 секунды |
| Стоимость хеширования пароля | 10 |
| Таймаут готовности рабочего процесса | 60 секунд |
| Таймаут подключения к серверу MCP из Runtime | 15 секунд |
Лимиты Рантайма, общие настройки платформы и настройки маскирования персональных данных хранятся в базе данных и меняются через интерфейс, а не переменными окружения.