Files
SKEEN-Proyecto/docs/mantenimiento.md
Consultoría Alcaraz Salazar a718592291 Initial commit: SKEEN Derma Experts - Sistema Integral de Gestión Clínica
- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind
- Frontend Homenest (versión alternativa)
- Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp)
- WACRM fork (Next.js 16 + Supabase)
- Hermes + Bridge + Skills (Qwen3.6 via Nan Builders)
- Scripts de migración y operación
- Documentación extensiva en docs/
2026-07-20 07:44:23 +00:00

399 lines
7.8 KiB
Markdown

# 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