Referencia CLI
DocPlatform proporciona 5 comandos CLI para gestión del servidor, inicialización de workspaces, diagnósticos y mantenimiento.
Opciones globales
Estas opciones aplican a todos los comandos:
| Flag | Descripción |
|---|---|
--help, -h |
Mostrar ayuda para cualquier comando |
--version, -v |
Imprimir información de versión |
docplatform serve
Iniciar el servidor HTTP.
docplatform serve [flags]
Flags
| Flag | Predeterminado | Descripción |
|---|---|---|
--port |
3000 |
Puerto de escucha HTTP (anula la variable de entorno PORT) |
--host |
0.0.0.0 |
Dirección de escucha HTTP (anula la variable de entorno HOST) |
--data-dir |
.docplatform |
Ruta del directorio de datos (anula la variable de entorno DATA_DIR) |
Comportamiento
- Carga variables de entorno del archivo
.env(si está presente) - Inicializa la base de datos SQLite con modo WAL
- Ejecuta las migraciones pendientes de base de datos
- Carga las políticas de permisos de Casbin en memoria
- Construye o abre el índice de búsqueda Bleve
- Inicia el motor de sincronización git para todos los workspaces configurados
- Inicia el programador de copias de seguridad (si está habilitado)
- Sirve el editor web y la API en el puerto configurado
Secuencia de inicio
Cuando docplatform serve se ejecuta, sucede lo siguiente en orden:
- Cargar configuración (variables de entorno + archivo
.env+ valores predeterminados) - Abrir base de datos SQLite (modo WAL) y ejecutar migraciones pendientes
- Crear la organización predeterminada si es la primera ejecución
- Inicializar servicios: Content Ledger, Git Engine (pool de 4 workers), Search Engine, Permission Service, Auth Service, WebSocket Hub
- Iniciar goroutines en segundo plano: WebSocket hub, polling de sincronización git, programador de copias de seguridad, telemetría (si está habilitada)
- Comenzar a escuchar en el host:port configurado
Las solicitudes de lectura se sirven inmediatamente. Si los workspaces tienen contenido existente, la reconciliación se ejecuta en segundo plano sin bloquear.
Señales
| Señal | Efecto |
|---|---|
SIGTERM |
Apagado graceful — dejar de aceptar solicitudes, finalizar operaciones en curso, vaciar base de datos |
SIGINT |
Igual que SIGTERM (Ctrl+C) |
Secuencia de apagado (límite de 15 segundos):
- Cancelar el contexto de la aplicación (señala a todas las goroutines que se detengan)
- Detener el WebSocket hub (cerrar todas las conexiones de clientes)
- Detener el gestor de sincronización git (finalizar operaciones de sincronización en curso)
- Cerrar el motor de búsqueda (vaciar el índice Bleve a disco)
- Drenar el pool de workers git (esperar operaciones git en curso)
- Apagar el servidor HTTP (timeout de 10 segundos para solicitudes en curso)
Si el apagado excede los 15 segundos, el proceso se cierra forzosamente.
Ejemplo
# 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
Salida
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
Inicializar un nuevo workspace.
docplatform init [flags]
Flags
| Flag | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
--workspace-name |
Sí | — | Nombre visible del workspace |
--slug |
Sí | — | Identificador seguro para URL (usado en la URL de documentación publicada) |
--git-url |
No | — | URL del repositorio git remoto (SSH o HTTPS) |
--branch |
No | main |
Rama de git a sincronizar |
--data-dir |
No | .docplatform |
Ruta del directorio de datos |
Comportamiento
- Crea la estructura del directorio de datos (
{DATA_DIR}/) - Inicializa la base de datos SQLite (si no está presente)
- Genera una clave de firma JWT RS256 (si no está presente)
- Crea el directorio del workspace (
{DATA_DIR}/workspaces/{ulid}/) - Si se proporciona
--git-url, clona el repositorio - Crea el archivo de configuración del workspace
- Indexa cualquier archivo
.mdexistente
Ejemplo
# 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
Salida
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
Reconstruir la base de datos y el índice de búsqueda desde el sistema de archivos. Úselo cuando la base de datos esté desincronizada con los archivos reales en disco.
docplatform rebuild [flags]
Flags
| Flag | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
--workspace-id |
No | todos | ULID de un workspace específico a reconstruir. Sin este flag, se reconstruyen todos los workspaces. |
--search |
No | false |
También eliminar y reconstruir el índice de búsqueda Bleve |
--data-dir |
No | .docplatform |
Ruta del directorio de datos |
Comportamiento
- Crea una copia de seguridad de la base de datos actual
- Elimina la tabla
pages - Escanea el sistema de archivos en busca de todos los archivos
.mden los directoriosdocs/de los workspaces - Analiza el frontmatter y contenido de cada archivo
- Inserta registros de páginas en la base de datos
- Reconstruye el índice de búsqueda Bleve
- Reporta los resultados de la reconciliación
Cuándo usarlo
- Después de agregar, mover o eliminar manualmente archivos
.mdfuera de DocPlatform - Después de un fallo que pueda haber dejado la base de datos inconsistente
- Después de restaurar archivos desde una copia de seguridad git
- Cuando
docplatform doctorreporta discrepancias entre FS/DB
Ejemplo
# Rebuild all workspaces
docplatform rebuild
# Rebuild a specific workspace
docplatform rebuild --workspace-id 01KJJ10NTF31Z1QJTG4ZRQZ2Z2
Salida
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
Recuperación fantasma: Cuando se encuentran registros huérfanos en la base de datos (sin archivo correspondiente), DocPlatform intenta emparejarlos con archivos no indexados por hash de contenido. Esto recupera páginas que fueron movidas o renombradas fuera de DocPlatform.
docplatform doctor
Ejecutar 9 verificaciones de diagnóstico sobre la salud de la plataforma.
docplatform doctor [flags]
Flags
| Flag | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
--bundle |
No | false |
Crear un archivo ZIP con la salida de diagnóstico para soporte |
--data-dir |
No | .docplatform |
Ruta del directorio de datos |
Verificaciones
| # | Verificación | Descripción |
|---|---|---|
| 1 | Conexión de base de datos | El archivo SQLite existe, es legible, modo WAL habilitado |
| 2 | Versión del esquema | Las migraciones están actualizadas |
| 3 | Consistencia FS/DB | Cada archivo en docs/ tiene un registro en la base de datos, y viceversa |
| 4 | Archivos huérfanos | Archivos en disco sin registro en la base de datos |
| 5 | Registros huérfanos | Registros en la base de datos sin archivo en disco |
| 6 | Salud del índice de búsqueda | El conteo de documentos del índice Bleve coincide con el conteo de páginas |
| 7 | Enlaces internos rotos | Enlaces Markdown que apuntan a páginas inexistentes |
| 8 | Validez del frontmatter | Todas las páginas tienen frontmatter YAML válido con un título |
| 9 | Conectividad del repositorio git remoto | Si git está configurado, ¿se puede alcanzar el remoto? |
Códigos de salida
| Código | Significado |
|---|---|
0 |
Todas las verificaciones pasaron (saludable) |
1 |
Una o más verificaciones fallaron o tuvieron advertencias |
Use el código de salida en scripts y monitorización:
docplatform doctor || echo "Health check failed"
Ejemplo
docplatform doctor
Salida
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
Modo bundle
docplatform doctor --bundle
# Creates: docplatform-doctor-20250115.zip
El bundle se guarda en {DATA_DIR}/diagnostics/docplatform-diagnostics-{timestamp}.zip y contiene:
report.json— resultados de diagnóstico estructurados- Información del esquema (definiciones de tablas, sin datos de filas)
- Listado de archivos (rutas y tamaños, sin contenido)
- Información del sistema (SO, arquitectura, versión de Go)
- Últimas 1.000 líneas de logs de error
- Versión del servidor y configuración (con secretos redactados)
El bundle nunca incluye contenido de páginas, contraseñas, tokens ni claves privadas.
docplatform version
Imprimir versión, hash de commit y fecha de compilación.
docplatform version
Salida
docplatform v0.5.2 (commit: abc1234, built: 2026-03-08T10:00:00Z)
La información de versión se incrusta en tiempo de compilación mediante flags del linker. Útil para verificar qué versión está desplegada y para solicitudes de soporte.