Параметры окружения
OSMI-AI поддерживает различные параметры окружения для настройки вашей инстанции. Их можно указать в файле .env, который находится в папке packages/server. Обратитесь к файлу .env. example для примера.
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| PORT | Порт HTTP, на котором работает OSMI-AI | Число | 3000 |
| OSMI_AI_FILE_SIZE_LIMIT | Максимальный размер файла при загрузке | Строка | 50mb |
| NUMBER_OF_PROXIES | Прокси для ограничения скорости (Rate Limit Proxy) | Число | |
| CORS_ORIGINS | Разрешённые origin для всех кросс-доменных HTTP-запросов | Строка | |
| IFRAME_ORIGINS | Разрешённые origin для вставки через iframe src | Строка | |
| SHOW_COMMUNITY_NODES | Отображать nodes, созданные сообществом | Булев: true или false | |
| DISABLED_NODES | Список отключённых node-ов через запятую | Строка |
Для базы данных
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| DATABASE_TYPE | Тип базы данных для хранения данных OSMI-AI | Enum строка: sqlite, mysql, postgres | sqlite |
| DATABASE_PATH | Место, где сохраняется база данных (если DATABASE_TYPE = sqlite) | Строка | your-home-dir/.OSMI-AI |
| DATABASE_HOST | URL-адрес хоста или IP-адрес (если DATABASE_TYPE ≠ sqlite) | Строка | |
| DATABASE_PORT | Порт базы данных (если DATABASE_TYPE ≠ sqlite) | Строка | |
| DATABASE_USER | Имя пользователя базы данных (если DATABASE_TYPE ≠ sqlite) | Строка | |
| DATABASE_PASSWORD | Пароль базы данных (если DATABASE_TYPE ≠ sqlite) | Строка | |
| DATABASE_NAME | Имя базы данных (если DATABASE_TYPE ≠ sqlite) | Строка | |
| DATABASE_SSL | Требуется ли SSL для базы данных (если DATABASE_TYPE ≠ sqlite) | Булев: true или false | false |
Для хранения данных
OSMI-AI по умолчанию сохраняет следующие файлы в локальную папку.
- Файлы, загруженные через Загрузчики документов / База документов
- Изображения/аудио, загруженные из чата
- Изображения/файлы из Assistant
- Файлы из API Vector Upsert
Пользователь может указать переменную STORAGE_TYPE, чтобы использовать AWS S3, Google Cloud Storage или локальный путь.
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| STORAGE_TYPE | Тип хранилища для загруженных файлов. По умолчанию — локальное | Enum строка: s3, gcs, local | local |
| BLOB_STORAGE_PATH | Локальный путь к папке, где будут храниться загруженные файлы при STORAGE_TYPE = local | Строка | your-home-dir/.OSMI-AI/storage |
| S3_STORAGE_BUCKET_NAME | Имя бакета для хранения файлов при STORAGE_TYPE = s3 | Строка | |
| S3_STORAGE_ACCESS_KEY_ID | Ключ доступа AWS | Строка | |
| S3_STORAGE_SECRET_ACCESS_KEY | Секретный ключ AWS | Строка | |
| S3_STORAGE_REGION | Регион для бакета S3 | Строка | |
| S3_ENDPOINT_URL | Пользовательский URL для S3 (опционально) | Строка | |
| S3_FORCE_PATH_STYLE | Использовать принудительный стиль пути S3 (опционально) | Булев | false |
| GOOGLE_CLOUD_STORAGE_CREDENTIAL | Ключ аккаунта службы Google Cloud | Строка | |
| GOOGLE_CLOUD_STORAGE_PROJ_ID | ID проекта Google Cloud | Строка | |
| GOOGLE_CLOUD_STORAGE_BUCKET_NAME | Название бакета в Google Cloud Storage | Строка | |
| GOOGLE_CLOUD_UNIFORM_BUCKET_ACCESS | Тип доступа в Google Cloud Storage | Булев | true |
Для отладки и логирования
| Переменная | Description | Тип | Значение по умолчанию |
|---|---|---|---|
| DEBUG | Выводить логи из компонентов | Булев | |
| LOG_PATH | Местоположение, где сохраняются файлы журналов | Строка | OSMI-AI/packages/server/logs |
| LOG_LEVEL | Уровень логов (различные уровни детализации) | Enum строка: error, info, verbose, debug | info |
DEBUG - Если установлено в true, выводить логи в терминал/консоль.
LOG_LEVEL: Разные уровни логирования для логгеров, которые сохраняются. Может быть error, info, verbose или debug. По умолчанию устанавливается в значение info, в файлы журналов будут сохраняться только записи logger.info. Если хотите полную детализацию, установите значение debug.
Стриминг логов в S3:
Если STORAGE_TYPE=s3, логи автоматически пишутся в S3. Новый лог-файл создаётся каждый час.
Logs Streaming GCS
Если STORAGE_TYPE=gcs, логи автоматически пишутся в Google Cloud Logging.
Креденшелы
OSMI-AI хранит ваши сторонние API-ключи в зашифрованном виде с помощью ключа шифрования. По умолчанию при запуске приложения автоматически создается случайный ключ шифрования, который сохраняется в файл по определенному пути. Этот ключ используется каждый раз для расшифровки учетных данных, используемых внутри chatflow. Например, ваш API-ключ OpenAI, API-ключ Pinecone и т.д. Вы также можете настроить использование AWS Secret Manager для хранения ключа шифрования вместо файла.
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| SECRETKEY_STORAGE_TYPE | Способ хранения ключа шифрования | Enum строка: local, aws | local |
| SECRETKEY_PATH | Локальный путь к файлу, где сохраняется ключ шифрования | Строка | OSMI-AI/packages/server |
| OSMI_AI_SECRETKEY_OVERWRITE | Ключ шифрования, который будет использован вместо текущего | Строка | |
| SECRETKEY_AWS_ACCESS_KEY | AWS Access Key | Строка | |
| SECRETKEY_AWS_SECRET_KEY | AWS Secret Key | Строка | |
| SECRETKEY_AWS_REGION | Регион AWS | Строка |
Важно: По некоторым причинам ключ шифрования может быть воссоздан заново или путь к сохранению был изменен, что вызовет ошибки — например, невозможность расшифровать учетные данные. Чтобы этого избежать, вы можете установить собственный ключ шифрования, задав его в переменной
OSMI-AI_SECRETKEY_OVERWRITE, тогда один и тот же ключ будет использоваться каждый раз. Формат не ограничен: вы можете использовать любой текст или даже такой же, как пароль OSMI-AI_PASSWORD.
Модели
В некоторых случаях вы можете захотеть использовать на существующих узлах Chat Model и LLM собственную модель или ограничить доступ только к определённым моделям. По умолчанию OSMI-AI загружает список моделей отсюда. Но пользователь может создать свой собственный файл models.json и указать путь к нему:
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| MODEL_LIST_CONFIG_JSON | Ссылка для загрузки списка моделей из вашего файла конфигурации models.json | Строка | [ |
Для встроенных и внешних зависимостей
В некоторых узлах/функциях OSMI-AI есть возможность запускать код на Javascript. Для безопасности по умолчанию разрешены только определённые зависимости. Но вы можете снять это ограничение для встроенных и внешних модулей, установив следующие переменные окружения:
| Переменная | Описание | Тип | Значение по умолчанию |
|---|---|---|---|
| TOOL_FUNCTION_BUILTIN_DEP | Встроенные модули NodeJS для использования | Строка | |
| TOOL_FUNCTION_EXTERNAL_DEP | Внешние модули для использования | Строка | |
| ALLOW_BUILTIN_DEP | Разрешить использование зависимостей проекта, таких как cheerio, typeorm | Булев |
Примеры настроек в файле .env:
Разрешить использование всех встроенных модулей
TOOL_FUNCTION_BUILTIN_DEP=*
Разрешить только модуль fs
TOOL_FUNCTION_BUILTIN_DEP=fs
Разрешить только модули crypto и fs
TOOL_FUNCTION_BUILTIN_DEP=crypto,fs
Разрешить использование внешних npm-модулей
TOOL_FUNCTION_EXTERNAL_DEP=cheerio,typeorm
Разрешить использование встроенных модулей по умолчанию
ALLOW_BUILTIN_DEP=true
Использование встроенных зависимостей
Некоторые встроенные модули, например Puppeteer, могут создавать потенциальные уязвимости безопасности. Рекомендуется тщательно анализировать и оценивать риски перед их использованием.
Ошибка выполнения NodeVM:VMError: Cannot find module Если вы используете библиотеку, которая по умолчанию не разрешена, есть два варианта:
- Разрешить все библиотеки/зависимости проекта:
ALLOW_BUILTIN_DEP=true - Разрешить определённые библиотеки/зависимости:
TOOL_FUNCTION_EXTERNAL_DEP=cheerio,typeorm
Настройки безопасности
| Переменная | Описание | Параметры | По умолчанию |
|---|---|---|---|
HTTP_DENY_LIST | Блокирует HTTP-запросы к указанным URL или доменам на серверах MCP | CSV список URL/доменных имен | (empty) |
CUSTOM_MCP_SECURITY_CHECK | Включает комплексную проверку безопасности для настроек Custom MCP | true | false | true |
CUSTOM_MCP_PROTOCOL | Устанавливает стандартный протокол для связи в Custom MCP | stdio | sse | stdio |
CUSTOM_MCP_SECURITY_CHECK=true
По умолчанию CUSTOM_MCP_SECURITY_CHECK включена. Включение обеспечивает проверку:
- Список разрешенных команд: разрешены только безопасные команды (
node,npx,python,python3,docker) - Проверка аргументов: блокировка опасных путей файлов, обхода директорий и выполнение файлов
- Предотвращение инъекций: избегание специальных символов и цепочек команд
- Защиту окружения: блокировка изменений критически важных переменных окружения (PATH, LD_LIBRARY_PATH)
CUSTOM_MCP_PROTOCOL
stdio: Прямое взаимодействие с процессами (по умолчанию, требует выполнения команды)sse: Server-Sent Events — события, отправляемые сервером по протоколу HTTP (рекомендуется для работы в производственной среде, более безопасный вариант)
Рекомендуемые настройки
Включить проверку безопасности (по умолчанию)
CUSTOM_MCP_SECURITY_CHECK=true
Использовать протокол SSE для лучшей безопасности
CUSTOM_MCP_PROTOCOL=sse
Заблокировать опасные домены (пример)
HTTP_DENY_LIST=localhost,127.0.0.1,internal.company.com
Предупреждение: Отключение
CUSTOM_MCP_SECURITY_CHECKпозволяет произвольное выполнение команд и существенно увеличивает риски безопасности в производственной среде.
Примеры настройки переменных окружения
NPM
Через команду в NPM
npx OSMI-AI start --PORT=3000 --DEBUG=true
Docker
docker run -d -p 5678:5678 OSMI-AI \
-e DATABASE_TYPE=postgresdb \
-e DATABASE_PORT=<POSTGRES_PORT> \
-e DATABASE_HOST=<POSTGRES_HOST> \
-e DATABASE_NAME=<POSTGRES_DATABASE_NAME> \
-e DATABASE_USER=<POSTGRES_USER> \
-e DATABASE_PASSWORD=<POSTGRES_PASSWORD> \
Docker Compose
Все переменные можно установить в .env файле внутри папки docker. См. пример .env.example.

