# Directus - CMS y Gestor de Contenidos ## Información General - **Servidor**: CORP (92.112.181.188) - **Puerto**: 8055 - **URL Local**: http://localhost:8055 - **Tecnología**: Node.js / Vue.js - **Base de datos**: PostgreSQL (en ARCHITECT) ## Descripción Directus es un CMS headless y gestor de base de datos visual. Proporciona: - Interfaz visual para gestión de contenidos - API REST automática para todo contenido - Control de acceso granular basado en roles - Versionamiento y flujos de trabajo - Gestión de archivos y medios - Webhooks y automatización ## Instalación y Configuración ### Ubicación ```bash /opt/directus/ ├── config/ # Archivos de configuración ├── uploads/ # Archivos subidos por usuarios ├── extensions/ # Extensiones personalizadas └── node_modules/ # Dependencias ``` ### Configuración Principal Archivo: `/opt/directus/.env` ```env DB_CLIENT=postgres DB_HOST=69.62.126.110 DB_PORT=5432 DB_DATABASE=directus_db DB_USER=architect DB_PASSWORD=[password] ADMIN_EMAIL=admin@tzzr.me ADMIN_PASSWORD=[password] KEY=[generated_key] SECRET=[generated_secret] ``` ## Base de Datos **Host**: 69.62.126.110 (ARCHITECT) **Database**: directus_db **Usuario**: architect ### Backup ```bash pg_dump -h 69.62.126.110 -U architect directus_db > directus_db_backup.sql ``` ### Restaurar ```bash psql -h 69.62.126.110 -U architect directus_db < directus_db_backup.sql ``` ## Acceso - **URL**: http://localhost:8055/admin - **Usuario Admin**: admin@tzzr.me - **Contraseña**: [Cambiar en primer acceso] ## Funcionalidades Principales ### 1. Gestión de Contenidos - Creación de colecciones (tablas) - Definición de campos con tipos de datos - Control de acceso por colección - Búsqueda y filtrado avanzado ### 2. Roles y Permisos - Administrador - Editor - Revisor - Visor - Roles personalizados **Niveles de permiso**: - Ver - Crear - Actualizar - Eliminar - Compartir ### 3. Archivos y Medios - Subida de archivos (imágenes, documentos, etc.) - Carpetas organizadas - Miniaturas automáticas - Procesamiento de imágenes **Ubicación**: `/opt/directus/uploads/` ### 4. API REST Accesible en: `http://localhost:8055/api/rest/` Ejemplos: ```bash # Listar colecciones curl http://localhost:8055/api/rest/items/coleccion # Crear elemento curl -X POST http://localhost:8055/api/rest/items/coleccion \ -H "Content-Type: application/json" \ -d '{"campo": "valor"}' # Actualizar curl -X PATCH http://localhost:8055/api/rest/items/coleccion/id \ -H "Content-Type: application/json" \ -d '{"campo": "nuevo_valor"}' # Eliminar curl -X DELETE http://localhost:8055/api/rest/items/coleccion/id ``` ### 5. GraphQL Accesible en: `http://localhost:8055/api/graphql` Ejemplo: ```graphql query { coleccion { id campo1 campo2 } } ``` ### 6. Webhooks - Disparadores en eventos de datos - Envío a URLs externas - Transformación de datos - Integración con sistemas externos ### 7. Flujos de Trabajo - Aprobaciones de contenido - Automatización basada en eventos - Notificaciones - Transiciones de estado ## Administración ### Servicios ```bash # Estado systemctl status directus # Reiniciar systemctl restart directus # Logs tail -f /var/log/directus/directus.log ``` ### Actualización ```bash # Detener systemctl stop directus # Actualizar código cd /opt/directus && npm update # Reiniciar systemctl start directus # Ver logs tail -f /var/log/directus/directus.log ``` ### Gestión de Extensiones ```bash # Instalar extensión cd /opt/directus && npm install extension-name # Reiniciar para aplicar systemctl restart directus ``` ## Backup y Recuperación ### Backup Completo ```bash # Base de datos pg_dump -h 69.62.126.110 -U architect directus_db > /home/backups/directus_db_$(date +%Y%m%d).sql # Archivos subidos tar -czf /home/backups/directus_uploads_$(date +%Y%m%d).tar.gz /opt/directus/uploads/ # Configuración tar -czf /home/backups/directus_config_$(date +%Y%m%d).tar.gz /opt/directus/config/ /opt/directus/.env # Subir a R2 aws s3 cp /home/backups/ s3://architect/backups/ --recursive \ --endpoint-url https://7dedae6030f5554d99d37e98a5232996.r2.cloudflarestorage.com ``` ### Recuperación ```bash # Restaurar base de datos psql -h 69.62.126.110 -U architect directus_db < directus_db_backup.sql # Restaurar archivos tar -xzf directus_uploads_backup.tar.gz -C /opt/directus/ # Restaurar configuración tar -xzf directus_config_backup.tar.gz -C /opt/directus/ # Reiniciar systemctl restart directus ``` ## Troubleshooting ### Error de conexión ```bash psql -h 69.62.126.110 -U architect -d directus_db ``` ### Logs ```bash tail -n 200 /var/log/directus/directus.log ``` ### Limpiar cache ```bash systemctl stop directus rm -rf /opt/directus/.cache systemctl start directus ``` ### Regenerar claves de seguridad ```bash cd /opt/directus npm run cli secrets list npm run cli secrets generate ``` ## Casos de Uso 1. **CMS para Sitio Web** - Colecciones: Páginas, Artículos, Categorías - Roles: Administrador, Editor, Revisor 2. **Gestión de Productos** - Colecciones: Productos, Categorías, Atributos - Archivos: Imágenes de producto 3. **Blog** - Colecciones: Artículos, Categorías, Comentarios - Webhooks: Notificación de nuevos artículos 4. **Portal de Clientes** - Roles por cliente - Acceso granular a datos - API para aplicación frontend ## Últimas Actualizaciones - 2025-12-30: Documentación inicial