nb init

Инициализирует текущее рабочее пространство, чтобы coding agent мог подключаться к NocoBase и использовать его.

nb init может установить новое локальное приложение NocoBase, а также сохранить параметры подключения уже существующего приложения.

Кроме того, nb init по умолчанию синхронизирует NocoBase AI coding skills. Добавлять --skip-skills нужно только если вы уже самостоятельно управляете skills либо запускаете команду в CI или офлайн-среде.

Использование

nb init [flags]

Интерактивные режимы

nb init поддерживает три интерактивных режима:

  • nb init:пошаговое выполнение мастера в терминале
  • nb init --ui:открывает форму в локальном браузере и завершает setup через визуальный мастер
  • nb init --yes --env app1:пропускает подсказки и сразу использует flags; параметры, не переданные явно, обрабатываются со значениями по умолчанию

Режим --yes подходит для скриптов, CI/CD и других неинтерактивных сценариев. В этом режиме --env <envName> обязателен. Как правило, по умолчанию будет установлено новое локальное приложение; если вы не укажете --source, источником установки по умолчанию будет docker.

Возобновление прерванной инициализации

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

nb init --env app1 --resume

--resume применим только к процессам инициализации, где env-конфигурация уже была сохранена, и требует явной передачи --env.

Сначала подготовить env, а приложение установить позже

--prepare-only предназначен для сценариев, где сначала нужно подготовить env, затем активировать лицензию, и только после этого установить и запустить приложение.

Если вы хотите сначала сохранить конфигурацию env, подготовить исходники или образ и привести базу данных в готовность, но отложить фактическую установку приложения и первый запуск, можно использовать:

nb init --env app1 --prepare-only
nb init --env app1 --prepare-only --ui
nb init --env app1 --prepare-only --yes

Этот режим доступен для сценариев локальной установки, включая мастер --ui. Он недоступен для сценариев удалённого подключения. CLI сохранит текущий env в состоянии prepared, поэтому позже вы сможете продолжить с помощью такого сценария:

nb license activate --env app1
nb app start --env app1

После этого nb app start завершит первую установку и переведёт env из состояния prepared в обычное состояние installed.

О каталоге установки

Полный путь можно посмотреть через nb env info app1 --field app.appPath.

По умолчанию CLI организует локальные файлы в app-path по следующему соглашению:

<app-path>/
├── source/   # Каталог по умолчанию для исходников приложения или загруженного содержимого
├── storage/  # Каталог данных времени выполнения
└── .env      # Необязательный файл переменных окружения приложения

Обычно:

  • source/ в основном соответствует локальному каталогу приложения для env типа npm / Git. Для Docker env CLI тоже сохраняет эту схему путей по умолчанию, но в большинстве случаев вам не нужно заботиться об этом вручную. При обновлении обратите особое внимание: каталог source/ будет удален и загружен заново, поэтому не храните здесь файлы, которые нужно сохранить
  • storage/ используется для данных времени выполнения, например встроенной базы данных, плагинов, логов и т. д.
  • .env — необязательный файл переменных окружения приложения. Добавлять его в <app-path>/.env нужно только если вы хотите настроить свои переменные окружения; если файл существует, источники установки Docker, npm и Git по умолчанию будут его читать

Это соглашение CLI о каталогах по умолчанию. Для разных источников установки, плагинов и этапов выполнения фактически создаваемое содержимое каталогов может отличаться.

Примечания

Внимание
  • --ui нельзя использовать вместе с --yes
  • --ui также нельзя использовать вместе с --resume
  • --ui-host и --ui-port можно использовать только вместе с --ui
  • --skip-auth нельзя использовать вместе с --access-token или --token

Быстрая навигация по Steps

В разных путях setup отображаются разные Steps. Например, при подключении к существующему приложению обычно используются только Getting started и Remote connection.

Если вы проходите локальный UI-мастер шаг за шагом, можете сначала воспользоваться таблицей ниже для быстрой навигации:

StepПараметры, на которые стоит обратить внимание
Getting started--env--yes--ui--locale--verbose--skip-skills--resume--prepare-only
App environment--lang--app-path--app-port--force
App source and version--source--version--skip-download--git-url--docker-registry--docker-platform--npm-registry--replace--dev-dependencies--output-dir--docker-save--build--build-dts
Configure the database--builtin-db--db-dialect--builtin-db-image--db-host--db-port--db-database--db-user--db-password--db-schema--db-table-prefix--db-underscored
Create an admin account--root-username--root-email--root-password--root-nickname
Remote connection--api-base-url--auth-type--access-token--username--password--skip-auth

Параметры

Параметров довольно много, поэтому понятнее рассматривать их по сценариям использования.

Под “значением по умолчанию” ниже имеется в виду значение или поведение, которое nb init обычно использует, если параметр опущен.

Базовые и интерактивные

ПараметрТипЗначение по умолчаниюОписание
--yes, -ybooleanfalseПропустить подсказки и использовать flags и значения по умолчанию
--env, -estringНетИмя env, сохраняемого при этой инициализации; обязательно в режимах --yes и --resume
--uibooleanfalseОткрыть мастер в локальном браузере; нельзя использовать вместе с --yes и --resume
--verbosebooleanfalseПоказывать подробный вывод команд
--skip-skillsbooleanfalseПропустить синхронизацию NocoBase AI coding skills
--ui-hoststring127.0.0.1Адрес привязки локального сервиса --ui
--ui-portinteger0Порт локального сервиса --ui; 0 означает автоматическое назначение
--localestringСледует NB_LOCALE, настройке CLI или системной locale; окончательный fallback — en-USЯзык подсказок CLI и локального UI setup: en-US или zh-CN
--resumebooleanfalseПродолжить предыдущую незавершённую инициализацию с повторным использованием сохранённой workspace env config
--prepare-onlybooleanfalseСохранить и подготовить env для локальной установки, включая сценарии --ui, но пока не устанавливать и не запускать приложение

Подключение существующего приложения

ПараметрТипЗначение по умолчаниюОписание
--api-base-url, -ustringНетКорневой адрес API, обязательно должен содержать префикс /api
--auth-type, -astringoauthСпособ аутентификации: basic, token или oauth. Обычно подходит oauth по умолчанию; в некоторых сценариях CI/CD также можно использовать basic
--access-token, -tstringНетAPI key или access token для аутентификации token
--usernamestringНетИмя пользователя для аутентификации basic
--passwordstringНетПароль для аутентификации basic
--skip-authbooleanfalseСначала сохранить env и способ аутентификации, а затем завершить вход через nb env auth позже

Базовые параметры локальной установки

ПараметрТипЗначение по умолчаниюОписание
--lang, -lstringen-USЯзык интерфейса нового установленного приложения
--force, -fbooleanfalseПовторно настроить существующий env и при необходимости заменить конфликтующие ресурсы времени выполнения
--app-pathstring./<envName>/Каталог локального приложения npm/Git
--app-portstring13000HTTP-порт локального приложения; в режиме --yes автоматически выбирается свободный порт
--root-usernamestringnocobase(в режиме --yesИмя начального администратора
--root-emailstringadmin@nocobase.com(в режиме --yesEmail начального администратора
--root-passwordstringadmin123(в режиме --yesПароль начального администратора
--root-nicknamestringSuper Admin(в режиме --yesОтображаемое имя начального администратора

Параметры базы данных

ПараметрТипЗначение по умолчаниюОписание
--builtin-db / --no-builtin-dbbooleantrueСоздавать и подключать ли встроенную базу данных, управляемую CLI
--db-dialectstringpostgresТип базы данных: postgresmysqlmariadbkingbase
--builtin-db-imagestringСледует --db-dialect и localeОбраз контейнера встроенной базы данных
--db-hoststringДля встроенной базы данных — postgres; для внешней — 127.0.0.1Адрес хоста базы данных
--db-portstringpostgres=5432mysql=3306mariadb=3306kingbase=54321Порт базы данных
--db-databasestringnocobase; для KingbaseES — kingbaseИмя базы данных
--db-userstringnocobaseИмя пользователя базы данных
--db-passwordstringnocobaseПароль базы данных
--db-schemastringНетSchema базы данных; используется только в PostgreSQL
--db-table-prefixstringНетПрефикс таблиц базы данных
--db-underscored / --no-db-underscoredbooleanfalseИспользовать ли стиль с подчёркиваниями для имён таблиц и полей

Параметры загрузки и исходного кода

ПараметрТипЗначение по умолчаниюОписание
--skip-downloadbooleanfalseПропустить загрузку и использовать существующий локальный каталог приложения или Docker-образ
--source, -sstringdockerСпособ получения NocoBase: dockernpm или git
--version, -vstringbetaПараметр версии: версия npm-пакета, tag Docker-образа или Git ref
--replace, -rbooleanfalseЗаменить, если целевой каталог уже существует
--dev-dependencies, -D / --no-dev-dependenciesbooleanfalseУстанавливать ли devDependencies при установке через npm/Git
--output-dir, -ostringДля npm/Git выводится из --app-path; для Docker + --docker-save./nocobase-<version>Целевой каталог загрузки или каталог сохранения tarball при включённом --docker-save
--git-urlstringhttps://github.com/nocobase/nocobase.gitАдрес Git-репозитория
--docker-registrystringnocobase/nocobase; для locale zh-CNregistry.cn-shanghai.aliyuncs.com/nocobase/nocobaseИмя репозитория Docker-образа без tag
--docker-platformstringautoПлатформа Docker-образа: autolinux/amd64linux/arm64
--docker-save / --no-docker-savebooleanfalseСохранять ли Docker-образ дополнительно как tarball после загрузки
--npm-registrystringПустоRegistry для загрузки npm/Git и установки зависимостей
--build / --no-buildbooleantrueВыполнять ли сборку после установки зависимостей npm/Git
--build-dtsbooleanfalseГенерировать ли объявления TypeScript при сборке npm/Git

Примеры

Ниже приведены несколько самых распространённых вариантов использования.

Пошаговое выполнение мастера в терминале

nb init

Открытие мастера в локальном браузере

nb init --ui
nb init --ui --ui-port 3000

Сначала подготовить, затем активировать лицензию и запустить позже

nb init --env app1 --prepare-only
nb license activate --env app1
nb app start --env app1

Неинтерактивная установка нового локального приложения

Если не указывать --source, обычно в качестве источника установки используется Docker.

nb init --env app1 --yes
nb init --env app1 --yes --source docker --version latest
nb init --env app1 --yes --source docker --version beta
nb init --env app1 --yes --source docker --version alpha
nb init --env app1 --yes --source docker --version main \
  --docker-registry registry.cn-beijing.aliyuncs.com/nocobase/nocobase
nb init --env app1 --yes --source npm --version latest
nb init --env app1 --yes --source npm --version beta
nb init --env app1 --yes --source npm --version alpha
nb init --env app1 --yes --source npm --version beta --app-port 13080
nb init --env app1 --yes --source git --version latest
nb init --env app1 --yes --source git --version beta
nb init --env app1 --yes --source git --version alpha
nb init --env app1 --yes --source git --version feat/plugin-workflow-timeout
nb init --env app1 --yes --source git --version latest \
  --git-url https://gitee.com/nocobase/nocobase.git

Быстрая установка и использование аутентификации basic

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

Если использовать стандартную учётную запись администратора из режима --yes, самый короткий вариант такой.

Если не указано, имя администратора по умолчанию — nocobase, а пароль по умолчанию — admin123:

nb init --env app1 --yes --auth-type basic

Если вы хотите одновременно настроить собственную учётную запись администратора, можно написать так:

nb init --env app1 --yes \
  --auth-type basic \
  --root-username admin \
  --root-password secret123

Подключение существующего приложения

Обычно достаточно OAuth по умолчанию. Если в некоторых сценариях CI/CD неудобно открывать браузер, можно сразу сохранить аутентификацию basic; если у вас уже есть API token, можно сразу сохранить аутентификацию token.

nb init --env staging --yes \
  --api-base-url https://demo.example.com/api

nb init --env staging --yes \
  --api-base-url https://demo.example.com/api \
  --auth-type basic \
  --username <username> \
  --password <password>

nb init --env staging --yes \
  --api-base-url https://demo.example.com/api \
  --auth-type token \
  --access-token <token>

nb init --env staging --yes \
  --api-base-url https://demo.example.com/api \
  --auth-type oauth \
  --skip-auth

Настройка именования базы данных

Если вам нужно указать schema PostgreSQL, префикс таблиц или стиль именования с подчёркиваниями, можно передать параметры так:

nb init --env app1 --yes \
  --db-dialect postgres \
  --db-schema public \
  --db-table-prefix nb_ \
  --db-underscored

Продолжение предыдущей прерванной инициализации

nb init --env app1 --resume

Подробные логи для устранения неполадок

nb init --env app1 --yes --source docker --version latest --verbose

Связанные команды