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

7.8 KiB

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

# 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

# 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

# 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

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

2.3 Verificación de Memoria

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

3. Operaciones Mensuales

3.1 Actualizaciones de Seguridad

# 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

# 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

sudo certbot certificates

4. Monitoreo

4.1 Uptime Kuma (a instalar)

# 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:

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

# 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

# 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

# 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

# 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

# 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:

#!/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"
chmod +x /etc/cron.daily/skeen-backup

6.2 Restauración Odoo

# 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

# 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

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

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

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


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