CLI-Referenz
DocPlatform bietet 5 CLI-Befehle für Serververwaltung, Workspace-Initialisierung, Diagnose und Wartung.
Globale Optionen
Diese Optionen gelten für alle Befehle:
| Flag | Beschreibung |
|---|---|
--help, -h |
Hilfe für jeden Befehl anzeigen |
--version, -v |
Versionsinformationen ausgeben |
docplatform serve
HTTP-Server starten.
docplatform serve [flags]
Flags
| Flag | Standard | Beschreibung |
|---|---|---|
--port |
3000 |
HTTP-Listening-Port (überschreibt Umgebungsvariable PORT) |
--host |
0.0.0.0 |
HTTP-Listening-Adresse (überschreibt Umgebungsvariable HOST) |
--data-dir |
.docplatform |
Datenverzeichnispfad (überschreibt Umgebungsvariable DATA_DIR) |
Verhalten
- Lädt Umgebungsvariablen aus der
.env-Datei (falls vorhanden) - Initialisiert die SQLite-Datenbank im WAL-Modus
- Führt ausstehende Datenbankmigrationen aus
- Lädt Casbin-Berechtigungsrichtlinien in den Speicher
- Baut den Bleve-Suchindex auf oder öffnet ihn
- Startet die Git-Sync-Engine für alle konfigurierten Workspaces
- Startet den Backup-Scheduler (wenn aktiviert)
- Stellt den Web-Editor und die API auf dem konfigurierten Port bereit
Startsequenz
Wenn docplatform serve ausgeführt wird, geschieht Folgendes der Reihe nach:
- Konfiguration laden (Umgebungsvariablen +
.env-Datei + Standardwerte) - SQLite-Datenbank öffnen (WAL-Modus) und ausstehende Migrationen ausführen
- Standardorganisation erstellen, wenn dies der erste Start ist
- Dienste initialisieren: Content Ledger, Git-Engine (Worker-Pool von 4), Suchmaschine, Berechtigungsdienst, Auth-Dienst, WebSocket-Hub
- Hintergrund-Goroutines starten: WebSocket-Hub, Git-Sync-Polling, Backup-Scheduler, Telemetrie (wenn aktiviert)
- Auf dem konfigurierten Host:Port lauschen
Leseanfragen werden sofort bedient. Wenn Workspaces bestehende Inhalte haben, läuft die Reconciliation im Hintergrund ohne Blockierung.
Signale
| Signal | Wirkung |
|---|---|
SIGTERM |
Kontrolliertes Herunterfahren — keine neuen Anfragen annehmen, laufende Operationen abschließen, Datenbank flushen |
SIGINT |
Wie SIGTERM (Ctrl+C) |
Herunterfahrsequenz (15-Sekunden-Frist):
- Anwendungskontext abbrechen (signalisiert allen Goroutines, zu stoppen)
- WebSocket-Hub stoppen (alle Client-Verbindungen schließen)
- Git-Sync-Manager stoppen (laufende Sync-Operationen abschließen)
- Suchmaschine schließen (Bleve-Index auf Festplatte flushen)
- Git-Worker-Pool leeren (auf laufende Git-Operationen warten)
- HTTP-Server herunterfahren (10-Sekunden-Timeout für laufende Anfragen)
Wenn das Herunterfahren 15 Sekunden überschreitet, wird der Prozess zwangsweise beendet.
Beispiel
# Auf Standardport starten
docplatform serve
# Auf benutzerdefiniertem Port starten
docplatform serve --port 8080
# Mit explizitem Datenverzeichnis starten
docplatform serve --data-dir /var/lib/docplatform
Ausgabe
INFO Server starting port=3000 version=v0.5.2
INFO Database initialized path=.docplatform/data.db wal=true
INFO Migrations applied count=1
INFO Search index ready documents=42
INFO Workspace loaded name="Docs" slug=docs [email protected]:...
INFO Backup scheduler started retention_days=7
INFO Listening on http://0.0.0.0:3000
docplatform init
Einen neuen Workspace initialisieren.
docplatform init [flags]
Flags
| Flag | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
--workspace-name |
Ja | — | Anzeigename für den Workspace |
--slug |
Ja | — | URL-sicherer Bezeichner (verwendet in der URL veröffentlichter Dokumentation) |
--git-url |
Nein | — | Remote-Git-Repository-URL (SSH oder HTTPS) |
--branch |
Nein | main |
Git-Branch zur Synchronisation |
--data-dir |
Nein | .docplatform |
Datenverzeichnispfad |
Verhalten
- Erstellt die Datenverzeichnisstruktur (
{DATA_DIR}/) - Initialisiert die SQLite-Datenbank (wenn noch nicht vorhanden)
- Generiert einen RS256-JWT-Signaturschlüssel (wenn noch nicht vorhanden)
- Erstellt das Workspace-Verzeichnis (
{DATA_DIR}/workspaces/{ulid}/) - Wenn
--git-urlangegeben, wird das Repository geklont - Erstellt die Workspace-Konfigurationsdatei
- Indiziert vorhandene
.md-Dateien
Beispiel
# Lokaler Workspace (ohne Git)
docplatform init \
--workspace-name "Internal Wiki" \
--slug wiki
# Mit Git
docplatform init \
--workspace-name "API Docs" \
--slug api-docs \
--git-url [email protected]:your-org/api-docs.git \
--branch main
Ausgabe
INFO Data directory created path=.docplatform
INFO Database initialized path=.docplatform/data.db
INFO JWT key generated path=.docplatform/jwt-key.pem
INFO Workspace created id=01KJJ10NTF... name="API Docs" slug=api-docs
INFO Repository cloned [email protected]:your-org/api-docs.git branch=main
INFO Pages indexed count=15
INFO Ready. Run 'docplatform serve' to start.
docplatform rebuild
Datenbank und Suchindex aus dem Dateisystem neu aufbauen. Verwenden Sie diesen Befehl, wenn die Datenbank nicht mehr mit den tatsächlichen Dateien auf der Festplatte synchron ist.
docplatform rebuild [flags]
Flags
| Flag | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
--workspace-id |
Nein | alle | ULID eines spezifischen Workspace zum Neuaufbau. Ohne dieses Flag werden alle Workspaces neu aufgebaut. |
--search |
Nein | false |
Auch den Bleve-Suchindex löschen und neu aufbauen |
--data-dir |
Nein | .docplatform |
Datenverzeichnispfad |
Verhalten
- Erstellt ein Backup der aktuellen Datenbank
- Löscht die
pages-Tabelle - Durchsucht das Dateisystem nach allen
.md-Dateien in Workspace-docs/-Verzeichnissen - Parst Frontmatter und Inhalt jeder Datei
- Fügt Seitendatensätze in die Datenbank ein
- Baut den Bleve-Suchindex neu auf
- Meldet Reconciliation-Ergebnisse
Wann zu verwenden
- Nach manuellem Hinzufügen, Verschieben oder Löschen von
.md-Dateien außerhalb von DocPlatform - Nach einem Absturz, der möglicherweise die Datenbank inkonsistent hinterlassen hat
- Nach dem Wiederherstellen von Dateien aus einem Git-Backup
- Wenn
docplatform doctorFS/DB-Abweichungen meldet
Beispiel
# Alle Workspaces neu aufbauen
docplatform rebuild
# Einen spezifischen Workspace neu aufbauen
docplatform rebuild --workspace-id 01KJJ10NTF31Z1QJTG4ZRQZ2Z2
Ausgabe
INFO Backup created path=.docplatform/backups/pre-rebuild-20250115.db
INFO Rebuilding workspace id=01KJJ10NTF... name="API Docs"
INFO Scanning filesystem path=.docplatform/workspaces/01KJJ.../docs/
INFO Pages found count=42
INFO Database rebuilt inserted=42 updated=0 orphaned=3
INFO Search index rebuilt documents=42
INFO Ghost recovery matched=2 unmatched=1
INFO Rebuild complete
Ghost Recovery: Wenn verwaiste Datenbankdatensätze (keine passende Datei) gefunden werden, versucht DocPlatform, sie anhand des Content-Hash mit nicht-indizierten Dateien abzugleichen. Dies stellt Seiten wieder her, die außerhalb von DocPlatform verschoben oder umbenannt wurden.
docplatform doctor
9 Diagnoseprüfungen zum Plattformzustand ausführen.
docplatform doctor [flags]
Flags
| Flag | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
--bundle |
Nein | false |
ZIP-Datei mit Diagnoseausgabe für Support erstellen |
--data-dir |
Nein | .docplatform |
Datenverzeichnispfad |
Prüfungen
| # | Prüfung | Beschreibung |
|---|---|---|
| 1 | Datenbankverbindung | SQLite-Datei existiert, ist lesbar, WAL-Modus aktiviert |
| 2 | Schema-Version | Migrationen sind aktuell |
| 3 | FS/DB-Konsistenz | Jede Datei in docs/ hat einen Datenbankdatensatz und umgekehrt |
| 4 | Verwaiste Dateien | Dateien auf der Festplatte ohne Datenbankdatensatz |
| 5 | Verwaiste Datensätze | Datenbankdatensätze ohne Datei auf der Festplatte |
| 6 | Suchindex-Zustand | Bleve-Index-Dokumentanzahl stimmt mit Seitenanzahl überein |
| 7 | Defekte interne Links | Markdown-Links, die auf nicht existierende Seiten zeigen |
| 8 | Frontmatter-Gültigkeit | Alle Seiten haben gültiges YAML-Frontmatter mit einem Titel |
| 9 | Git-Remote-Erreichbarkeit | Wenn Git konfiguriert ist, kann das Remote erreicht werden? |
Exit-Codes
| Code | Bedeutung |
|---|---|
0 |
Alle Prüfungen bestanden (gesund) |
1 |
Eine oder mehrere Prüfungen fehlgeschlagen oder mit Warnungen |
Verwenden Sie den Exit-Code in Skripten und Monitoring:
docplatform doctor || echo "Health check failed"
Beispiel
docplatform doctor
Ausgabe
DocPlatform Health Check
========================
✓ Database connection OK (WAL mode, 42 pages, 3 users)
✓ Schema version OK (v1, up to date)
✓ FS/DB consistency OK (42 files, 42 records)
✓ Orphaned files OK (0 found)
✓ Orphaned records OK (0 found)
✓ Search index health OK (42 indexed, 42 expected)
⚠ Broken internal links WARNING (2 broken links found)
→ guides/editor.md:15 → "old-page.md" (file not found)
→ api/endpoints.md:42 → "deprecated.md" (file not found)
✓ Frontmatter validity OK (42/42 valid)
✓ Git remote connectivity OK ([email protected]:your-org/docs.git)
Result: 8/9 passed, 1 warning
Bundle-Modus
docplatform doctor --bundle
# Erstellt: docplatform-doctor-20250115.zip
Das Bundle wird unter {DATA_DIR}/diagnostics/docplatform-diagnostics-{timestamp}.zip gespeichert und enthält:
report.json— strukturierte Diagnoseergebnisse- Schema-Informationen (Tabellendefinitionen, keine Zeilendaten)
- Dateiliste (Pfade und Größen, keine Inhalte)
- Systeminformationen (Betriebssystem, Architektur, Go-Version)
- Letzte 1.000 Zeilen der Fehler-Logs
- Serverversion und Konfiguration (mit geschwärzten Secrets)
Das Bundle enthält niemals Seiteninhalte, Passwörter, Token oder private Schlüssel.
docplatform version
Version, Commit-Hash und Build-Datum ausgeben.
docplatform version
Ausgabe
docplatform v0.5.2 (commit: abc1234, built: 2026-03-08T10:00:00Z)
Die Versionsinformationen werden beim Build über Linker-Flags eingebettet. Nützlich zur Verifizierung, welches Release deployt ist, und für Support-Anfragen.