Переменные окружения
Как задать переменные окружения?
Метод установки из исходного кода Git или create-nocobase-app
Задайте переменные окружения в файле .env в корневом каталоге проекта. После изменения переменных окружения остановите процесс приложения и перезапустите его.
Метод установки через Docker
Измените конфигурацию docker-compose.yml и задайте переменные окружения в параметре environment. Пример:
Также можно использовать env_file, чтобы задавать переменные окружения в файле .env. Пример:
После изменения переменных окружения пересоберите контейнер приложения:
Глобальные переменные окружения
TZ
Используется для задания часового пояса приложения; по умолчанию используется часовой пояс системы.
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
Операции, связанные со временем, будут выполняться в соответствии с этим часовым поясом. Изменение TZ может повлиять на значения дат в базе данных. Для получения подробностей см. Обзор даты и времени.
APP_ENV
Среда приложения; по умолчанию — development. Доступные варианты:
productionпроизводственная средаdevelopmentсреда разработки
APP_KEY
Секретный ключ приложения, используемый для генерации токенов пользователей и т.д. Замените его на ваш собственный ключ приложения и убедитесь, что он не раскрыт.
Если APP_KEY будет изменен, старые токены станут недействительными.
APP_PORT
Порт приложения; по умолчанию — 13000.
API_BASE_PATH
Префикс адреса API NocoBase; по умолчанию — /api/.
API_BASE_URL
CLUSTER_MODE
v1.6.0+
Режим запуска приложения с несколькими ядрами (кластерный режим). Если эта переменная задана, она будет передана в команду pm2 start как параметр -i <instances>. Варианты соответствуют параметру pm2 -i (см. PM2: Кластерный режим), включая:
max: Использовать максимальное количество ядер CPU-1: Использовать максимальное количество ядер CPU минус один<number>: Указать количество ядер
Значение по умолчанию пустое, то есть режим не включен.
Для этого режима требуются плагины, связанные с кластерным режимом. В противном случае функциональность приложения может столкнуться с неожиданными проблемами.
Для получения дополнительной информации см. Кластерный режим.
PLUGIN_PACKAGE_PREFIX
Префикс пакета плагинов; по умолчанию: @nocobase/plugin-,@nocobase/preset-.
Например, чтобы добавить плагин hello в пр оект my-nocobase-app, полное имя пакета плагина будет @my-nocobase-app/plugin-hello.
PLUGIN_PACKAGE_PREFIX можно настроить так:
Соответствие между именем плагина и именем пакета следующее:
users— имя пакета плагина:@nocobase/plugin-usersnocobase— имя пакета плагина:@nocobase/preset-nocobasehello— имя пакета плагина:@my-nocobase-app/plugin-hello
DB_DIALECT
Тип базы данных; доступны варианты:
mariadbmysqlpostgres
DB_HOST
Хост базы данных (обязателен при использовании баз MySQL или PostgreSQL).
По умолчанию — localhost.
DB_PORT
Порт базы данных (обязателен при использовании MySQL или PostgreSQL).
- Порт по умолчанию для MySQL и MariaDB — 3306
- Порт по умолчанию для PostgreSQL — 5432
DB_DATABASE
Имя базы данных (обязательно при использовании MySQL или PostgreSQL).
DB_USER
Пользователь базы данных (обязателен при использовании MySQL или PostgreSQL).
DB_PASSWORD
Пароль базы данных (обязателен при использовании MySQL или PostgreSQL).
DB_TABLE_PREFIX
Префикс таблиц данных.
DB_UNDERSCORED
Определяет, будут ли имена таблиц и полей в базе данных преобразовываться в формат snake_case. По умолчанию — false. Если используется база MySQL (MariaDB) с lower_case_table_names=1, то DB_UNDERSCORED необходимо установить в true.
Когда DB_UNDERSCORED=true, фактические имена таблиц и полей в базе данных не будут совпадать с тем, что отображается в пользовательском интерфейсе. Например, orderDetails будет храниться как order_details в базе данных.
DB_LOGGING
Переключатель логгирования базы данных; по умолчанию — off. Доступные варианты:
on— включеноoff— выключено
DB_POOL_MAX
Максимальное число соединений в пуле. По умолчанию — 5.
DB_POOL_MIN
Минимальное число соединений в пуле. По умолчанию — 0.
DB_POOL_IDLE
Максимальное время в миллисекундах, в течение которого соединение может простаивать перед освобождением. По умолчанию — 10000 (10 секунд).
DB_POOL_ACQUIRE
Максимальное время в миллисекундах, в течение которого пул будет пытаться получить соединение перед тем, как выбросить ошибку. По умолчанию — 60000 (60 секунд).
DB_POOL_EVICT
Интервал времени в миллисекундах, по истечении которого пул соединений удаляет простаивающие соединения. По умолчанию — 1000 (1 секунда).
DB_POOL_MAX_USES
Количество раз, когда соединение может быть использовано, прежде чем оно будет отброшено и заменено. По умолчанию — 0 (без ограничений).
LOGGER_TRANSPORT
Метод вывода логов; несколько значений разделяются ,. По умолчанию: console в режиме разработки и console,dailyRotateFile в производственной среде.
Доступные варианты:
console—console.logfile— вывод в файлdailyRotateFile— вывод в файлы, которые ротируются раз в день
LOGGER_BASE_PATH
Путь хранения логов в файловой системе; по умолчанию — storage/logs.
LOGGER_LEVEL
Уровень логгирования. По умолчанию — debug в режиме разработки и info в производственной среде. Доступные варианты:
errorwarninfodebugtrace
Уровень вывода логов базы данных всегда — debug, он контролируется параметром DB_LOGGING и не зависит от LOGGER_LEVEL.
LOGGER_MAX_FILES
Максимальное количество файлов логов для хранения.
- Когда
LOGGER_TRANSPORTравноfile: по умолчанию —10. - Когда
LOGGER_TRANSPORTравноdailyRotateFile: используйте[n]dдля обозначения дней. По умолчанию —14d.
LOGGER_MAX_SIZE
Ротация логов по размеру.
- Когда
LOGGER_TRANSPORTравноfile: единица измерения —byte. По умолчанию —20971520 (20 * 1024 * 1024). - Когда
LOGGER_TRANSPORTравноdailyRotateFile: используйте[n]k,[n]m,[n]g. По умолчанию не задано.
LOGGER_FORMAT
Формат вывода логов. По умолчанию — console в режиме разработки и json в производственной среде. Доступные варианты:
consolejsonlogfmtdelimiter
Справка: Формат логов
CACHE_DEFAULT_STORE
Уникальный идентификатор метода кэширования, определяющий кэш по умолчанию на сервере. По умолчанию — memory. Встроенные варианты:
memoryredis
CACHE_MEMORY_MAX
Максимальное количество элементов в кэш-памяти. По умолчанию — 2000.
CACHE_REDIS_URL
URL подключения к Redis (необязательно). Пример: redis://localhost:6379
TELEMETRY_ENABLED
Включить сбор телеметрических данных. По умолчанию — off.
TELEMETRY_METRIC_READER
Включенные коллекторы метрик мониторинга. По умолчанию — console. Остальные значения должны ссылаться на имена, зарегистрированные соответствующими плагинами коллекторов, например prometheus. Несколько значений разделяются ,.
TELEMETRY_TRACE_PROCESSOR
Включенные процессоры данных трассировки. По умолчанию — console. Остальные значения должны указывать на имена, зарегистрированные соответствующими плагинами процессоров. Несколько значений разделяются ,.
SERVER_REQUEST_WHITELIST
Белый список разрешённых адресатов для исходящих HTTP-запросов на стороне сервера, используется для защиты от атак SSRF (Server-Side Request Forgery). Принимает список через запятую: точные IP-адреса, диапазоны CIDR, точные имена хостов и одноуровневые поддомены с подстановочным символом.
Применяется к: узлам «HTTP-запрос» в рабочих процессах и кнопкам действий «Пользовательский запрос». Запросы с относительным путём (вызовы собственного API NocoBase) не затрагиваются.
Не задано: все исходящие запросы по http/https разрешены (текущее поведение). Задано: разрешены только запросы, чей хост соответствует записи в белом списке; несовпадающие запросы возвращают ошибку.
Поддерживаемые форматы:
Экспериментальные переменные окружения
APPEND_PRESET_LOCAL_PLUGINS
Используется для добавления заранее заданных локальных плагинов. Значение — это имя пакета (параметр name в package.json), при этом несколько плагинов разделяются запятыми.
- Убедитесь, что плагин загружен локально и доступен в каталоге
node_modules. Подробнее см. Организация плагинов (Plugin Organization). - После добавления переменной окружения плагин появится на странице менеджера плагинов только после начальной установки (
nocobase install) или обновления (nocobase upgrade).
APPEND_PRESET_BUILT_IN_PLUGINS
Используется для добавления встроенных плагинов, которые устанавливаются по умолчанию. Значение — это имя пакета (параметр name в package.json), при этом несколько плагинов разделяются запятыми.
:::info
- Убедитесь, что плагин загружен локально и доступен в каталоге
node_modules. Подробнее см. Организация плагинов. - После добавления переменной окружения плагин будет автоматически установлен или обновлен во время начальной установки (
nocobase install) или обновления (nocobase upgrade). :::
Временные переменные окружения
Процесс установки NocoBase можно дополнить настройкой временных переменных окружения, например:
INIT_APP_LANG
Язык на момент установки. По умолчанию — en-US. Доступные варианты:
en-USzh-CN
INIT_ROOT_EMAIL
Email пользователя root.
INIT_ROOT_PASSWORD
Пароль пользователя root.
INIT_ROOT_NICKNAME
Никнейм пользователя root.

