Конфигураци я приложения и .env
Эта страница относится только к приложениям, созданным или размещенным через NocoBase CLI.
Если вы только что прочитали Установка с помощью CLI (рекомендуется) и просмотрели раздел «Каталог установки», то наиболее распространенные проблемы, с которыми вы столкнетесь, обычно следующие:
- Где находится файл
.env? - Какие конфигурации еще подходят для записи в
.env - Какие конфигурации сейчас больше подходят для передачи
nb env update
Сначала поговорим о выводах:
- Для п риложений, установленных через интерфейс командной строки,
.envпо умолчанию помещается в<app-path>/.env. - Этот файл не является обязательным, не каждый env необходимо создавать вручную.
– Базовые конфигурации, такие как
APP_KEY,TZ,APP_PORT,APP_PUBLIC_PATHиDB_*, по умолчанию управляютсяnb env update. .envв основном используется для дополнения переменных времени выполнения, которые CLI не использует напрямую, таких как хранилище, кеш, журналы, наблюдения и некоторые переменные расширения подключаемого модуля.
Сначала найдите app-path
В [Установить с помощью CLI (рекомендуется)](./cli.md#Installation Directory) структура каталогов по умолчанию для CLI env выглядит следующим образом:
Если вы не уверены, где находится текущий применяемый app-path, вы можете проверить напрямую:
Просто замените app1 на свое имя окружения.
То есть для приложения, созданного или размещенного через CLI, наиболее подходящим расположением файла .env является:
Вообще говоря, нет необходимости ставить его в source/.env, и нет необходимости находить .env в корневом каталоге проекта Docker Compose по старому методу установки.
Когда вам нужно создать .env самостоятельно?
.env не является обязательным.
Если вы просто хотите сначала запустить приложение или просто изменить базовые конфигурации, такие как порты, часовые пояса, подключения к базе данных и пути общего доступа, то во многих случаях нет необходимости создавать .env вручную.
Добавляйте их в <app-path>/.env только в том случае, если вам нужно добавить некоторые переменные времени выполнения, которые CLI не использует напрямую.
По умолчанию сначала используется nb env update
В новом методе установки CLI рекомендуется по умолчанию отдавать приоритет базовой конфигурации приложения nb env update.
Это имеет два преимущест ва:
- Конфигурация и сама среда сохраняются в одном интерфейсе командной строки, что упрощает проверку и изменение.
- В будущем вы, скрипты и ИИ-агенты можете продолжать использовать один и тот же набор команд для обслуживания, поэтому не так-то просто получить ситуацию «в файл вносится один набор изменений, а в CLI записывается другой набор».
Эти конфигурации теперь более подходят для передачи nb env update
Следующие элементы, возможно, раньше записывались непосредственно в .env. Однако в режиме установки CLI рекомендуется использовать nb env update по умолчанию:
Например, если вы хотите изменить порт приложения и часовой пояс, вы можете написать прямо так:
Если вы хотите изменить параметры подключения к базе данных, вы можете написать так:
После внесения изменений CLI обычно предложит вам выполнить nb app restart позже. Более полное описание параметров см. в nb env update.
Какие ситуации лучше записать в .env
Если у переменной еще нет соответствующего параметра CLI или она больше похожа на расширенную конфигурацию, «передаваемую непосредственно в среду выполнения приложения», то просто продолжайте писать <app-path>/.env.
Обычно включают в себя следующие категории:
– Конфигурации хранилища файлов и объектов, например LOCAL_STORAGE_*, AWS_S3_*, ALI_OSS_*, TX_COS_*.
- Конфигурация кэша и Redis, например
CACHE_*,REDIS_URL. - Конфигурации журнала и наблюдения, такие как
LOGGER_*,TELEMETRY_*. - Определенные переменные, специфичные для подключаемого модуля или расширения, такие как экспорт, асинхронные задачи, рабочий процесс и переменные, связанные с расширением AI.
например:
Этот тип переменной по существу представляет собой конфигурацию времени выполнения приложения, и CLI в настоящее время не обрабатывает ее поэлементно. Наиболее естественно разместить его в .env.
Как разделить работу между .env и nb env update
Если вы не уверены, куда должна идти определенная конфигурация, просто следуйте этому правилу по умолчанию:
- Если у
nb env updateуже есть соответствующий параметр, по умолчанию он будет использоваться первым. - Если соответствующий параметр отсутствует или он явно принадлежит конфигурации расширений среды выполнения, например подключаемым модулям, хранилищу, кешу и журналам, поместите его в
<app-path>/.env.
В большинстве сценариев такого разделения труда достаточно.
Распространенное недоразумение
Не храните одновременно две копии одной и той же конфигурации.
Например, если вы сохранили базовые элементы, такие как APP_PORT, TZ, APP_PUBLIC_PATH и DB_HOST, с помощью nb env update, вам обычно не нужно записывать их снова в .env. В противном случае при последующем устранении неполадок можно будет легко не определить, какой уровень является тем значением, которое вы действительно хотите применить.
Минимальный пример .env
Если ваша базовая конфигурация была сохранена через CLI, то .env, вероятно, нужно сохранить только несколько переменных расширения, таких как:
Это также менталитет, который эта страница больше всего хочет помочь вам создать:
.env по-прежнему полезен, но в новом методе установки CLI речь идет скорее о дополнении конфигурации расширения среды выполнения, а не о продолжении принятия всех основных параметров установки.
Куда смотреть дальше
- Если вы не подтвердили структуру каталога приложения, сначала вернитесь к [Установить с помощью CLI (рекомендуется)](./cli.md#Каталог установки)
- Если вы хотите изменить базовые конфигурации, такие как порты, часовые пояса, подключения к базе данных и пути общего доступа, продолжайте просматривать
nb env update. - Если вы хотите запустить, перезапустить или просмотреть журналы приложения, перейдите к разделу Управление приложением.

