nb init

Initialisiert den aktuellen Workspace, damit der coding agent sich mit NocoBase verbinden und es verwenden kann.

nb init kann eine neue lokale NocoBase-App installieren oder die Verbindungsinformationen einer bestehenden App speichern.

Außerdem synchronisiert nb init standardmäßig auch die NocoBase AI coding skills. Nur wenn du skills bereits selbst verwaltest oder in CI bzw. in einer Offline-Umgebung arbeitest, musst du --skip-skills hinzufügen.

Verwendung

nb init [flags]

Interaktive Modi

nb init unterstützt drei interaktive Modi:

  • nb init: führt die Einrichtung Schritt für Schritt im Terminal durch
  • nb init --ui: öffnet ein Formular im lokalen Browser und führt das Setup mit einem visuellen Assistenten durch
  • nb init --yes --env app1: überspringt Eingabeaufforderungen und verwendet direkt die Flags; nicht explizit übergebene Parameter werden mit Standardwerten behandelt

Der Modus --yes eignet sich für Skripte, CI/CD oder andere nicht interaktive Szenarien. In diesem Modus ist --env <envName> erforderlich. Üblicherweise wird standardmäßig eine neue lokale App installiert; wenn du --source nicht angibst, wird standardmäßig docker als Installationsquelle verwendet.

Unterbrochene Initialisierung fortsetzen

Installationsabläufe speichern zuerst die env-Konfiguration und führen danach Download, Datenbank- und App-Installation aus. Wenn der Vorgang zwischendurch fehlschlägt, kannst du fortfahren:

nb init --env app1 --resume

--resume gilt nur für Initialisierungsabläufe, bei denen die env-Konfiguration bereits gespeichert wurde, und --env muss ausdrücklich angegeben werden.

Zuerst das env vorbereiten und die App später installieren

--prepare-only ist für Abläufe gedacht, bei denen zuerst das env vorbereitet, dann die Lizenz aktiviert und erst danach die App installiert und gestartet wird.

Wenn du zuerst die env-Konfiguration speichern, den Quellcode oder das Image vorbereiten und die Datenbank einrichten möchtest, die eigentliche App-Installation und den ersten Start aber zunächst verschieben willst, kannst du Folgendes verwenden:

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

Dieser Modus ist für lokale Installationsabläufe verfügbar, einschließlich des --ui-Assistenten. Für Remote-Verbindungsabläufe ist er nicht verfügbar. Die CLI speichert das aktuelle env im Status prepared, sodass du später mit einem Ablauf wie diesem fortfahren kannst:

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

Danach schließt nb app start die Erstinstallation ab und wechselt das env vom prepared-Status in den normalen installed-Status.

Hinweise zum Installationsverzeichnis

Den vollständigen Pfad kannst du mit nb env info app1 --field app.appPath anzeigen.

Standardmäßig organisiert die CLI lokale Dateien unter app-path nach dieser Konvention:

<app-path>/
├── source/   # Standardverzeichnis für den App-Quellcode oder heruntergeladene Inhalte
├── storage/  # Laufzeitdatenverzeichnis
└── .env      # optionale Datei mit Umgebungsvariablen der App

In der Regel gilt:

  • source/ entspricht hauptsächlich dem lokalen App-Verzeichnis für npm-/Git-envs. Bei Docker-envs behält die CLI diese Standardpfadableitung ebenfalls bei, allerdings musst du dich in den meisten Fällen nicht manuell darum kümmern. Achte bei Upgrades besonders darauf: Das Verzeichnis source/ wird gelöscht und erneut heruntergeladen. Lege hier also keine Dateien ab, die erhalten bleiben müssen
  • storage/ dient zum Speichern von Laufzeitdaten wie eingebetteten Datenbankdaten, Plugins, Logs usw.
  • .env ist eine optionale Datei für Umgebungsvariablen der App. Du musst sie nur in <app-path>/.env anlegen, wenn du Umgebungsvariablen anpassen möchtest; falls diese Datei vorhanden ist, wird sie bei den Installationsquellen Docker, npm und Git standardmäßig eingelesen

Dies beschreibt die Standardverzeichnis-Konvention der CLI. Je nach Installationsquelle, Plugins und Laufzeitphase können die tatsächlich erzeugten Verzeichnisinhalte abweichen.

Hinweise

Achtung
  • --ui kann nicht zusammen mit --yes verwendet werden
  • --ui kann auch nicht zusammen mit --resume verwendet werden
  • --ui-host und --ui-port können nur zusammen mit --ui verwendet werden
  • --skip-auth kann nicht zusammen mit --access-token oder --token verwendet werden

Schnelle Orientierung nach Steps

Je nach Setup-Pfad unterscheiden sich die angezeigten Steps leicht. Wenn du zum Beispiel eine bestehende App verbindest, werden normalerweise nur Getting started und Remote connection verwendet.

Wenn du dem lokalen UI-Assistenten Schritt für Schritt folgst, kannst du dich mit der folgenden Tabelle schnell orientieren:

StepWichtige Parameter
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

Parameter

Es gibt viele Parameter; nach Nutzungsszenarien aufgeteilt sind sie übersichtlicher.

Der „Standardwert“ unten steht für den Wert oder das Verhalten, das nb init normalerweise verwendet, wenn du den Parameter weglässt.

Grundlagen und Interaktion

ParameterTypStandardwertBeschreibung
--yes, -ybooleanfalseÜberspringt Eingabeaufforderungen und verwendet Flags sowie Standardwerte
--env, -estringKein WertName des env, das bei dieser Initialisierung gespeichert wird; in den Modi --yes und --resume erforderlich
--uibooleanfalseÖffnet den Assistenten im lokalen Browser; kann nicht zusammen mit --yes oder --resume verwendet werden
--verbosebooleanfalseZeigt detaillierte Befehlsausgaben an
--skip-skillsbooleanfalseÜberspringt die Synchronisierung der NocoBase AI coding skills
--ui-hoststring127.0.0.1Bind-Adresse des lokalen --ui-Dienstes
--ui-portinteger0Port des lokalen --ui-Dienstes; 0 bedeutet automatische Zuweisung
--localestringFolgt NB_LOCALE, der CLI-Konfiguration oder dem System-Locale; endgültiger Fallback en-USSprache der CLI-Prompts und der lokalen Setup-UI: en-US oder zh-CN
--resumebooleanfalseSetzt eine zuvor unvollständige Initialisierung fort und verwendet die bereits gespeicherte Workspace-env-Konfiguration wieder
--prepare-onlybooleanfalseSpeichert und bereitet ein lokales Installations-env vor, einschließlich --ui-Abläufen, ohne die App schon zu installieren oder zu starten

Verbindung mit einer bestehenden App

ParameterTypStandardwertBeschreibung
--api-base-url, -ustringKein WertAPI-Basisadresse; muss das Präfix /api enthalten
--auth-type, -astringoauthAuthentifizierungsmethode: basic, token oder oauth. In der Regel reicht der Standard oauth; in manchen CI/CD-Szenarien kann auch basic verwendet werden
--access-token, -tstringKein WertAPI key oder access token für die Authentifizierung mit token
--usernamestringKein WertBenutzername für die Authentifizierung mit basic
--passwordstringKein WertPasswort für die Authentifizierung mit basic
--skip-authbooleanfalseSpeichert zuerst env und Authentifizierungsmethode und führt die Anmeldung später mit nb env auth durch

Grundlegende Parameter für die lokale Installation

ParameterTypStandardwertBeschreibung
--lang, -lstringen-USUI-Sprache der neu installierten App
--force, -fbooleanfalseKonfiguriert ein bestehendes env neu und ersetzt bei Bedarf kollidierende Laufzeitressourcen
--app-pathstring./<envName>/Lokales App-Verzeichnis für npm/Git
--app-portstring13000HTTP-Port der lokalen App; im Modus --yes wird automatisch ein verfügbarer Port gewählt
--root-usernamestringnocobase (im Modus --yes)Benutzername des initialen Administrators
--root-emailstringadmin@nocobase.com (im Modus --yes)E-Mail des initialen Administrators
--root-passwordstringadmin123 (im Modus --yes)Passwort des initialen Administrators
--root-nicknamestringSuper Admin (im Modus --yes)Anzeigename des initialen Administrators

Datenbankparameter

ParameterTypStandardwertBeschreibung
--builtin-db / --no-builtin-dbbooleantrueGibt an, ob eine von der CLI verwaltete eingebaute Datenbank erstellt und verbunden werden soll
--db-dialectstringpostgresDatenbanktyp: postgres, mysql, mariadb, kingbase
--builtin-db-imagestringFolgt --db-dialect und dem LocaleContainer-Image der eingebauten Datenbank
--db-hoststringBei eingebauter Datenbank postgres; bei externer Datenbank 127.0.0.1Host-Adresse der Datenbank
--db-portstringpostgres=5432mysql=3306mariadb=3306kingbase=54321Datenbankport
--db-databasestringnocobase; bei KingbaseES kingbaseName der Datenbank
--db-userstringnocobaseDatenbankbenutzername
--db-passwordstringnocobaseDatenbankpasswort
--db-schemastringKein WertDatenbankschema; nur für PostgreSQL
--db-table-prefixstringKein WertPräfix für Datenbanktabellen
--db-underscored / --no-db-underscoredbooleanfalseOb Tabellen- und Feldnamen in der Datenbank Unterstrich-Schreibweise verwenden

Parameter für Download und Quellcode

ParameterTypStandardwertBeschreibung
--skip-downloadbooleanfalseÜberspringt den Download und verwendet das vorhandene lokale App-Verzeichnis oder Docker-Image wieder
--source, -sstringdockerArt, NocoBase zu beziehen: docker, npm oder git
--version, -vstringbetaVersionsparameter: npm-Paketversion, Docker-Image-Tag oder Git-Ref
--replace, -rbooleanfalseErsetzt, wenn das Zielverzeichnis bereits existiert
--dev-dependencies, -D / --no-dev-dependenciesbooleanfalseGibt an, ob bei npm-/Git-Installation devDependencies installiert werden sollen
--output-dir, -ostringBei npm/Git aus --app-path abgeleitet; bei Docker + --docker-save ./nocobase-<version>Zielverzeichnis für Downloads oder Speicherverzeichnis des Tarballs bei aktiviertem --docker-save
--git-urlstringhttps://github.com/nocobase/nocobase.gitAdresse des Git-Repositorys
--docker-registrystringnocobase/nocobase; im Locale zh-CN registry.cn-shanghai.aliyuncs.com/nocobase/nocobaseName des Docker-Image-Repositorys ohne Tag
--docker-platformstringautoPlattform des Docker-Images: auto, linux/amd64, linux/arm64
--docker-save / --no-docker-savebooleanfalseGibt an, ob das Docker-Image nach dem Pull zusätzlich als Tarball gespeichert werden soll
--npm-registrystringleerRegistry für npm-/Git-Downloads und die Installation von Abhängigkeiten
--build / --no-buildbooleantrueGibt an, ob nach der Installation von npm-/Git-Abhängigkeiten gebaut werden soll
--build-dtsbooleanfalseGibt an, ob beim npm-/Git-Build TypeScript-Deklarationsdateien erzeugt werden sollen

Beispiele

Die gebräuchlichsten Verwendungsweisen sind die folgenden.

Die Einrichtung Schritt für Schritt im Terminal durchführen

nb init

Den Assistenten im lokalen Browser öffnen

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

Zuerst vorbereiten, dann die Lizenz aktivieren und später starten

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

Eine neue lokale App nicht interaktiv installieren

Wenn du --source nicht angibst, wird normalerweise Docker als Installationsquelle verwendet.

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

Schnell installieren und basic-Authentifizierung verwenden

Wenn du im nicht interaktiven Modus schnell eine lokale App installieren und direkt nach der Installation basic-Authentifizierung speichern möchtest, kannst du es auch so schreiben. Dann musst du keinen Browser mehr öffnen, um OAuth abzuschließen.

Wenn du das Standard-Administratorkonto des Modus --yes beibehältst, ist dies die kürzeste Form.

Falls nichts angegeben wird, lautet das Standard-Administratorkonto nocobase und das Standardpasswort admin123:

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

Wenn du gleichzeitig auch das Administratorkonto anpassen möchtest, kannst du es so schreiben:

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

Mit einer bestehenden App verbinden

Standardmäßig genügt OAuth. Wenn es in bestimmten CI/CD-Szenarien unpraktisch ist, einen Browser zu öffnen, kannst du auch direkt basic-Authentifizierung speichern; wenn du bereits ein API-Token hast, kannst du auch direkt token-Authentifizierung speichern.

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

Datenbankbenennung anpassen

Wenn du ein PostgreSQL-Schema, ein Tabellenpräfix oder Unterstrich-Schreibweise angeben musst, kannst du die Parameter so übergeben:

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

Eine zuvor unterbrochene Initialisierung fortsetzen

nb init --env app1 --resume

Detaillierte Logs zur Fehlerbehebung anzeigen

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

Verwandte Befehle