nb init

現在のワークスペースを初期化して、coding agent が NocoBase に接続して利用できるようにします。

nb init は、新しいローカル NocoBase アプリをインストールすることも、既存アプリの接続情報を保存することもできます。

また、nb init はデフォルトで NocoBase AI coding skills も同期します。すでに skills を自分で管理している場合、または CI やオフライン環境で実行する場合にのみ、--skip-skills を追加する必要があります。

使い方

nb init [flags]

対話モード

nb init は 3 つの対話モードをサポートしています:

  • nb init: ターミナルでガイドに従って 1 ステップずつセットアップを完了する
  • 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 を準備し、その後 license を有効化し、最後にアプリをインストールして起動する必要があるフロー向けです。

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/ は主に npm / Git env のローカルアプリディレクトリに対応します。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 ですばやく位置を確認する

表示される Steps は setup パスによって完全には同じではありません。たとえば既存アプリに接続する場合は、通常 Getting startedRemote connection だけを使います。

ローカル UI ウィザードに従って 1 ステップずつ操作する場合は、まず次の表で該当箇所をすばやく確認できます:

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-skillsbooleanfalseNocoBase AI coding skills の同期をスキップする
--ui-hoststring127.0.0.1--ui ローカルサービスのバインドアドレス
--ui-portinteger0--ui ローカルサービスポート。0 は自動割り当てを意味する
--localestringNB_LOCALE、CLI 設定、またはシステム locale に従い、最終的なフォールバックは en-USCLI プロンプトとローカル setup UI の言語: en-US または zh-CN
--resumebooleanfalse前回未完了だった初期化を続行し、保存済みの workspace env config を再利用する
--prepare-onlybooleanfalse--ui フローを含むローカルインストール env を保存して準備するが、アプリはまだインストールも起動もしない

既存アプリへの接続

パラメータデフォルト値説明
--api-base-url, -ustringなしAPI ベース URL。/api プレフィックスを含める必要がある
--auth-type, -astringoauth認証方式: basictoken、または oauth。通常はデフォルトの oauth で十分です。一部の CI/CD シナリオでは basic も使用できます
--access-token, -tstringなしtoken 認証で使用する API key または access token
--usernamestringなしbasic 認証で使用するユーザー名
--passwordstringなしbasic 認証で使用するパスワード
--skip-authbooleanfalse先に env と認証方式を保存し、後で nb env auth によってログインを完了する

ローカルインストールの基本パラメータ

パラメータデフォルト値説明
--lang, -lstringen-US新規インストールするアプリの UI 言語
--force, -fbooleanfalse既存 env を再設定し、必要に応じて競合するランタイムリソースを置き換える
--app-pathstring./<envName>/ローカル npm/Git アプリディレクトリ
--app-portstring13000ローカルアプリの HTTP ポート。--yes モードでは利用可能なポートが自動選択される
--root-usernamestringnocobase--yes モード)初期管理者ユーザー名
--root-emailstringadmin@nocobase.com--yes モード)初期管理者メールアドレス
--root-passwordstringadmin123--yes モード)初期管理者パスワード
--root-nicknamestringSuper Admin--yes モード)初期管理者表示名

データベースパラメータ

パラメータデフォルト値説明
--builtin-db / --no-builtin-dbbooleantrueCLI 管理の組み込みデータベースを作成して接続するかどうか
--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, -sstringdockerNocoBase の取得方法: dockernpm、または git
--version, -vstringbetaバージョンパラメータ: npm パッケージバージョン、Docker イメージ tag、または Git ref
--replace, -rbooleanfalse対象ディレクトリがすでに存在する場合は置き換える
--dev-dependencies, -D / --no-dev-dependenciesbooleanfalsenpm/Git インストール時に devDependencies をインストールするかどうか
--output-dir, -ostringnpm/Git では --app-path から導出。Docker + --docker-save では ./nocobase-<version>ダウンロード先ディレクトリ、または --docker-save 有効時の tarball 保存ディレクトリ
--git-urlstringhttps://github.com/nocobase/nocobase.gitGit リポジトリ URL
--docker-registrystringnocobase/nocobasezh-CN locale では registry.cn-shanghai.aliyuncs.com/nocobase/nocobaseDocker イメージリポジトリ名。tag は含まない
--docker-platformstringautoDocker イメージプラットフォーム: autolinux/amd64linux/arm64
--docker-save / --no-docker-savebooleanfalseDocker イメージを pull した後、追加で tarball として保存するかどうか
--npm-registrystringnpm/Git のダウンロードと依存関係インストールで使用する registry
--build / --no-buildbooleantruenpm/Git 依存関係のインストール後にビルドするかどうか
--build-dtsbooleanfalsenpm/Git ビルド時に TypeScript 宣言ファイルを生成するかどうか

もっとも一般的な使い方は次の通りです。

ターミナルでガイドに従って 1 ステップずつ完了する

nb init

ローカルブラウザウィザードを開く

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

先に準備し、その後で license を有効化して起動する

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

データベース命名をカスタマイズする

PostgreSQL schema、テーブルプレフィックス、またはアンダースコア命名を指定する必要がある場合は、次のようにパラメータを渡せます:

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

関連コマンド