Files
infrastructure-docs/services/directus.md
ARCHITECT e47274c408 Infrastructure documentation - Initial commit
- Added comprehensive infrastructure overview
- Server documentation: ARCHITECT, DECK, CORP, HST
- Service documentation: Odoo, Directus, Context Manager
- Includes configuration, monitoring, and backup procedures
2025-12-30 15:58:37 +00:00

269 lines
5.4 KiB
Markdown

# 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