- 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/
399 lines
7.8 KiB
Markdown
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
|