- Added comprehensive infrastructure overview - Server documentation: ARCHITECT, DECK, CORP, HST - Service documentation: Odoo, Directus, Context Manager - Includes configuration, monitoring, and backup procedures
269 lines
5.4 KiB
Markdown
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
|