Files
system-docs/MANUAL_USUARIO_DECK.md
ARCHITECT 9f3a4214d3 Sync from R2 skynet v8: manuales, operación, glosario v3
Añadido:
- MANUAL_USUARIO_ARCHITECT.md
- MANUAL_USUARIO_CORP.md
- MANUAL_USUARIO_DECK.md
- MANUAL_USUARIO_HST.md
- 07_OPERACION/ (monitoring, runbooks, incident_response)
- glosario_she_enterprise_v3.md

Eliminado:
- glosario_she_enterprise_v2.md (reemplazado por v3)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-01 10:53:57 +00:00

1440 lines
35 KiB
Markdown

# MANUAL DE USUARIO - DECK
## Sistema TZZR - Skynet v8
**Servidor:** 72.62.1.113
**Fecha:** 2025-12-30
---
# Manual de Usuario - DECK (72.62.1.113)
## PARTE 1: Introducción y Servicios
---
## 1. Introducción a DECK
### ¿Qué es DECK?
DECK es uno de los cuatro servidores principales del sistema TZZR (The Zero-Trust Resilient Resource Network), ubicado en la dirección IP **72.62.1.113**.
DECK actúa como **servidor de servicios** y aloja:
- **Agentes especializados** (Clara, Alfred, Mason, Feldman) que procesan datos e interactúan con otros sistemas
- **Servicios empresariales** (Correo, almacenamiento en la nube, contraseñas, etc.)
- **Infraestructura de datos** (PostgreSQL con pgvector, Redis)
- **Aplicaciones integradas** (ERP, CMS, notificaciones, gestor de archivos)
### Rol en la Infraestructura TZZR
El sistema TZZR consta de 4 servidores distribuidos:
| Servidor | IP | Función Principal |
|----------|----|--------------------|
| **Central** | 69.62.126.110 | Coordinación (Gitea, PostgreSQL central) |
| **DECK** | 72.62.1.113 | Servicios, Agentes, Mail (Este servidor) |
| **CORP** | 92.112.181.188 | Agentes especializados (Margaret, Jared) |
| **HST** | 72.62.2.84 | Directus, gestión de imágenes |
### Acceso SSH a DECK
Para conectarse a DECK desde la máquina central o cualquier servidor autorizado:
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113
```
**Requisitos:**
- Tener la clave privada SSH en `~/.ssh/tzzr`
- Permisos de acceso configurados
- Conectividad de red al servidor
**Verificar conexión:**
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "echo 'Conexión exitosa'"
```
---
## 2. Servicios en DECK
DECK aloja tres categorías principales de servicios:
### 2.1 Microservicios TZZR (Puertos 505x)
Estos son servicios especializados del ecosistema TZZR que se comunican entre sí:
#### Clara (Puerto 5051)
- **Descripción:** Log inmutable y auditoría
- **Propósito:** Registra todas las transacciones y eventos del sistema de forma imposible de modificar
- **Uso:** Auditoría, trazabilidad, compliance
- **Estado:** Verificar con `service clara`
#### Alfred (Puerto 5052)
- **Descripción:** Automatización de flujos de trabajo
- **Propósito:** Ejecuta flujos de trabajo definidos, orquesta tareas entre servicios
- **Uso:** Automatización de procesos empresariales
- **Estado:** Verificar con `service alfred`
#### Mason (Puerto 5053)
- **Descripción:** Espacio de enriquecimiento de datos
- **Propósito:** Enriquece datos con información contextual, aplica transformaciones
- **Uso:** Procesamiento y normalización de datos
- **Estado:** Verificar con `service mason`
#### Feldman (Puerto 5054)
- **Descripción:** Validador Merkle
- **Propósito:** Verifica integridad de datos mediante árboles de Merkle
- **Uso:** Validación criptográfica, verificación de integridad
- **Estado:** Verificar con `service feldman`
### 2.2 Aplicaciones Empresariales
Servicios de aplicación usuario-final para uso cotidiano:
#### Nextcloud (Puerto 8084)
- **Descripción:** Almacenamiento en la nube y colaboración
- **URL:** https://cloud.tzzrdeck.me
- **Uso:** Compartir archivos, calendario, contactos
- **Capacidades:** Sincronización, compartir enlaces, versiones
#### Odoo (Puerto 8069)
- **Descripción:** Sistema ERP completo
- **URL:** https://odoo.tzzrdeck.me
- **Uso:** Facturación, inventario, CRM, recursos humanos
- **Usuarios:** Acceso basado en roles
#### Vaultwarden (Puerto 8085)
- **Descripción:** Gestor de contraseñas empresarial
- **URL:** https://vault.ttzrdeck.me
- **Uso:** Almacenar y gestionar contraseñas de forma segura
- **Integración:** Compatible con Bitwarden
#### Directus (Puerto 8055)
- **Descripción:** CMS y gestor de contenido headless
- **URL:** https://directus.tzzrdeck.me
- **Uso:** Crear y gestionar contenido, APIs automáticas
- **Flexible:** Base de datos agnóstica
#### Shlink (Puerto 8083)
- **Descripción:** Acortador de URLs
- **URL:** https://shlink.tzzrdeck.me
- **Uso:** Crear URLs cortas, rastreo de clics
- **Analytics:** Estadísticas de uso
#### Ntfy (Puerto 8080)
- **Descripción:** Sistema de notificaciones
- **URL:** https://ntfy.tzzrdeck.me
- **Uso:** Enviar notificaciones a través de HTTP
- **Integración:** Webhooks y push notifications
#### FileBrowser (Puerto 8082)
- **Descripción:** Gestor de archivos web
- **URL:** https://files.tzzrdeck.me
- **Uso:** Explorar, descargar, subir archivos
- **Seguridad:** Control de permisos por usuario
### 2.3 Infraestructura de Datos
#### PostgreSQL (Puerto 5432)
- **Descripción:** Base de datos principal del sistema
- **Características:** pgvector activado (búsqueda vectorial para IA)
- **Datos:** Contiene todas las bases de datos del sistema TZZR
- **Backup:** Se realiza automatizado
#### Redis (Puerto 6379)
- **Descripción:** Cache en memoria de alta velocidad
- **Uso:** Cache de sesiones, cache de consultas, pub/sub
- **Rendimiento:** Milisegundos de latencia
### 2.4 Servicios de Correo
#### Mailcow (Puerto 8180)
- **Descripción:** Servidor de correo empresarial completo
- **URL:** https://mail.tzzr.net
- **Servicios incluidos:**
- SMTP (envío de correos)
- IMAP/POP3 (lectura de correos)
- Webmail integrado
- Filtrado de spam
- Certificados SSL automáticos
- **Componentes:**
- Postfix: SMTP
- Dovecot: IMAP/POP3
- Nginx: Reverse proxy y webmail
- MySQL: Base de datos
- Redis: Cache
**Contenedores Mailcow:**
```
postfix-mailcow - Servidor SMTP
dovecot-mailcow - Servidor IMAP/POP3
nginx-mailcow - Webmail y reverse proxy
mysql-mailcow - Base de datos
redis-mailcow - Cache
```
---
## 3. Context-Manager (Gestor de Contexto)
### ¿Qué es Context-Manager?
Context-Manager es una herramienta central que permite a los agentes TZZR:
- Mantener contexto persistente de conversaciones
- Acceder a bloques de contexto previamente creados
- Gestionar memoria de largo plazo
- Compartir información entre agentes
### Instalación y Configuración
Context-Manager está disponible como CLI en DECK. Para verificar su disponibilidad:
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "context-manager --help"
```
### Comandos Principales
#### `context-manager --help`
Muestra ayuda sobre todos los comandos disponibles.
```bash
context-manager --help
```
**Ejemplo de salida:**
```
Context Manager CLI
==================
Comandos:
block list - Listar bloques de contexto
block add - Crear nuevo bloque
block view <id> - Ver contenido de bloque
block remove <id> - Eliminar bloque
memory list - Listar memorias
memory add - Agregar a memoria
memory clear - Limpiar memoria
chat - Iniciar chat interactivo
```
#### `context-manager block list`
Lista todos los bloques de contexto almacenados.
```bash
context-manager block list
```
**Ejemplo:**
```
ID | Nombre | Tipo | Fecha Creación
------|---------------------|----------|------------------
001 | Historia Clara | metadata | 2025-12-15 10:30
002 | Configuración TZZR | config | 2025-12-20 14:45
003 | Directorio RFC | reference| 2025-12-28 09:15
```
**Campos:**
- `ID`: Identificador único del bloque
- `Nombre`: Descripción del contenido
- `Tipo`: Categoría (metadata, config, reference, etc.)
- `Fecha Creación`: Cuándo se creó el bloque
#### `context-manager block view <ID>`
Ver el contenido completo de un bloque específico.
```bash
context-manager block view 002
```
**Ejemplo:**
```
Bloque: 002
Nombre: Configuración TZZR
Tipo: config
Creado: 2025-12-20 14:45
Contenido:
---------
{
"central_ip": "69.62.126.110",
"servers": {
"deck": "72.62.1.113",
"corp": "92.112.181.188",
"hst": "72.62.2.84"
},
"database": {
"host": "localhost",
"port": 5432,
"name": "tzzr_main"
}
}
```
#### `context-manager memory list`
Lista todos los elementos guardados en memoria compartida.
```bash
context-manager memory list
```
**Ejemplo:**
```
Memoria Compartida (15 items)
=============================
1. Clara - Último estado: up
2. Alfred - Procesos pendientes: 3
3. Mason - Últimas transformaciones: 2025-12-29 16:42
4. Feldman - Validaciones en caché: 127
5. PostgreSQL - Conexiones activas: 8
```
#### `context-manager memory add`
Agregar nueva información a memoria compartida.
```bash
context-manager memory add "nombre_clave" "contenido o JSON"
```
**Ejemplo:**
```bash
context-manager memory add "configuracion_temporal" '{"modo": "mantenimiento", "fecha": "2025-12-30"}'
```
#### `context-manager chat`
Inicia una sesión de chat interactivo con Context-Manager (útil para debugging).
```bash
context-manager chat
```
### Ejemplos de Uso Práctico
#### Ejemplo 1: Verificar estado del sistema
```bash
# Ver si hay configuración de mantenimiento
context-manager block view configuracion_mantenimiento
# Revisar estado en memoria
context-manager memory list
```
#### Ejemplo 2: Crear un bloque de contexto para una tarea
```bash
# Los agentes pueden crear bloques para compartir información
context-manager block add "migracion_datos_2025" \
--tipo "project" \
--contenido '{"estado": "en_progreso", "agentes": ["clara", "mason"]}'
```
#### Ejemplo 3: Consultar desde un script
```bash
#!/bin/bash
# Script que usa context-manager
CONTEXTO=$(context-manager block view configuracion)
echo "Contexto actual: $CONTEXTO"
# Actualizar estado
context-manager memory add "script_estado" "completado"
```
---
## 4. Gestión de Servicios en DECK
### Comandos Generales de Estado
#### Ver estado del sistema
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker ps -a"
```
Muestra todos los contenedores (activos e inactivos).
#### Ver estadísticas del sistema
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "free -h" # Memoria
ssh -i ~/.ssh/tzzr root@72.62.1.113 "df -h /" # Disco
ssh -i ~/.ssh/tzzr root@72.62.1.113 "top -bn1" # Procesos
```
### Comandos para Servicios Específicos
#### Obtener estado de un servicio
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker ps --filter name=clara"
```
#### Ver logs de un servicio
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker logs clara-service --tail 50"
```
#### Reiniciar un servicio
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker restart clara-service"
```
#### Detener un servicio
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker stop nextcloud"
```
#### Iniciar un servicio
```bash
ssh -i ~/.ssh/tzzr root@72.62.1.113 "docker start nextcloud"
```
---
## 5. Acceso a Servicios Web
### URLs de Acceso
Todos los servicios web están disponibles bajo el dominio `tzzrdeck.me`:
| Servicio | URL | Puerto | Usuario Típico |
|----------|-----|--------|-----------------|
| Nextcloud | https://cloud.tzzrdeck.me | 8084 | Tu usuario LDAP |
| Odoo | https://odoo.tzzrdeck.me | 8069 | Tu usuario Odoo |
| Vaultwarden | https://vault.tzzrdeck.me | 8085 | Tu usuario Bitwarden |
| Directus | https://directus.tzzrdeck.me | 8055 | Tu usuario Directus |
| Shlink | https://shlink.tzzrdeck.me | 8083 | Tu usuario Shlink |
| Ntfy | https://ntfy.tzzrdeck.me | 8080 | Sin autenticación* |
| FileBrowser | https://files.tzzrdeck.me | 8082 | Tu usuario local |
| Webmail (Mailcow) | https://mail.tzzr.net | 8180 | Tu email |
*Ntfy puede usarse sin autenticación o con ella según configuración.
### Verificar Conectividad
Para verificar que un servicio está accesible:
```bash
curl -I https://cloud.tzzrdeck.me
curl -I https://mail.tzzr.net
```
Deberías recibir respuesta HTTP 200 o 302 (redirección a login).
---
## 6. Tabla de Referencia Rápida
### Puertos Principales en DECK
```
5051 - Clara (Log inmutable)
5052 - Alfred (Automatización)
5053 - Mason (Enriquecimiento)
5054 - Feldman (Validador Merkle)
5432 - PostgreSQL
6379 - Redis
8055 - Directus
8069 - Odoo
8080 - Ntfy
8082 - FileBrowser
8083 - Shlink
8084 - Nextcloud
8085 - Vaultwarden
8180 - Mailcow
22 - SSH
```
### Comandos Rápidos
```bash
# Conectar a DECK
ssh -i ~/.ssh/tzzr root@72.62.1.113
# Ver todos los servicios
docker ps -a
# Ver memoria y disco
free -h && df -h /
# Ver logs de Clara
docker logs clara-service -f
# Reiniciar Nextcloud
docker restart nextcloud
```
---
## 7. Próximas Partes del Manual
Este es el **PARTE 1** del manual. Las siguientes partes cubrirán:
- **PARTE 2:** Guía de Usuarios - Acceso a aplicaciones web
- **PARTE 3:** Gestión de Correo - Administración de Mailcow
- **PARTE 4:** Backup y Recuperación
- **PARTE 5:** Troubleshooting y Resolución de Problemas
- **PARTE 6:** Integración y APIs de Servicios TZZR
---
## 8. Soporte y Contacto
Para problemas o consultas:
1. **Verificar logs:** `docker logs <servicio>`
2. **Revisar documentación:** Contactar al equipo de ARCHITECT
3. **Escalation:** Reportar al coordinador central (CAPTAIN CLAUDE)
---
**Última actualización:** 2025-12-30
**Versión:** 1.0
**Aplicable a:** DECK (72.62.1.113)
# Manual de Usuario DECK (72.62.1.113) - PARTE 2
## PostgreSQL y Administración
**Versión:** 1.0
**Fecha:** 2025-12-30
**Sistema:** TZZR - Infraestructura Centralizada
---
## 1. PostgreSQL
### 1.1 Conexión a PostgreSQL
#### Conexión como usuario postgres
```bash
sudo -u postgres psql -d tzzr
```
#### Parámetros comunes
- **Host:** localhost (por defecto)
- **Puerto:** 5432 (por defecto)
- **Usuario:** postgres
- **Base de datos:** tzzr
#### Comandos básicos en psql
```bash
\l # Listar bases de datos
\c [nombre_db] # Conectar a una base de datos
\dt # Listar tablas
\d [nombre_tabla] # Describir estructura de tabla
\du # Listar usuarios/roles
\q # Salir
\h # Ayuda de comandos SQL
```
### 1.2 Bases de Datos
#### Base de datos: `tzzr`
Base de datos principal del sistema TZZR.
#### Base de datos: `deck`
Base de datos específica del servidor DECK.
#### Ver todas las bases de datos
```bash
sudo -u postgres psql -c "\l"
```
### 1.3 Tablas Principales del Context-Manager
El context-manager gestiona las siguientes tablas en la base de datos `tzzr`:
#### Tabla: `immutable_log`
Registro inmutable de todas las operaciones del sistema.
```bash
# Ver estructura
sudo -u postgres psql -d tzzr -c "\d immutable_log"
# Ver últimas 10 entradas
sudo -u postgres psql -d tzzr -c "SELECT * FROM immutable_log ORDER BY timestamp DESC LIMIT 10;"
```
#### Tabla: `context_state`
Estado actual del contexto del sistema.
```bash
# Ver estado actual
sudo -u postgres psql -d tzzr -c "SELECT * FROM context_state;"
```
#### Tabla: `algorithm_engine`
Configuración y estado del motor de algoritmos.
```bash
# Ver configuración
sudo -u postgres psql -d tzzr -c "SELECT * FROM algorithm_engine;"
```
#### Tabla: `agents`
Registro de agentes activos en el sistema.
```bash
# Ver agentes activos
sudo -u postgres psql -d tzzr -c "SELECT * FROM agents WHERE active = true;"
```
#### Tabla: `audit_log`
Registro de auditoría de todas las operaciones administrativas.
```bash
# Ver auditoría reciente
sudo -u postgres psql -d tzzr -c "SELECT * FROM audit_log ORDER BY timestamp DESC LIMIT 20;"
```
### 1.4 Consultas Útiles
#### Verificar integridad de la base de datos
```bash
sudo -u postgres psql -d tzzr -c "
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;"
```
#### Verificar conexiones activas
```bash
sudo -u postgres psql -d tzzr -c "
SELECT pid, usename, application_name, client_addr, state
FROM pg_stat_activity
WHERE pid <> pg_backend_pid();"
```
#### Verificar índices
```bash
sudo -u postgres psql -d tzzr -c "
SELECT schemaname, tablename, indexname
FROM pg_indexes
WHERE schemaname NOT IN ('pg_catalog', 'information_schema');"
```
---
## 2. Administración
### 2.1 Comandos Docker Útiles
#### Ver estado de contenedores
```bash
docker ps # Contenedores activos
docker ps -a # Todos los contenedores
docker status # Estado general de Docker
```
#### Gestionar contenedores
```bash
docker start [container_id] # Iniciar contenedor
docker stop [container_id] # Detener contenedor
docker restart [container_id] # Reiniciar contenedor
docker logs [container_id] # Ver logs
docker logs -f [container_id] # Logs en tiempo real
docker exec -it [container_id] bash # Acceso interactivo
```
#### Gestionar imágenes
```bash
docker images # Listar imágenes
docker pull [image] # Descargar imagen
docker rmi [image_id] # Eliminar imagen
docker image prune # Limpiar imágenes no usadas
```
#### Ver recursos
```bash
docker stats # Uso de CPU/memoria en tiempo real
docker system df # Uso de disco
```
### 2.2 Logs y Diagnóstico
#### Logs de PostgreSQL
```bash
# Si PostgreSQL está en Docker
docker logs [postgres_container_id] | tail -100
# Si PostgreSQL está en el host
sudo tail -100 /var/log/postgresql/postgresql.log
```
#### Logs de Gitea
```bash
docker logs [gitea_container_id] | tail -100
```
#### Logs del sistema
```bash
sudo journalctl -xe # Últimos errores del sistema
sudo journalctl -u docker # Logs específicos de Docker
dmesg | tail -50 # Logs del kernel
```
#### Diagnóstico de red
```bash
netstat -tlnp # Puertos escuchando
ss -tlnp # Alternativa moderna de netstat
ping 69.62.126.110 # Conectividad con servidor central
```
#### Verificar espacio en disco
```bash
df -h # Espacio en particiones
du -sh /* # Uso por directorio
du -sh /var/lib/docker/* # Uso de Docker
```
### 2.3 Backups
#### Backup manual de PostgreSQL
```bash
# Backup completo de la base de datos tzzr
sudo -u postgres pg_dump tzzr > /tmp/tzzr_backup_$(date +%Y%m%d_%H%M%S).sql
# Backup de una tabla específica
sudo -u postgres pg_dump tzzr -t immutable_log > /tmp/immutable_log_backup.sql
```
#### Restaurar desde backup
```bash
# Restaurar base de datos completa
sudo -u postgres psql tzzr < /tmp/tzzr_backup.sql
# Restaurar tabla específica (cuidado: borra la tabla actual)
sudo -u postgres psql tzzr < /tmp/immutable_log_backup.sql
```
#### Backup de Gitea
```bash
# Ver documentación de Gitea para backup
docker exec [gitea_container] /app/gitea dump -c /etc/gitea/app.ini
```
#### Automático: Script de backup diario
```bash
#!/bin/bash
# Guardar como /opt/scripts/backup_daily.sh
BACKUP_DIR="/backups/postgresql"
DB_NAME="tzzr"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
sudo -u postgres pg_dump $DB_NAME > $BACKUP_DIR/tzzr_$DATE.sql
gzip $BACKUP_DIR/tzzr_$DATE.sql
# Eliminar backups más antiguos de 30 días
find $BACKUP_DIR -name "tzzr_*.sql.gz" -mtime +30 -delete
echo "Backup completado: $BACKUP_DIR/tzzr_$DATE.sql.gz"
```
Configurar en cron:
```bash
# Editar crontab
sudo crontab -e
# Agregar línea (backup diario a las 2:00 AM)
0 2 * * * /opt/scripts/backup_daily.sh >> /var/log/backup.log 2>&1
```
---
## 3. Troubleshooting
### 3.1 Problemas Comunes y Soluciones
#### Problema: No se puede conectar a PostgreSQL
```bash
# Verificar que PostgreSQL está corriendo
sudo systemctl status postgresql
# o si está en Docker:
docker ps | grep postgres
# Verificar puerto 5432
sudo netstat -tlnp | grep 5432
# Ver logs de PostgreSQL
sudo tail -50 /var/log/postgresql/postgresql.log
# Reiniciar PostgreSQL
sudo systemctl restart postgresql
# o si está en Docker:
docker restart [postgres_container_id]
```
#### Problema: Espacio en disco bajo
```bash
# Ver distribución de espacio
du -sh /* | sort -rh
# Limpiar logs antiguos
sudo journalctl --vacuum=30d
# Limpiar Docker
docker system prune -a --volumes
# Limpiar cache de PostgreSQL
sudo -u postgres psql -d tzzr -c "VACUUM ANALYZE;"
```
#### Problema: Conexiones agotadas a PostgreSQL
```bash
# Ver conexiones activas
sudo -u postgres psql -d tzzr -c "SELECT * FROM pg_stat_activity;"
# Terminar conexión específica
sudo -u postgres psql -d tzzr -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid <> pg_backend_pid();"
# Ver configuración de conexiones máximas
sudo -u postgres psql -d tzzr -c "SHOW max_connections;"
```
#### Problema: Base de datos bloqueada
```bash
# Ver transacciones abiertas
sudo -u postgres psql -d tzzr -c "SELECT * FROM pg_stat_activity WHERE state != 'idle';"
# Ver locks
sudo -u postgres psql -d tzzr -c "SELECT * FROM pg_locks;"
# Terminar transacción bloqueada
sudo -u postgres psql -d tzzr -c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE pid = [PID];"
```
#### Problema: Docker fuera de espacio
```bash
# Ver uso de Docker
docker system df
# Limpiar imágenes sin usar
docker image prune -a
# Limpiar volúmenes sin usar
docker volume prune
# Limpiar redes sin usar
docker network prune
# Limpieza total (cuidado!)
docker system prune -a --volumes
```
#### Problema: Gitea no responde
```bash
# Ver estado del contenedor
docker ps | grep gitea
# Reiniciar Gitea
docker restart [gitea_container_id]
# Ver logs
docker logs [gitea_container_id] | tail -100
# Acceso a terminal de Gitea
docker exec -it [gitea_container_id] bash
```
#### Problema: Alto uso de CPU/memoria
```bash
# Ver uso en tiempo real
docker stats
# Identificar proceso problemático
ps aux | sort -k3 -rn | head -5 # Por CPU
ps aux | sort -k4 -rn | head -5 # Por memoria
# Ver procesos de PostgreSQL
ps aux | grep postgres
# Limitar recursos de contenedor (si es necesario)
docker update --memory 4g [container_id]
```
### 3.2 Contactos de Soporte
#### Contactos Técnicos
| Rol | Contacto | Disponibilidad |
|-----|----------|-----------------|
| **ARCHITECT** | architect@tzzr.local | Tiempo completo |
| **CAPTAIN CLAUDE** | captain@tzzr.local | Tiempo completo |
| **Soporte DB** | dba@tzzr.local | L-V 8AM-6PM |
| **Soporte Infraestructura** | infra@tzzr.local | 24/7 |
#### Escalation Path
1. Contactar equipo de soporte directo
2. Crear ticket en Gitea: https://69.62.126.110/gitea
3. SSH a servidor central: `ssh architect@69.62.126.110`
4. Activar modo debug si es necesario
#### Información para reportar problemas
Cuando reportes un problema, incluye:
- Fecha y hora exacta del incidente
- Mensajes de error completos
- Output de diagnósticos relevantes:
```bash
docker ps -a
docker logs [container_id]
df -h
free -h
sudo -u postgres psql -d tzzr -c "SELECT * FROM pg_stat_activity;"
```
- Pasos para reproducir el problema
### 3.3 Verificación de Salud del Sistema
Script de diagnóstico completo:
```bash
#!/bin/bash
# Guardar como /opt/scripts/health_check.sh
echo "=== SALUD DEL SISTEMA DECK ==="
echo ""
echo "1. Estado de Docker:"
docker ps -a
echo ""
echo "2. Uso de Recursos:"
free -h
df -h
echo ""
echo "3. Conectividad PostgreSQL:"
sudo -u postgres psql -d tzzr -c "SELECT version();"
echo ""
echo "4. Conexiones Activas:"
sudo -u postgres psql -d tzzr -c "SELECT COUNT(*) FROM pg_stat_activity;"
echo ""
echo "5. Conectividad con servidor central:"
ping -c 1 69.62.126.110
echo ""
echo "=== FIN DIAGNÓSTICO ==="
```
Ejecutar:
```bash
chmod +x /opt/scripts/health_check.sh
/opt/scripts/health_check.sh
```
---
## Apéndice: Atajos Útiles
### Alias recomendados para .bashrc
```bash
alias pgconnect='sudo -u postgres psql -d tzzr'
alias dockerps='docker ps -a --format "table {{.ID}}\t{{.Names}}\t{{.Status}}\t{{.Ports}}"'
alias dstats='docker stats --no-stream'
alias dblog='sudo tail -f /var/log/postgresql/postgresql.log'
alias sysdump='cd /tmp && docker ps -a > docker_status.txt && df -h > disk_status.txt && free -h > memory_status.txt && ps aux > process_status.txt'
```
Cargar alias:
```bash
source ~/.bashrc
```
---
**Fin del Manual - PARTE 2**
Para más información sobre PARTE 1 (Primeros Pasos y Servicios), consulta el manual anterior.
Fecha de última actualización: 2025-12-30
# DECK - Manual de Usuario PARTE 3: Guías Rápidas
## 1. Guía Rápida de Inicio
### Primeros Pasos
Cuando accedas a DECK por primera vez:
```bash
# 1. Conéctate al servidor
ssh root@72.62.1.113
# 2. Verifica que estés en el directorio correcto
pwd
# Deberías estar en /root
# 3. Visualiza la estructura general
ls -la
```
### Verificar Servicios con Docker
Para asegurar que todos los servicios están funcionando:
```bash
# Ver todos los contenedores activos
docker ps
# Ver todos los contenedores (incluyendo detenidos)
docker ps -a
# Ver logs de un servicio específico
docker logs -f nombre_contenedor
# Ejemplo: Ver logs de Mailcow
docker logs -f mailcow-mailserver-1
```
**Servicios esperados:**
- `mailcow-mailserver-1` - Servidor de correo
- `nextcloud-app-1` - Gestor de archivos
- `vaultwarden-app-1` - Gestor de contraseñas
- `postgres-db-1` - Base de datos
- Base de datos local de context-manager
### Verificar PostgreSQL
PostgreSQL es crítico para context-manager y otros servicios:
```bash
# Acceder a PostgreSQL
docker exec -it postgres-db-1 psql -U postgres
# Dentro de psql, ver bases de datos
\l
# Ver usuarios
\du
# Conectar a una base de datos específica
\c nombre_base_datos
# Ver tablas
\dt
# Salir
\q
# Alternativa: Verificar desde el host
sudo systemctl status postgresql
```
**Status esperado:**
- PostgreSQL debe estar `active (running)`
- Puerto 5432 debe estar escuchando
---
## 2. Casos de Uso Comunes
### Caso 1: Enviar Correo con Mailcow
#### Acceder a la interfaz web
```
URL: https://deck.local/mailcow
o
URL: https://72.62.1.113/mailcow
```
#### Crear usuario de correo
1. Accede a **Mail → Mailboxes**
2. Haz clic en **+ Add Mailbox**
3. Completa:
- **Local part**: (el nombre antes del @)
- **Domain**: (selecciona dominio)
- **Password**: (contraseña segura)
4. Haz clic en **Add**
#### Usar desde cliente de correo (Outlook, Thunderbird, Apple Mail)
```
Servidor IMAP: mail.deck.local (o IP del servidor)
Puerto IMAP: 993 (SSL/TLS)
Servidor SMTP: mail.deck.local
Puerto SMTP: 465 (SSL/TLS)
Usuario: correo@dominio.com
Contraseña: (la que configuraste)
```
#### Verificar correos desde terminal
```bash
# Acceder al contenedor de Mailcow
docker exec -it mailcow-mailserver-1 bash
# Verificar logs de correos
tail -f /var/log/mail.log
# Salir
exit
```
### Caso 2: Usar Nextcloud (Gestor de Archivos)
#### Acceder a la interfaz web
```
URL: https://deck.local/nextcloud
o
URL: https://72.62.1.113/nextcloud
```
#### Crear usuario en Nextcloud
1. Accede como administrador
2. Haz clic en el icono de usuario (arriba a la derecha)
3. Selecciona **Usuarios**
4. Haz clic en **+ Nuevo usuario**
5. Completa:
- **Nombre de usuario**
- **Contraseña**
6. Asigna grupos si es necesario
7. Haz clic en **Crear**
#### Subir archivos
1. Accede a Nextcloud
2. Haz clic en **+ (botón azul)** → **Subir archivo**
3. Selecciona archivo desde tu computadora
4. El archivo se sincronizará automáticamente
#### Sincronizar con tu computadora
1. Descarga el cliente Nextcloud: https://nextcloud.com/install/
2. Instala y abre el cliente
3. Completa:
- **Servidor**: https://72.62.1.113/nextcloud
- **Usuario y contraseña**: Usa las credenciales de Nextcloud
4. Selecciona carpeta local para sincronizar
5. ¡Listo! Los archivos se sincronizarán automáticamente
### Caso 3: Gestionar Contraseñas con Vaultwarden
#### Acceder a Vaultwarden
```
URL: https://deck.local/vaultwarden
o
URL: https://72.62.1.113/vaultwarden
```
#### Crear cuenta
1. Haz clic en **Create account**
2. Completa:
- **Email**: Tu correo
- **Master password**: Contraseña maestra (muy importante, no la olvides)
3. Haz clic en **Create account**
#### Agregar contraseña
1. Accede a Vaultwarden
2. Haz clic en **+ New item** (botón azul)
3. Selecciona **Login**
4. Completa:
- **Name**: Nombre del servicio (ej: Gmail, GitHub)
- **Username**: Tu usuario
- **Password**: Tu contraseña (o genera una)
5. Haz clic en **Save**
#### Generar contraseña segura
1. Al crear/editar un login
2. Haz clic en el icono **🔄 Generate** junto al campo de contraseña
3. Ajusta las opciones:
- **Length**: Longitud (16+ recomendado)
- **Uppercase**: Incluir mayúsculas
- **Lowercase**: Incluir minúsculas
- **Numbers**: Incluir números
- **Special**: Incluir caracteres especiales
4. Haz clic en **Regenerate** hasta estar satisfecho
5. Haz clic en **Select**
#### Usar en otros dispositivos
- **Extensión navegador**: Bitwarden/Vaultwarden para Chrome, Firefox, Edge
- **Aplicación móvil**: Descargar "Bitwarden" desde App Store o Google Play
- **Sincronización**: Se sincroniza automáticamente entre dispositivos
### Caso 4: Usar context-manager para Chat IA
#### Acceder a context-manager
```bash
# Desde la terminal de DECK
ssh root@72.62.1.113
# Ir a la carpeta de context-manager
cd /root/captain-claude/context-manager
# Ver estado
docker ps | grep context
# O si se ejecuta como servicio
systemctl status context-manager
```
#### Configurar context-manager
```bash
# 1. Verificar archivo de configuración
cat /root/captain-claude/context-manager/.env
# Debe contener:
# - API_KEY de Anthropic o OpenAI
# - URL de PostgreSQL
# - Configuración de base de datos
# 2. Si necesitas cambiar configuración
nano /root/captain-claude/context-manager/.env
# 3. Reiniciar servicio
docker restart context-manager-app-1
# O si es servicio del sistema
systemctl restart context-manager
```
#### Usar context-manager desde API
```bash
# Ejemplo: Enviar consulta y obtener respuesta con contexto
curl -X POST http://localhost:8000/api/chat \
-H "Content-Type: application/json" \
-d '{
"message": "¿Cuál es la temperatura actual?",
"context_type": "sensor_data",
"session_id": "session-123"
}'
# Respuesta esperada:
# {
# "response": "La temperatura es de 22°C",
# "context_used": ["sensor_data"],
# "timestamp": "2025-01-15T10:30:00Z"
# }
```
#### Ver logs de context-manager
```bash
# Ver logs en tiempo real
docker logs -f context-manager-app-1
# O si es servicio del sistema
journalctl -u context-manager -f
```
---
## 3. Comandos Frecuentes
### Servicios y Estado
| Comando | Descripción |
|---------|-------------|
| `docker ps` | Ver contenedores activos |
| `docker ps -a` | Ver todos los contenedores |
| `docker logs -f nombre` | Ver logs en tiempo real |
| `docker restart nombre` | Reiniciar contenedor |
| `docker stop nombre` | Detener contenedor |
| `docker start nombre` | Iniciar contenedor |
| `systemctl status` | Ver estado de servicios del sistema |
| `systemctl restart nombre` | Reiniciar servicio |
### Base de Datos (PostgreSQL)
| Comando | Descripción |
|---------|-------------|
| `docker exec -it postgres psql -U postgres` | Acceder a psql |
| `\l` | Listar bases de datos (dentro de psql) |
| `\dt` | Listar tablas (dentro de psql) |
| `\du` | Listar usuarios (dentro de psql) |
| `\q` | Salir de psql |
### Sistema de Archivos
| Comando | Descripción |
|---------|-------------|
| `ls -la` | Listar archivos con detalles |
| `cd /ruta` | Cambiar de directorio |
| `pwd` | Mostrar directorio actual |
| `mkdir nombre` | Crear directorio |
| `cp archivo destino` | Copiar archivo |
| `mv archivo destino` | Mover archivo |
| `rm archivo` | Eliminar archivo |
| `rm -rf carpeta` | Eliminar carpeta completa |
### Red y Conectividad
| Comando | Descripción |
|---------|-------------|
| `ping host` | Verificar conexión |
| `netstat -tulpn` | Ver puertos en escucha |
| `curl http://url` | Hacer solicitud HTTP |
| `ss -tulpn` | Alternativa moderna a netstat |
| `dig dominio.com` | Resolver DNS |
| `nslookup dominio.com` | Alternativa a dig |
### SSH y Acceso Remoto
| Comando | Descripción |
|---------|-------------|
| `ssh root@72.62.1.113` | Conectar a DECK |
| `ssh-copy-id -i ~/.ssh/tzzr root@72.62.1.113` | Copiar clave SSH |
| `ssh -i ~/.ssh/tzzr root@72.62.1.113` | Conectar con clave específica |
| `scp archivo root@72.62.1.113:/destino` | Copiar archivo a servidor |
### Monitoreo y Rendimiento
| Comando | Descripción |
|---------|-------------|
| `top` | Monitor de procesos |
| `htop` | Monitor mejorado (si está instalado) |
| `df -h` | Espacio en disco |
| `du -sh carpeta` | Tamaño de carpeta |
| `free -h` | Uso de RAM |
| `uptime` | Tiempo de actividad del servidor |
---
## 4. Atajos y Tips Productivos
### Tips Generales
**1. Usa alias para comandos frecuentes**
```bash
# Editar ~/.bashrc
nano ~/.bashrc
# Agregar alias
alias ll='ls -la'
alias dc='docker ps'
alias psql-con='docker exec -it postgres-db-1 psql -U postgres'
# Guardar y aplicar cambios
source ~/.bashrc
```
**2. Historial de comandos**
```bash
# Ver últimos comandos
history
# Ejecutar comando anterior
!!
# Ejecutar comando que contiene "palabra"
!palabra
# Buscar en historial
Ctrl + R (luego escribe para buscar)
```
**3. Copiar/Pegar eficientemente**
```bash
# Copiar salida de comando
comando | xclip -selection clipboard
# O más simple, seleccionar con ratón en terminal
```
### Tips para Docker
**1. Ver logs en tiempo real con seguimiento de errores**
```bash
# Ver últimas 100 líneas
docker logs --tail 100 nombre_contenedor
# Ver con timestamp
docker logs -t nombre_contenedor
# Seguir logs en tiempo real
docker logs -f --tail 20 nombre_contenedor
```
**2. Ejecutar comandos dentro de contenedores**
```bash
# Acceso interactivo (bash)
docker exec -it nombre_contenedor bash
# Ejecutar comando específico
docker exec nombre_contenedor ls -la
# Con variable de entorno
docker exec -e VAR=valor nombre_contenedor comando
```
**3. Gestionar múltiples contenedores**
```bash
# Detener todos los contenedores
docker stop $(docker ps -q)
# Eliminar contenedores parados
docker container prune
# Ver uso de recursos
docker stats
```
### Tips para PostgreSQL
**1. Backups rápidos**
```bash
# Crear backup
docker exec postgres-db-1 pg_dump -U postgres nombre_base > backup.sql
# Restaurar backup
docker exec -i postgres-db-1 psql -U postgres < backup.sql
```
**2. Consultas útiles**
```bash
# Dentro de psql:
-- Ver tamaño de tablas
SELECT schemaname, tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename))
FROM pg_tables ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC;
-- Ver conexiones activas
SELECT * FROM pg_stat_activity;
-- Matar conexión
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='base_datos';
```
### Tips para Nextcloud
**1. Sincronización manual**
```bash
# Forzar verificación de cambios
# (Espera 30 segundos en el cliente de Nextcloud)
# O rescanea el servidor
docker exec -it nextcloud-app-1 php occ files:scan --all
```
**2. Gestionar espacio**
```bash
# Ver uso de espacio en Nextcloud
docker exec -it nextcloud-app-1 php occ statistics:get
# Eliminar versiones antiguas (liberar espacio)
docker exec -it nextcloud-app-1 php occ versions:cleanup
```
### Tips para Vaultwarden
**1. Exportar contraseñas (Backup)**
```
En la interfaz de Vaultwarden:
1. Haz clic en icono de usuario → Settings
2. Selecciona "Import/Export"
3. Haz clic en "Export vault"
4. Guarda el archivo CSV en lugar seguro
```
**2. Importar desde otro gestor de contraseñas**
```
1. En el otro gestor (LastPass, 1Password, etc):
- Exporta en formato CSV
2. En Vaultwarden:
- Haz clic en usuario → Settings
- Selecciona "Import/Export"
- Haz clic en "Import"
- Selecciona archivo CSV
```
---
## Próximos Pasos
Si necesitas ayuda adicional:
- **Problemas técnicos**: Revisa logs con `docker logs -f nombre`
- **Configuración avanzada**: Ver DECK - Manual de Usuario PARTE 2
- **Solución de problemas**: Ver sección de Troubleshooting en el manual
- **Contacto**: Consulta con el administrador del sistema