Довідник CLI
DocPlatform надає 5 команд CLI для управління сервером, ініціалізації робочих просторів, діагностики та обслуговування.
Глобальні опції
Ці опції застосовуються до всіх команд:
| Прапорець | Опис |
|---|---|
--help, -h |
Показати довідку для будь-якої команди |
--version, -v |
Показати інформацію про версію |
docplatform serve
Запуск HTTP сервера.
docplatform serve [flags]
Прапорці
| Прапорець | За замовчуванням | Опис |
|---|---|---|
--port |
3000 |
HTTP порт прослуховування (перевизначає змінну середовища PORT) |
--host |
0.0.0.0 |
HTTP адреса прослуховування (перевизначає змінну середовища HOST) |
--data-dir |
.docplatform |
Шлях до директорії даних (перевизначає змінну середовища DATA_DIR) |
Поведінка
- Завантажує змінні середовища з файлу
.env(якщо існує) - Ініціалізує базу даних SQLite з режимом WAL
- Виконує очікуючі міграції бази даних
- Завантажує політики прав Casbin у пам’ять
- Створює або відкриває пошуковий індекс Bleve
- Запускає git sync engine для всіх налаштованих робочих просторів
- Запускає планувальник резервного копіювання (якщо увімкнено)
- Подає веб-редактор та API на налаштованому порту
Послідовність запуску
Коли запускається docplatform serve, відбувається наступне в порядку:
- Завантаження конфігурації (змінні середовища + файл
.env+ значення за замовчуванням) - Відкриття бази даних SQLite (режим WAL) та виконання очікуючих міграцій
- Створення організації за замовчуванням, якщо це перший запуск
- Ініціалізація сервісів: Content Ledger, Git Engine (пул з 4 воркерів), Search Engine, Permission Service, Auth Service, WebSocket Hub
- Запуск фонових goroutine: WebSocket hub, git sync polling, планувальник резервного копіювання, телеметрія (якщо увімкнена)
- Початок прослуховування на налаштованому host:port
Запити на читання обслуговуються негайно. Якщо робочі простори мають наявний контент, реконсиляція виконується у фоновому режимі без блокування.
Сигнали
| Сигнал | Ефект |
|---|---|
SIGTERM |
Коректне завершення — припинити прийом запитів, завершити поточні операції, скинути базу даних |
SIGINT |
Те саме, що SIGTERM (Ctrl+C) |
Послідовність завершення (дедлайн 15 секунд):
- Скасування контексту додатка (сигналізує всім goroutine зупинитися)
- Зупинка WebSocket hub (закриття всіх клієнтських з’єднань)
- Зупинка git sync manager (завершення поточних операцій синхронізації)
- Закриття пошукового рушія (скидання індексу Bleve на диск)
- Очікування git worker pool (завершення поточних git операцій)
- Зупинка HTTP сервера (10-секундний таймаут для поточних запитів)
Якщо завершення перевищує 15 секунд, процес завершується примусово.
Приклад
# Start on default port
docplatform serve
# Start on custom port
docplatform serve --port 8080
# Start with explicit data directory
docplatform serve --data-dir /var/lib/docplatform
Вивід
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
Ініціалізація нового робочого простору.
docplatform init [flags]
Прапорці
| Прапорець | Обов’язковий | За замовчуванням | Опис |
|---|---|---|---|
--workspace-name |
Так | — | Відображувана назва робочого простору |
--slug |
Так | — | URL-безпечний ідентифікатор (використовується в URL опублікованої документації) |
--git-url |
Ні | — | URL віддаленого git репозиторію (SSH або HTTPS) |
--branch |
Ні | main |
Git гілка для синхронізації |
--data-dir |
Ні | .docplatform |
Шлях до директорії даних |
Поведінка
- Створює структуру директорії даних (
{DATA_DIR}/) - Ініціалізує базу даних SQLite (якщо ще не існує)
- Генерує ключ підпису RS256 JWT (якщо ще не існує)
- Створює директорію робочого простору (
{DATA_DIR}/workspaces/{ulid}/) - Якщо вказано
--git-url, клонує репозиторій - Створює конфігураційний файл робочого простору
- Індексує наявні
.mdфайли
Приклад
# Local workspace (no git)
docplatform init \
--workspace-name "Internal Wiki" \
--slug wiki
# With git
docplatform init \
--workspace-name "API Docs" \
--slug api-docs \
--git-url [email protected]:your-org/api-docs.git \
--branch main
Вивід
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
Перебудова бази даних та пошукового індексу з файлової системи. Використовуйте, коли база даних не синхронізована з реальними файлами на диску.
docplatform rebuild [flags]
Прапорці
| Прапорець | Обов’язковий | За замовчуванням | Опис |
|---|---|---|---|
--workspace-id |
Ні | усі | ULID конкретного робочого простору для перебудови. Без цього прапорця перебудовуються всі робочі простори. |
--search |
Ні | false |
Також видалити та перебудувати пошуковий індекс Bleve |
--data-dir |
Ні | .docplatform |
Шлях до директорії даних |
Поведінка
- Створює резервну копію поточної бази даних
- Видаляє таблицю
pages - Сканує файлову систему на предмет усіх
.mdфайлів у директоріяхdocs/робочих просторів - Аналізує frontmatter та контент кожного файлу
- Вставляє записи сторінок у базу даних
- Перебудовує пошуковий індекс Bleve
- Звітує про результати реконсиляції
Коли використовувати
- Після ручного додавання, переміщення або видалення
.mdфайлів поза DocPlatform - Після аварії, що могла залишити базу даних неузгодженою
- Після відновлення файлів із резервної копії git
- Коли
docplatform doctorповідомляє про невідповідності FS/DB
Приклад
# Rebuild all workspaces
docplatform rebuild
# Rebuild a specific workspace
docplatform rebuild --workspace-id 01KJJ10NTF31Z1QJTG4ZRQZ2Z2
Вивід
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
Відновлення «привидів»: Коли знаходяться осиротілі записи бази даних (немає відповідного файлу), DocPlatform намагається зіставити їх з неіндексованими файлами за хешем контенту. Це відновлює сторінки, що були переміщені або перейменовані поза DocPlatform.
docplatform doctor
Виконання 9 діагностичних перевірок стану платформи.
docplatform doctor [flags]
Прапорці
| Прапорець | Обов’язковий | За замовчуванням | Опис |
|---|---|---|---|
--bundle |
Ні | false |
Створити ZIP файл із діагностичним виводом для підтримки |
--data-dir |
Ні | .docplatform |
Шлях до директорії даних |
Перевірки
| # | Перевірка | Опис |
|---|---|---|
| 1 | З’єднання з базою даних | Файл SQLite існує, доступний для читання, режим WAL увімкнено |
| 2 | Версія схеми | Міграції актуальні |
| 3 | Узгодженість FS/DB | Кожен файл у docs/ має запис у базі даних, і навпаки |
| 4 | Осиротілі файли | Файли на диску без запису в базі даних |
| 5 | Осиротілі записи | Записи бази даних без файлу на диску |
| 6 | Стан пошукового індексу | Кількість документів в індексі Bleve збігається з кількістю сторінок |
| 7 | Биті внутрішні посилання | Markdown посилання на неіснуючі сторінки |
| 8 | Валідність frontmatter | Усі сторінки мають коректний YAML frontmatter із назвою |
| 9 | Підключення до git remote | Якщо git налаштовано, чи доступний віддалений сервер? |
Коди виходу
| Код | Значення |
|---|---|
0 |
Усі перевірки пройдено (стан нормальний) |
1 |
Одна або більше перевірок не пройдені або мають попередження |
Використовуйте код виходу в скриптах та моніторингу:
docplatform doctor || echo "Health check failed"
Приклад
docplatform doctor
Вивід
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
docplatform doctor --bundle
# Creates: docplatform-doctor-20250115.zip
Bundle зберігається за адресою {DATA_DIR}/diagnostics/docplatform-diagnostics-{timestamp}.zip та містить:
report.json— структуровані результати діагностики- Інформація про схему (визначення таблиць, без даних рядків)
- Список файлів (шляхи та розміри, без контенту)
- Інформація про систему (ОС, архітектура, версія Go)
- Останні 1 000 рядків логів помилок
- Версія сервера та конфігурація (з прихованими секретами)
Bundle ніколи не містить контент сторінок, паролі, токени або приватні ключі.
docplatform version
Виведення версії, хешу коміту та дати збірки.
docplatform version
Вивід
docplatform v0.5.2 (commit: abc1234, built: 2026-03-08T10:00:00Z)
Інформація про версію вбудовується під час збірки через прапорці лінкера. Корисно для перевірки розгорнутого релізу та запитів до підтримки.