# Mantenimiento y Operación — SKEEN Derma Experts

**Versión:** 2.0  
**Fecha:** 16 de julio de 2026

---

## 1. Operaciones Diarias

### 1.1 Verificación de Servicios

```bash
# Estado de puertos
ss -tlnp | grep -E "3000|5173|8069|8000|8090|8644|8080|9119|5433"

# Health checks
curl http://localhost:8069/web/health
curl http://localhost:8090/health
curl http://localhost:8069/skeen/frontend/v1/health

# Estado Docker (Supabase)
cd /root/skeen-supabase/docker && docker compose ps
```

### 1.2 Logs Principales

```bash
# WACRM
tail -f /tmp/wacrm.log

# Odoo
tail -f /tmp/odoo.log

# Bridge
tail -f /tmp/hermes-bridge.log

# Hermes Gateway
tail -f /tmp/hermes-gateway.log

# Hermes Serve
tail -f /tmp/hermes-serve.log

# Frontend (dev)
tail -f /tmp/frontend.log

# nginx
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
```

---

## 2. Operaciones Semanales

### 2.1 Limpieza de Logs

```bash
# Rotación manual si no hay logrotate
mv /tmp/odoo.log /tmp/odoo.log.$(date +%Y%m%d)
mv /tmp/wacrm.log /tmp/wacrm.log.$(date +%Y%m%d)
mv /tmp/hermes-bridge.log /tmp/hermes-bridge.log.$(date +%Y%m%d)

# Reiniciar servicios para recrear logs
systemctl restart odoo
# o reiniciar manualmente según el método de inicio
```

### 2.2 Verificación de Espacio en Disco

```bash
df -h
du -sh /var/lib/odoo
du -sh /root/skeen-supabase/docker/volumes
```

### 2.3 Verificación de Memoria

```bash
free -h
ps aux --sort=-%mem | head -20
```

---

## 3. Operaciones Mensuales

### 3.1 Actualizaciones de Seguridad

```bash
# Sistema
sudo apt update && sudo apt upgrade -y

# Node.js (si hay nueva versión LTS)
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Dependencias npm (frontend)
cd /root/skeen-frontend && npm audit fix

# Dependencias npm (WACRM)
cd /root/skeen-wacrm && npm audit fix
```

### 3.2 Revisión de Backups

```bash
# Verificar backups recientes
ls -la /root/backups/

# Probar restauración (en entorno de prueba)
gunzip -c /root/backups/odoo_YYYYMMDD.sql.gz | psql -U skeen -d skeen_odoo_test
```

### 3.3 Revisión de Certificados

```bash
sudo certbot certificates
```

---

## 4. Monitoreo

### 4.1 Uptime Kuma (a instalar)

```bash
# Instalar Uptime Kuma
docker run -d --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:1
```

**Monitores a configurar:**
- Frontend React: `http://localhost:5173`
- Odoo: `http://localhost:8069/web/health`
- WACRM: `http://localhost:3000`
- Bridge: `http://localhost:8090/health`
- Supabase: `http://localhost:8000`

**Alertas:**
- Email: ialcarazsalazar@consultoria-as.com
- WhatsApp: (vía webhook a WACRM)

### 4.2 Métricas Clave

| Métrica | Umbral | Acción |
|---------|--------|--------|
| CPU | > 80% por 5 min | Investigar proceso |
| RAM | > 90% | Reiniciar servicios si es necesario |
| Disco | > 85% | Limpiar logs/backups |
| Response time Odoo | > 5s | Optimizar queries |
| Response time WACRM | > 3s | Reiniciar WACRM |
| Errores 5xx | > 10/min | Revisar logs |

---

## 5. Troubleshooting

### 5.1 WACRM no responde

```bash
# Verificar proceso
ps aux | grep node | grep wacrm

# Verificar logs
tail -100 /tmp/wacrm.log

# Reiniciar
cd /root/skeen-wacrm && pkill -f "next start" && npm start
```

### 5.2 Odoo no responde

```bash
# Verificar proceso
ps aux | grep odoo

# Verificar PostgreSQL
sudo -u postgres psql -d skeen_odoo -c "SELECT 1;"

# Verificar logs
tail -100 /tmp/odoo.log

# Reiniciar
pkill -f "odoo-bin"
cd /root/skeen-odoo && ./odoo-bin -c odoo.conf --logfile=/tmp/odoo.log
```

### 5.3 Bridge no responde

```bash
# Verificar proceso
ps aux | grep webhook-bridge

# Verificar logs
tail -100 /tmp/hermes-bridge.log

# Reiniciar
pkill -f "webhook-bridge.js"
cd /root/skeen-roadmap-hermes/hermes && node webhook-bridge.js
```

### 5.4 Supabase no responde

```bash
# Verificar contenedores
cd /root/skeen-supabase/docker && docker compose ps

# Ver logs
docker compose logs db
docker compose logs kong
docker compose logs auth

# Reiniciar
docker compose restart
```

### 5.5 Frontend no carga

```bash
# Verificar nginx
sudo nginx -t
sudo systemctl status nginx

# Verificar build
ls -la /var/www/skeen-frontend/

# Rebuild si es necesario
cd /root/skeen-frontend && npm run build
sudo cp -r dist/* /var/www/skeen-frontend/
```

### 5.6 WhatsApp no envía mensajes

1. Verificar tokens en WACRM Settings.
2. Verificar webhook configurado en Meta.
3. Verificar templates aprobados.
4. Revisar logs de WACRM.

---

## 6. Backups y Restauración

### 6.1 Backup Automatizado

Crear `/etc/cron.daily/skeen-backup`:

```bash
#!/bin/bash
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR=/root/backups

# PostgreSQL Odoo
pg_dump -U skeen -h localhost skeen_odoo | gzip > $BACKUP_DIR/odoo_$DATE.sql.gz

# PostgreSQL Supabase
docker exec supabase-db pg_dump -U postgres postgres | gzip > $BACKUP_DIR/supabase_$DATE.sql.gz

# Archivos
tar -czf $BACKUP_DIR/files_$DATE.tar.gz \
  /root/skeen-frontend \
  /root/skeen-wacrm \
  /root/skeen-odoo/addons/skeen_* \
  /root/skeen-roadmap-hermes \
  /root/migracion

# Limpiar antiguos
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
find $BACKUP_DIR -name "*.tar.gz" -mtime +30 -delete

echo "Backup completado: $DATE"
```

```bash
chmod +x /etc/cron.daily/skeen-backup
```

### 6.2 Restauración Odoo

```bash
# Detener Odoo
pkill -f "odoo-bin"

# Restaurar base de datos
gunzip -c /root/backups/odoo_YYYYMMDD.sql.gz | psql -U skeen -d skeen_odoo

# Reiniciar Odoo
cd /root/skeen-odoo && ./odoo-bin -c odoo.conf --logfile=/tmp/odoo.log
```

### 6.3 Restauración Supabase

```bash
# Detener Supabase
cd /root/skeen-supabase/docker && docker compose down

# Restaurar base de datos
gunzip -c /root/backups/supabase_YYYYMMDD.sql.gz | docker exec -i supabase-db psql -U postgres -d postgres

# Reiniciar Supabase
docker compose up -d
```

---

## 7. Actualización del Sistema

### 7.1 Actualizar Frontend

```bash
cd /root/skeen-frontend
git pull origin main
npm install
npm run build
sudo cp -r dist/* /var/www/skeen-frontend/
```

### 7.2 Actualizar Módulos Odoo

```bash
cd /root/skeen-odoo
git pull origin main

# Actualizar módulos custom
/root/odoo-venv/bin/python ./odoo-bin -c odoo.conf -u skeen_citas,skeen_pacientes,skeen_monedero,skeen_pagos,skeen_ventas,skeen_inventario,skeen_whatsapp -d skeen_odoo --stop-after-init --no-http
```

### 7.3 Actualizar WACRM

```bash
cd /root/skeen-wacrm
git pull origin main
npm install
npm run build
pkill -f "next start"
npm start
```

---

## 8. Escalabilidad

### 8.1 Cuando el sistema crezca

| Señal | Acción |
|-------|--------|
| CPU > 70% constante | Migrar a VPS más grande |
| RAM > 80% constante | Aumentar RAM o separar servicios |
| Disco > 80% | Aumentar disco o mover backups a externo |
| Muchos usuarios concurrentes | Load balancer + múltiples instancias |
| Muchas conversaciones WhatsApp | WACRM escalado horizontalmente |

### 8.2 Separación de Servicios

Cuando sea necesario:

1. **VM 1:** Frontend + nginx + Bridge
2. **VM 2:** Odoo + PostgreSQL
3. **VM 3:** WACRM + Supabase
4. **VM 4:** Hermes Gateway + Serve

---

## 9. Contacto de Soporte

- **Email:** ialcarazsalazar@consultoria-as.com
- **Gitea Issues:** https://git.consultoria-as.com/consultoria-as/SKEEN-Proyecto/issues
- **Horario:** Lun-Vie 9:00-18:00 (hora del Pacífico)

---

## 10. Checklist de Mantenimiento

### Diario
- [ ] Verificar servicios corriendo
- [ ] Revisar logs de errores
- [ ] Verificar backups del día anterior

### Semanal
- [ ] Limpiar logs antiguos
- [ ] Verificar espacio en disco
- [ ] Verificar uso de memoria
- [ ] Probar flujo end-to-end (WhatsApp → Odoo → Frontend)

### Mensual
- [ ] Actualizar sistema y dependencias
- [ ] Revisar y probar backups
- [ ] Revisar certificados SSL
- [ ] Revisar accesos y API keys
- [ ] Revisar métricas de uso

### Trimestral
- [ ] Rotar secretos y API keys
- [ ] Revisar políticas de seguridad
- [ ] Actualizar documentación
- [ ] Pruebas de recuperación de desastres
