Manual de Despliegue & Operaciones en Producción
Guía de administración para despliegue nativo (Bare-Metal) sin Docker en servidores Linux Ubuntu 24.04/Debian, coexistencia con servidores de streaming RTMP y scripts de actualización continua.
🖥️ 1. Requisitos del Servidor y Coexistencia de Puertos
| Servicio / Aplicación | Puerto | Uso / Estado |
|---|---|---|
| IoPlay Customers | 5540 |
Portal Web de Autogestión (Nginx + PHP-FPM) |
| IoPlay DCM | 5541 |
Microservicio Indexador Facturas (127.0.0.1 Loopback) |
| IoPlay ACS | 5542 |
Microservicio TR-069 Telemetría (127.0.0.1 Loopback) |
| Reservado / Soporte | 5543 |
Canal de Diagnóstico & APIs Adicionales |
| Streaming RTMP / HLS | 1935, 88, 8088, 8888 |
Transmisión de Video en Vivo (Intacto) |
| Sitios Existentes | 80, 443, 1080, 10443 |
Webs corporativas e ioplayco (Intactos) |
🚀 2. Despliegue Inicial Automatizado
El script scripts/deploy_production_native.sh instala paquetes, configura venvs de Python, permisos y servicios de forma 100% desatendida:
Diagnóstico Automático Integrado
Al finalizar la instalación, el script ejecuta pruebas de salud HTTP en los puertos 5541, 5542 y 5540 para confirmar que todos los servicios estén en estado OK (HTTP 200).
🔄 3. Protocolo de Actualizaciones Rápidas con GitHub
Para aplicar nuevas versiones subidas al repositorio de GitHub sin tocar bases de datos ni configuraciones:
Este script se encarga automáticamente de:
- Configurar la excepción de directorio seguro de Git (
safe.directory). - Descargar los cambios con
git pull origin main. - Actualizar librerías de Python en los entornos virtuales (
venv) sirequirements.txtcambió. - Asegurar permisos de escritura para el usuario
www-data. - Reiniciar los demonios de Systemd y recargar Nginx/PHP-FPM en menos de 2 segundos.
⚙️ 4. Gestión de Servicios con PM2 o Systemd
La suite soporta gestión mediante PM2 o Systemd según la preferencia de operaciones:
📋 5. Monitoreo de Logs en Vivo
💾 6. Políticas de Respaldo de Bases de Datos
Las bases de datos SQLite residen en carpetas dedicadas. Para crear un respaldo instantáneo: