webhook-central/
├── hooks.json # Configuración de todos los webhooks
├── scripts/
│ └── deploy.sh # Script genérico de despliegue
└── projects/
├── mide-chatbot.conf # Configuración para mide-chatbot
├── document_ai.conf # Configuración para document_ai
└── notificaciones_twilio.conf # Configuración para notificaciones_twilio
Desde tu máquina local (PowerShell):
scp -r webhook-central/ mbriseno@172.10.30.15:/home/mbriseno/O manualmente en el servidor:
mkdir -p /home/mbriseno/webhook-central/{scripts,projects}
# Copiar archivos...En el servidor:
chmod +x /home/mbriseno/webhook-central/scripts/deploy.sh
chmod 644 /home/mbriseno/webhook-central/hooks.json
chmod 644 /home/mbriseno/webhook-central/projects/*.confParar el webhook actual:
pm2 stop webhook-listener
pm2 delete webhook-listenerIniciar el nuevo webhook centralizado:
pm2 start /usr/bin/webhook \
--name webhook-listener \
-- -hooks /home/mbriseno/webhook-central/hooks.json -verbose -port 8090
pm2 save
pm2 startupDesde cada proyecto:
rm /home/mbriseno/code/mide-chatbot/hooks.json
rm /home/mbriseno/code/mide-chatbot/script_despliegue.sh
# Repetir para otros proyectos si tienen sus propios webhooks- mide-chatbot:
http://tu-servidor:8090/hooks/despliegue-mide-chatbot - document_ai:
http://tu-servidor:8090/hooks/despliegue-document-ai - notificaciones_twilio:
http://tu-servidor:8090/hooks/despliegue-notificaciones-twilio
-
Crear archivo en
projects/<nombre>.confcon:PROJECT_ROOT="/home/mbriseno/code/<nombre>" PROJECT_BRANCH="main" VENV_PATH="$PROJECT_ROOT/venv" PM2_NAME="<nombre-api>"
-
Agregar entrada en
hooks.json:{ "id": "despliegue-<nombre>", "execute-command": "/home/mbriseno/webhook-central/scripts/deploy.sh", "command-working-directory": "/home/mbriseno/webhook-central", "pass-arguments-to-command": [ { "source": "string", "name": "proyecto", "value": "<nombre>" } ] } -
Reiniciar webhook:
pm2 restart webhook-listener
# Ver logs del webhook
pm2 logs webhook-listener
# Probar manualmente
curl -X POST http://127.0.0.1:8090/hooks/despliegue-mide-chatbot
# Ver estado de PM2
pm2 statuspm2 restart webhook-listener/home/mbriseno/
├── code/
│ ├── mide-chatbot/ # (sin hooks.json ni script_despliegue.sh)
│ ├── document_ai/
│ └── notificaciones_twilio/
└── webhook-central/ # ← Nuevo centralizado
├── hooks.json
├── scripts/
│ └── deploy.sh
└── projects/
├── mide-chatbot.conf
├── document_ai.conf
└── notificaciones_twilio.conf