# MANUAL DE USUARIO - CORP ## Sistema TZZR - Skynet v8 **Servidor:** 92.112.181.188 **Fecha:** 2025-12-30 --- # Manual de Usuario CORP - Parte 1: Introducción y Aplicaciones ## 1. Introducción a CORP ### ¿Qué es CORP en el sistema TTZR? CORP (Corporate Services Server) es el servidor de servicios empresariales del sistema TTZR. Forma parte de la infraestructura distribuida del sistema central TTZR (69.62.126.110) y proporciona soluciones integradas para gestión empresarial, contenidos y operaciones. **Información del Servidor:** - **IP**: 92.112.181.188 - **Rol en TTZR**: Servicios empresariales y gestión de contenidos - **Ubicación en infraestructura**: Servidor remoto accesible desde servidor central - **Estado**: Operativo en sistema TTZR ### Acceso SSH a CORP Para acceder al servidor CORP desde el servidor central TTZR o cualquier máquina autorizada: ```bash ssh -i ~/.ssh/tzzr root@92.112.181.188 ``` **Requisitos:** - Tener la clave privada SSH en `~/.ssh/tzzr` - Estar autorizado en el sistema TTZR - Conexión de red hacia 92.112.181.188 **Ejemplo de uso:** ```bash # Conexión básica ssh -i ~/.ssh/tzzr root@92.112.181.188 # Ejecutar comando remoto ssh -i ~/.ssh/tzzr root@92.112.181.188 "systemctl status" # Transferencia de archivos scp -i ~/.ssh/tzzr archivo.txt root@92.112.181.188:/home/ ``` ### Servicios Disponibles en CORP CORP aloja los siguientes servicios principales: | Servicio | Puerto | Descripción | Estado | |----------|--------|-------------|--------| | Odoo 17 | 8069 | ERP - Gestión empresarial integral | Activo | | Directus 11 | 8055 | CMS - Gestión de contenidos | Activo | | PostgreSQL | 5432 | Base de datos relacional | Activo | | SSH | 22 | Acceso remoto administrativo | Activo | --- ## 2. Odoo 17 (ERP) ### Acceso a Odoo 17 **URL:** `http://92.112.181.188:8069` Abrir en navegador web para acceder a la interfaz de gestión empresarial. ### ¿Qué es Odoo 17? Odoo es un suite empresarial completo (ERP - Enterprise Resource Planning) que integra todos los procesos de negocio en una plataforma unificada. Odoo 17 es la última versión estable con mejoras significativas en rendimiento, interfaz de usuario y capacidades de integración. **Características principales:** - Gestión integrada de múltiples módulos empresariales - Interfaz web moderna y responsive - API REST para integraciones - Sistema de permisos y roles granular - Reportes y análisis avanzados ### Módulos Disponibles en CORP Odoo 17 en CORP incluye los siguientes módulos principales: #### Módulos de Negocio - **Ventas** (Sales) - Gestión de oportunidades, presupuestos y pedidos - **Compras** (Purchases) - Gestión de compras y proveedores - **Inventario** (Inventory) - Control de stock y almacenes - **Facturación** (Invoicing) - Facturas de venta y compra - **Contabilidad** (Accounting) - Contabilidad general y fiscal - **CRM** (Customer Relationship Management) - Gestión de clientes y relaciones #### Módulos de Recursos - **Recursos Humanos** (HR) - Gestión de empleados y nóminas - **Proyectos** (Projects) - Gestión de proyectos y tareas - **Servicios** (Services) - Gestión de servicios y SLA #### Módulos de Análisis - **Business Intelligence** - Reportes y cuadros de mando - **Analítica** - Seguimiento de actividades y análisis ### Configuración Básica de Odoo 17 #### Acceso por Primera Vez 1. Abrir `http://92.112.181.188:8069` 2. Credenciales por defecto o las configuradas en la instalación 3. Cambiar contraseña en el perfil de usuario #### Configuración Inicial Recomendada **1. Empresas y Ubicaciones** ``` Configuración > Empresas - Crear/editar empresa principal - Definir moneda y país - Configurar información fiscal ``` **2. Usuarios y Permisos** ``` Configuración > Usuarios y Acceso - Crear usuarios por departamento - Asignar roles (Gerente de Ventas, Contador, etc.) - Configurar permisos específicos por módulo ``` **3. Plan Contable** ``` Contabilidad > Configuración > Plan Contable - Adaptar al país/jurisdicción - Configurar cuentas personalizadas ``` **4. Almacenes** ``` Inventario > Configuración > Almacenes - Definir ubicaciones físicas - Configurar rutas de envío ``` **5. Socios Comerciales** ``` CRM > Clientes o Compras > Proveedores - Importar base de datos existente - Configurar categorías y grupos ``` #### Operaciones Diarias - **Crear presupuestos/pedidos**: Sales > Quotations/Orders - **Registrar compras**: Purchases > Purchase Orders - **Gestionar inventario**: Inventory > Products/Stock - **Emitir facturas**: Invoicing > Customer/Vendor Invoices - **Registros contables**: Accounting > Journal Entries --- ## 3. Directus 11 (CMS) ### Acceso a Directus 11 **URL:** `http://92.112.181.188:8055` Interfaz web para gestión de contenidos y datos. ### ¿Qué es Directus 11? Directus es un CMS (Content Management System) y gestor de datos headless moderno. Permite gestionar contenidos, bases de datos y medios sin estar atado a una presentación específica. Directus 11 es la versión más reciente con arquitectura mejorada y mejor rendimiento. **Características principales:** - Gestión visual de bases de datos sin necesidad de SQL - CMS flexible para cualquier tipo de contenido - APIs REST y GraphQL automáticas - Versionado y auditoría de cambios - Gestión de acceso granular - Sistema de flujos de trabajo (workflows) ### Gestión de Contenidos #### Estructura de Datos En Directus, los contenidos se organizan en **Colecciones**: **Colecciones Comunes:** - **Pages** - Páginas web principales - **Blog Posts** - Artículos y publicaciones - **Products** - Catálogo de productos - **Team** - Información del equipo - **Settings** - Configuración global del sitio - **Media** - Archivos de imagen y documentos #### Interfaz de Gestión **Panel Principal:** ``` Interfaz > Collections (Colecciones) - Crear, editar, eliminar elementos - Organizar por campos personalizados - Relaciones entre colecciones ``` **Campos Disponibles:** - Texto (Text, Long Text) - Números (Integer, Decimal) - Selecciones (Dropdown, Multiple) - Fechas y hora - Booleanos - Relaciones (Many-to-One, One-to-Many, Many-to-Many) - Archivos (Imágenes, documentos) - JSON - Campos personalizados #### Gestión de Medios ``` Archivos > Todos los archivos - Subir imágenes y documentos - Organizar en carpetas - Transformaciones de imagen (redimensionamiento, filtros) - Integración automática en colecciones ``` ### API REST y GraphQL #### API REST Directus genera automáticamente una API REST basada en tu estructura de datos. **Endpoints automáticos:** ``` GET /items/pages - Obtener todas las páginas GET /items/pages/:id - Obtener página específica POST /items/pages - Crear página PATCH /items/pages/:id - Actualizar página DELETE /items/pages/:id - Eliminar página ``` **Ejemplo de petición:** ```bash curl -X GET "http://92.112.181.188:8055/api/items/pages" \ -H "Authorization: Bearer TOKEN" ``` **Autenticación:** ```bash curl -X POST "http://92.112.181.188:8055/auth/login" \ -H "Content-Type: application/json" \ -d '{"email":"usuario@ejemplo.com", "password":"contraseña"}' ``` #### API GraphQL Consultas GraphQL para obtener datos de forma más flexible: **Endpoint:** ``` POST http://92.112.181.188:8055/graphql ``` **Ejemplo de consulta:** ```graphql query { pages { id title content created_at } } ``` **Con filtros:** ```graphql query { pages(filter: {status: {_eq: "published"}}) { id title featured_image { id filename_disk } } } ``` ### Configuración de Directus 11 #### Acceso Administrativo ``` Configuración > Access Control - Roles y permisos - Usuarios administradores - Tokens API para automatización ``` #### Flujos de Trabajo (Workflows) ``` Flujos de Trabajo > Crear Flujo - Estados de contenido (Borrador, Pendiente revisión, Publicado) - Aprobaciones automáticas - Notificaciones ``` #### Extensiones e Integraciones ``` Extensiones > Gestionar - Hooks personalizados - Campos personalizados - Integraciones con servicios externos ``` #### Configuración de Base de Datos ``` Configuración > Colecciones - Crear nuevas colecciones - Definir campos - Establecer relaciones ``` --- ## Próximas Secciones Este es el Manual CORP Parte 1. Las siguientes secciones incluirán: - **Parte 2**: Administración de CORP (Gestión de servicios, bases de datos, backups) - **Parte 3**: Integración entre Odoo y Directus - **Parte 4**: Mantenimiento y troubleshooting - **Parte 5**: Procedimientos de respaldo y recuperación --- **Versión:** 1.0 **Fecha:** 2025-12-30 **Sistema:** TZZR - CORP (92.112.181.188) --- # Manual de Usuario CORP - PARTE 2: Servicios y Administración **Servidor**: corp (92.112.181.188) **Documento**: Guía de servicios, microservicios y administración del sistema TTZR --- ## 1. Otros Servicios ### Nextcloud (Puerto 8080) **Acceso**: http://92.112.181.188:8080 **Propósito**: Gestor de archivos compartidos, sincronización y colaboración **Funcionalidades principales**: - Almacenamiento personal y compartido - Sincronización de archivos entre dispositivos - Sharing de carpetas con permisos granulares - Editor de documentos colaborativo - Gestión de calendarios y contactos **Tareas comunes**: ```bash # Ver estado del contenedor docker ps | grep nextcloud # Acceder a logs docker logs nextcloud # Reiniciar servicio docker restart nextcloud ``` --- ### Vaultwarden (Puerto 8081) **Acceso**: http://92.112.181.188:8081 **Propósito**: Gestor de contraseñas y secretos cifrados **Funcionalidades principales**: - Almacenamiento seguro de credenciales - Generador de contraseñas - Sincronización con clientes (Web, Desktop, Mobile) - Auditoría de accesos - Backup automático **Tareas comunes**: ```bash # Ver estado docker ps | grep vaultwarden # Reiniciar docker restart vaultwarden # Backup de bóveda docker exec vaultwarden tar czf /data/backup.tar.gz /data/ ``` --- ### Shlink (Puerto 8082) **Acceso**: http://92.112.181.188:8082 **Propósito**: Generador y gestor de URLs cortas **Funcionalidades principales**: - Acortamiento de URLs largas - Estadísticas de clics y accesos - Dominio personalizado - QR automático - API para integración **Tareas comunes**: ```bash # Ver estadísticas curl http://92.112.181.188:8082/rest/stats # Crear URL corta (vía API) curl -X POST http://92.112.181.188:8082/api/v2/short-urls \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{"longUrl":"https://example.com/long/url"}' ``` --- ### ntfy (Puerto 8880) **Acceso**: http://92.112.181.188:8880 **Propósito**: Sistema de notificaciones push y eventos **Funcionalidades principales**: - Notificaciones en tiempo real - Suscripción a tópicos - Integración con webhooks - Sin autenticación (privacidad opcional) - Cliente CLI disponible **Tareas comunes**: ```bash # Enviar notificación curl -d "Hello from CORP" http://92.112.181.188:8880/alerts # Suscribirse a tópico curl -s http://92.112.181.188:8880/alerts/subscribe # Ver estado docker ps | grep ntfy ``` --- ## 2. Microservicios TTZR Los siguientes microservicios forman parte del sistema multiagente TTZR: ### Margaret (Puerto 5051) **Propósito**: Agente de orquestación y coordinación **Funcionalidades**: - Gestión de tareas distribuidas - Coordina workflows entre servicios - Mantiene estado del sistema **Acceso**: ```bash curl http://92.112.181.188:5051/health ``` --- ### Jared (Puerto 5052) **Propósito**: Procesamiento de datos y análisis **Funcionalidades**: - Transformación de datos - Análisis en tiempo real - Integración con pipeline de datos **Acceso**: ```bash curl http://92.112.181.188:5052/health ``` --- ### Mason (Puerto 5053) **Propósito**: Generación y gestión de reportes **Funcionalidades**: - Compilación de reportes - Exportación múltiples formatos - Programación de reportes **Acceso**: ```bash curl http://92.112.181.188:5053/reports ``` --- ### Feldman (Puerto 5054) **Propósito**: Auditoría y logging centralizado **Funcionalidades**: - Registro de eventos - Trazabilidad completa - Alertas de seguridad **Acceso**: ```bash curl http://92.112.181.188:5054/logs ``` --- ### HSU User Library (Puerto 5002) **Propósito**: Biblioteca de funciones y utilidades compartidas **Funcionalidades**: - Librerías reutilizables - Utilidades comunes - Versionado de dependencias **Acceso**: ```bash curl http://92.112.181.188:5002/api/libraries ``` --- ## 3. PostgreSQL ### Información General **Puerto**: 5432 **Conexión**: `psql -h 92.112.181.188 -U postgres -d ` ### Bases de Datos Principales #### ttzr **Propósito**: Base de datos central del sistema **Contenido**: - 32 tablas del módulo context-manager - Esquemas: - `00_base` - Estructura base - `01_immutable_log` - Log inmutable - `02_context_manager` - Gestor de contexto - `03_algorithm_engine` - Motor de algoritmos **Acceso**: ```bash psql -h 92.112.181.188 -U postgres -d ttzr \dt # Listar tablas \dn # Listar esquemas SELECT * FROM information_schema.tables WHERE table_schema = 'context_manager'; ``` --- #### corp **Propósito**: Datos específicos de operaciones corporativas **Contenido**: - Configuraciones locales - Estado de servicios - Logs de operación --- #### nextcloud **Propósito**: Almacenamiento de metadatos de Nextcloud **Contenido**: - Metadatos de archivos - Permisos y shares - Actividad de usuarios --- #### shlink **Propósito**: Almacenamiento de URLs cortas **Contenido**: - URLs originales y acortadas - Estadísticas de acceso - Dominio y mappeo --- #### odoo **Propósito**: ERP integrado **Contenido**: - Datos de negocio - CRM y ventas - Contabilidad **Acceso Odoo**: http://92.112.181.188:8069 --- ### Context-Manager Esquemas (32 Tablas) El módulo context-manager proporciona 32 tablas distribuidas en 4 esquemas: #### 00_base (Base Structures) Tablas fundamentales de estructura y tipos de datos #### 01_immutable_log (Auditoría y Trazabilidad) Log inmutable para auditoría completa del sistema ```sql SELECT * FROM immutable_log.events LIMIT 10; SELECT event_type, COUNT(*) FROM immutable_log.events GROUP BY event_type; ``` #### 02_context_manager (Gestor de Contexto) Gestión del contexto de ejecución y estado ```sql SELECT * FROM context_manager.contexts WHERE status = 'active'; SELECT * FROM context_manager.sessions; ``` #### 03_algorithm_engine (Motor de Algoritmos) Definición y ejecución de algoritmos ```sql SELECT * FROM algorithm_engine.algorithms; SELECT * FROM algorithm_engine.executions ORDER BY created_at DESC; ``` **Consulta completa de estructura**: ```bash psql -h 92.112.181.188 -U postgres -d ttzr -c "\dt" ``` --- ## 4. Administración y Troubleshooting ### Monitoreo General #### Estado de Servicios Docker ```bash ssh root@92.112.181.188 # Ver todos los contenedores docker ps -a # Ver logs en tiempo real docker logs -f # Ver recursos utilizados docker stats ``` #### Verificar Disponibilidad de Puertos ```bash # Desde el servidor netstat -tuln | grep LISTEN # Desde cliente remoto nc -zv 92.112.181.188 8080 nc -zv 92.112.181.188 5432 ``` --- ### Troubleshooting Común #### Servicio No Responde ```bash # 1. Verificar status docker ps | grep # 2. Ver logs docker logs # 3. Reiniciar docker restart # 4. Rebuild si persiste docker-compose down docker-compose up -d ``` #### PostgreSQL Connection Refused ```bash # Verificar que está corriendo docker ps | grep postgres # Reiniciar PostgreSQL docker restart postgres # Verificar conexión psql -h 92.112.181.188 -U postgres -c "SELECT version();" ``` #### Problemas de Almacenamiento ```bash # Ver uso de disco df -h # Limpiar contenedores stopped docker container prune -f # Limpiar imágenes sin usar docker image prune -f # Ver volúmenes docker volume ls ``` --- ### Backups y Recuperación #### Backup PostgreSQL ```bash docker exec postgres pg_dump -U postgres ttzr > ttzr_backup.sql # O completo (todas las BD) docker exec postgres pg_dumpall -U postgres > full_backup.sql ``` #### Restaurar PostgreSQL ```bash docker exec -i postgres psql -U postgres ttzr < ttzr_backup.sql ``` #### Backup Nextcloud ```bash docker exec nextcloud tar czf /data/backup.tar.gz /var/www/html ``` --- ### Logs y Auditoría #### Ver Logs Centralizados ```bash # Tabla de auditoría psql -h 92.112.181.188 -U postgres -d ttzr -c \ "SELECT * FROM immutable_log.events ORDER BY created_at DESC LIMIT 20;" # Por tipo de evento psql -h 92.112.181.188 -U postgres -d ttzr -c \ "SELECT event_type, COUNT(*) FROM immutable_log.events GROUP BY event_type;" ``` #### Logs de Feldman ```bash curl http://92.112.181.188:5054/logs?limit=100 ``` --- ### Comandos Útiles #### Conectarse a Base de Datos ```bash # Interactive psql -h 92.112.181.188 -U postgres -d ttzr # Desde línea de comandos psql -h 92.112.181.188 -U postgres -d ttzr -c "SELECT COUNT(*) FROM information_schema.tables;" ``` #### Ejecutar SQL Script ```bash psql -h 92.112.181.188 -U postgres -d ttzr -f script.sql ``` #### Health Check Completo ```bash #!/bin/bash echo "=== Docker Containers ===" ssh root@92.112.181.188 docker ps echo "=== PostgreSQL ===" psql -h 92.112.181.188 -U postgres -c "SELECT 'OK' as status;" echo "=== Services HTTP ===" for port in 8080 8081 8082 8880 5051 5052 5053 5054 5002; do curl -s http://92.112.181.188:$port/health || echo "Port $port: DOWN" done ``` --- ## Contacto y Soporte Para problemas o preguntas: - **Sistema Central**: Gitea en 69.62.126.110 - **Auditoría**: Revisar logs en Feldman (5054) - **Documentación**: R2 `s3://architect/documentos adjuntos/` --- **Última actualización**: 2025-12-30 **Versión**: 2.0 - Servicios y Administración --- # MANUAL DE USUARIO CORP - PARTE 3 ## Guías Rápidas y Procedimientos Frecuentes **Fecha:** 2025-12-30 **Versión:** 1.0 **Servidor:** corp (root@92.112.181.188) --- ## 1. GUÍA RÁPIDA DE INICIO ### 1.1 Primeros Pasos en CORP #### Acceso al Servidor ```bash # Conectarse via SSH ssh root@92.112.181.188 # Verificar servicios activos docker ps # Ver estado general docker ps -a ``` #### Verificación de Conectividad ```bash # Ping a servicios locales curl -I http://localhost:3000 # Directus curl -I http://localhost:8000 # Odoo curl -I http://localhost:8080 # Nextcloud curl -I http://localhost:3001 # Shlink # Ver logs de Docker Compose docker-compose logs ``` ### 1.2 Acceder a Odoo #### URL y Credenciales - **URL:** `http://92.112.181.188:8000` - **Usuario:** admin - **Contraseña:** [Ver en .env] #### Primeros Pasos 1. Login con credenciales 2. Ir a Dashboard 3. Módulos disponibles: - Ventas (Sales) - Facturación (Invoicing) - Inventario (Inventory) - Contabilidad (Accounting) - RR.HH. (HR) #### Navegación Básica ``` Menú Principal > Módulo Deseado > Operación ``` Ejemplo: ``` Sales > Orders > Create Order ``` ### 1.3 Acceder a Directus #### URL y Credenciales - **URL:** `http://92.112.181.188:3000` - **Usuario:** admin@directus.io - **Contraseña:** [Ver en .env] #### Interfaz Principal 1. **Collections** - Tablas de datos 2. **Items** - Registros individuales 3. **Settings** - Configuración 4. **Users** - Gestión de usuarios #### Primeros Pasos 1. Login 2. Explora Collections disponibles 3. Crea tu primer Item 4. Configurar permisos de acceso --- ## 2. CASOS DE USO COMUNES ### 2.1 Crear una Factura en Odoo #### Paso a Paso **1. Acceder a Facturación** ``` Menu Principal > Accounting > Invoices > Create ``` **2. Completar Datos Básicos** - Partner (Cliente) - Invoice Type: Invoice - Invoice Date - Due Date **3. Agregar Líneas de Factura** - Click en "Add a line" - Seleccionar Producto - Cantidad - Precio unitario - Impuesto (si aplica) **4. Revisar Totales** - Subtotal - Impuestos - Total **5. Confirmar** - Click en "Confirm" - Estado cambia a "Posted" **6. Enviar al Cliente** - Click en "Send & Print" - Seleccionar método (Email/Print) #### Consejos - Guardar borradores regularmente (Ctrl+S) - Revisar datos del cliente antes de confirmar - Mantener histórico de facturas --- ### 2.2 Gestionar Contenido en Directus #### Crear una Nueva Colección **1. Ir a Settings** ``` Settings > Data Model > New Collection ``` **2. Definir Estructura** - Name: Nombre de la colección - Primary Key: campo único - Agregar Fields - Nombre del campo - Tipo de dato (String, Integer, etc.) - Opciones adicionales **3. Crear Items** ``` Collections > Mi Colección > Create ``` **4. Completar Datos** - Rellenar campos - Guardar ("Save") #### Tipos de Campos Comunes | Tipo | Uso | |------|-----| | String | Texto corto | | Text | Texto largo | | Integer | Números enteros | | Decimal | Números decimales | | Date | Fechas | | Boolean | Verdadero/Falso | | JSON | Datos complejos | | Relationship | Relaciones entre tablas | #### Gestionar Permisos ``` Settings > Access Control > Roles > Editar Rol ``` Seleccionar permisos para: - Create (crear) - Read (leer) - Update (actualizar) - Delete (eliminar) --- ### 2.3 Compartir Archivos en Nextcloud #### URL y Acceso - **URL:** `http://92.112.181.188:8080` - **Usuario:** [Ver en .env] - **Contraseña:** [Ver en .env] #### Subir Archivo **1. Dashboard** ``` Nextcloud > Files ``` **2. Subir** - Arrastrar archivo o Click en "+" - Seleccionar archivo - Esperar carga **3. Compartir** - Click derecho > Share - Opciones: - Por enlace - Con usuario específico - Configurar permisos (read/edit) #### Crear Carpeta Compartida **1. Nueva Carpeta** ``` Click en "+" > Create Folder ``` **2. Nombrar Carpeta** ``` "Nombre Proyecto" ``` **3. Compartir** - Seleccionar carpeta - Click "Share" - Agregar usuarios - Permisos: Read/Edit/Share #### Tips - Organizar por proyectos - Usar nombres descriptivos - Revisar permisos regularmente - Limpiar archivos antiguos --- ### 2.4 Crear URL Corta con Shlink #### URL del Servicio - **URL:** `http://92.112.181.188:3001` - **API:** `http://92.112.181.188:3001/api/v3` #### Crear URL Corta (Web) **1. Acceder a Shlink** ``` http://92.112.181.188:3001 ``` **2. New Short URL** - Long URL: URL original - Custom short code: (opcional) - Domain: seleccionar dominio - Options: - Make it private - Set expiration date - Limit visits **3. Crear** ``` Click "Create" ``` **4. Usar URL Corta** ``` http://92.112.181.188:3001/{short-code} ``` #### Crear URL Corta (CLI) ```bash # Obtener API Key # Está en Shlink Admin Panel curl -X POST http://92.112.181.188:3001/api/v3/short-urls \ -H "Content-Type: application/json" \ -H "X-API-Key: YOUR_API_KEY" \ -d '{ "longUrl": "https://ejemplo.com/ruta/muy/larga", "customSlug": "mi-url-corta", "maxVisits": 100, "validSince": "2025-01-01T00:00:00Z" }' ``` #### Ver Estadísticas ``` Dashboard > Short URLs > Seleccionar URL > Ver Stats ``` Información disponible: - Visitas totales - Gráfico temporal - Referrers - Devices/OS - Países --- ## 3. COMANDOS FRECUENTES ### 3.1 Comandos Docker #### Ver Servicios en Ejecución ```bash # Listar contenedores activos docker ps # Listar todos (incluyendo parados) docker ps -a # Ver tamaño de contenedores docker ps --size ``` #### Ver Logs ```bash # Logs del último servicio (últimas 100 líneas) docker logs -f --tail=100 odoo # Logs de Directus docker logs -f directus # Logs de Nextcloud docker logs -f nextcloud # Logs en tiempo real (Ctrl+C para salir) docker logs -f nombre-contenedor ``` #### Reiniciar Servicios ```bash # Reiniciar servicio específico docker-compose restart odoo docker-compose restart directus docker-compose restart nextcloud # Reiniciar todos los servicios docker-compose restart # Detener servicio docker-compose stop nombre-servicio # Iniciar servicio docker-compose start nombre-servicio # Recrear contenedor (con nuevas imágenes) docker-compose up -d --force-recreate nombre-servicio ``` #### Estadísticas de Uso ```bash # Ver CPU, memoria, red docker stats # Salida formateada docker stats --no-stream ``` #### Inspeccionar Contenedor ```bash # Ver detalles del contenedor docker inspect nombre-contenedor # Ver variables de entorno docker inspect -f '{{json .Config.Env}}' nombre-contenedor | jq ``` ### 3.2 Comandos PostgreSQL #### Conectarse a PostgreSQL ```bash # Acceso directo docker exec -it postgres psql -U postgres # Con base de datos específica docker exec -it postgres psql -U postgres -d odoo_db ``` #### Queries Útiles **Información General** ```sql -- Ver bases de datos \l -- Ver tablas \dt -- Conectarse a BD específica \c nombre_bd -- Ver estructura de tabla \d nombre_tabla ``` **Usuarios y Conexiones** ```sql -- Ver usuarios SELECT * FROM pg_user; -- Ver conexiones activas SELECT datname, usename, application_name, state FROM pg_stat_activity WHERE state IS NOT NULL; -- Matar conexión específica SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = 'nombre_bd' AND pid <> pg_backend_pid(); ``` **Odoo - Queries Comunes** ```sql -- Ver empresas SELECT id, name FROM res_company; -- Ver usuarios SELECT id, login, name FROM res_users LIMIT 10; -- Ver facturas SELECT id, name, state, amount_total FROM account_move WHERE move_type = 'out_invoice' ORDER BY date DESC LIMIT 10; -- Contar facturas por estado SELECT state, COUNT(*) as total FROM account_move GROUP BY state; -- Facturas sin pagar SELECT id, name, amount_total, invoice_date FROM account_move WHERE move_type = 'out_invoice' AND payment_state = 'not_paid' ORDER BY invoice_date DESC; ``` **Directus - Queries** ```sql -- Ver colecciones SELECT * FROM directus_collections; -- Ver campos SELECT collection, field, type FROM directus_fields; -- Ver usuarios Directus SELECT id, email, first_name, last_name FROM directus_users; -- Ver roles SELECT id, name FROM directus_roles; ``` **Performance** ```sql -- Tablas más grandes SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size FROM pg_tables WHERE schemaname NOT IN ('pg_catalog', 'information_schema') ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC; -- Índices no usados SELECT schemaname, tablename, indexname FROM pg_stat_user_indexes WHERE idx_scan = 0 ORDER BY pg_size_pretty(pg_relation_size(indexrelid)) DESC; ``` #### Backup y Restore ```bash # Backup de base de datos docker exec postgres pg_dump -U postgres nombre_bd > backup.sql # Backup comprimido docker exec postgres pg_dump -U postgres nombre_bd | gzip > backup.sql.gz # Restaurar docker exec -i postgres psql -U postgres nombre_bd < backup.sql # Restaurar desde comprimido zcat backup.sql.gz | docker exec -i postgres psql -U postgres nombre_bd ``` ### 3.3 Tips de Productividad #### Atajos de Teclado Útiles **Navegación General** | Atajo | Acción | |-------|--------| | Ctrl+K | Búsqueda global (Odoo) | | Ctrl+H | Historial | | Ctrl+S | Guardar | | Ctrl+Shift+N | Nueva pestaña | | Alt+← | Atrás | | Alt+→ | Adelante | **En Odoo** | Atajo | Acción | |-------|--------| | Ctrl+L | Saltar a búsqueda de registros | | Ctrl+Shift+J | Abrir consola de desarrollador | | Tab | Siguiente campo | | Shift+Tab | Campo anterior | **En Directus** | Atajo | Acción | |-------|--------| | Ctrl+S | Guardar | | Ctrl+D | Duplicar | | Ctrl+L | Saltar a búsqueda | #### Macros y Automatización **Crear filtro rápido en Odoo** ``` Haz clic en el icono de embudo (Filter) Agrega condiciones Guarda como filtro personalizado ``` **Búsqueda avanzada** ``` [campo] = valor [campo] >= valor [campo] like '%texto%' [campo] in (valor1, valor2) ``` #### Troubleshooting Rápido **Servicio no responde** ```bash # 1. Ver logs docker logs nombre-servicio # 2. Reiniciar docker-compose restart nombre-servicio # 3. Ver estado docker ps | grep nombre-servicio # 4. Si falla, recrear docker-compose up -d --force-recreate nombre-servicio ``` **Olvidé credenciales** ```bash # Ver variables de entorno docker exec nombre-contenedor env | grep -i pass # O revisar el .env cat .env | grep -i -E "(user|pass|secret)" ``` **Base de datos lenta** ```bash # Ver conexiones activas docker exec -it postgres psql -U postgres -c \ "SELECT datname, count(*) FROM pg_stat_activity GROUP BY datname;" # Optimizar tabla docker exec -it postgres psql -U postgres -c "VACUUM ANALYZE nombre_tabla;" ``` **Problema de espacio disco** ```bash # Ver uso de disco df -h # Ver tamaño de volúmenes Docker docker system df # Limpiar datos no usados docker system prune -a --volumes ``` --- ## 4. GUÍA DE SOPORTE ### Reportar Problemas 1. Recopilar información: - Logs relevantes - Pasos para reproducir - Capturas de pantalla 2. Contactar: - **Admin del Sistema:** Revisar en documentación - **Reportar en:** Gitea Issues ### Contacto de Emergencia - Sistema centralizado: TZZR (69.62.126.110) - Acceso SSH disponible para administradores --- **Fin del Manual - PARTE 3** *Para actualizaciones y mejoras, contactar al equipo de administración del sistema.*