- Estructura General
- Arquitectura del Sistema
- Componentes del Sistema
- Scripts de Automatización
- Guía de Despliegue
- Configuración de Servicios
El cluster está conformado por cuatro componentes principales:
- API (
appsmagob-api) - Servicios web y gestión de autenticación - APP (
appsmagob-ui) - Interfaz de usuario del monorepositorio - DockPanel (
server-manager) - Herramientas de gestión de contenedores - Proxy Server - Controlador de ingreso y enrutamiento (Nodo Master)
🌐 CLIENTE EXTERNO
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 🔀 INGRESS CONTROLLER │
│ (nginx-proxy - :80/443) │
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────┐ │
│ │ /api/* │ │ / │ │ /server-* │ │
│ │ ┌─────────┐ │ │ ┌─────────┐ │ │ ┌─────────┐ │ │
│ │ │ Route │ │ │ │ Route │ │ │ │ Route │ │ │
│ │ └─────────┘ │ │ └─────────┘ │ │ └─────────┘ │ │
│ └─────────────────┘ └─────────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────┘
│ │ │
▼ ▼ ▼
┌─────────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐
│ 🐳 DOCKER NETWORK │ │ 🐳 DOCKER NETWORK │ │ 📁 FILE SYSTEM │
│ (appsmagob-net) │ │ (appsmagob-net) │ │ │
│ │ │ │ │ │
│ ┌─────────────────┐ │ │ ┌─────────────────┐ │ │ ┌─────────────────┐ │
│ │ 🐳 API │ │ │ │ 🐳 APP │ │ │ │ ☸️ SERVER │ │
│ │ (appsmagob-api) │ │ │ │ (appsmagob-ui) │ │ │ │ MANAGER │ │
│ │ │ │ │ │ │ │ │ │ (DockPanel) │ │
│ │ • Node.js + PM2 │ │ │ │ • React SPA │ │ │ │ │ │
│ │ • Puerto: 4101 │ │ │ │ • Nginx Server │ │ │ │ • Node.js App │ │
│ │ • JWT + Auth │ │ │ │ • Puerto: 80 │ │ │ │ • Puerto: 5000 │ │
│ │ │ │ │ │ │ │ │ │ • Docker API │ │
│ └─────────────────┘ │ │ └─────────────────┘ │ │ │ • Webhooks │ │
└─────────────────────┘ └─────────────────────┘ │ │ • Gestión │ │
│ │ Contenedores │ │
│ └─────────────────┘ │
└─────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ 🖥️ HOST FÍSICO │
│ │
│ • Sistema Operativo Linux │
│ • Docker Engine │
│ • Red appsmagob-net │
│ • Volúmenes persistentes │
│ • Archivos de configuración │
└─────────────────────────────────────────────────────────────────────┘
🔄 FLUJO DE DATOS:
Cliente → Ingress Controller → Enrutamiento por Path:
• /api/* → 🐳 API Container (Backend Services)
• / → 🐳 APP Container (Frontend SPA)
• /dockpanel → 📁 Dockpanel (Gestión Docker)
Ubicación: appsmagob-api/
Maneja la conexión a servicios web con payload encriptado y gestión de tokens de autenticación.
Configuración incluye:
- Variables de entorno:
.env.api-appsmagob - Claves y certificados: directorio
keys/
Ubicación: appsmagob-ui/
Interfaz de usuario del monorepositorio con configuraciones de servidor web.
Configuraciones de Nginx:
nginx.conf- Configuración principalnginx-maintenance.conf- Configuración para mantenimiento
Ubicación: proxy-server/
Contiene configuraciones de despliegue específicas por entorno:
- conf.d: Configuración de Nginx
- init.sh: Script de inicio del servicio
- conf.d: Configuración de Nginx
- html: Assets estáticos para producción
- scripts:
init.sh- Inicia el serviciomake_ssl_webroot.sh- Genera certificado SSL con webrootrenew_ssl_webroot.sh- Renueva certificado SSLmake_ssl_wildcard.sh- Genera certificado SSL wildcard
Herramientas y configuraciones para la gestión completa de contenedores del cluster.
Ubicación: scripts/
Ejecutables mediante pnpm run <script>:
scripts/
├── setup.sh
├── setup_api_appsmagob.sh
├── setup_appsmagob.sh
├── setup_send_files.sh
├── make_ssl.sh
├── renew_ssl.sh
├── start_proxy_server.sh
└── start_appsmagob.sh
Crear la estructura de directorios necesaria:
pnpm run setupPara desarrollo:
pnpm run setup:send-filesPara producción:
pnpm run setup:send-files -prodCorroborar que los archivos de configuración correspondan al servidor de destino.
pnpm run build
pnpm run start:service- Enviar imágenes de API y APP al servidor en formato
tar.gz
Para SSL con webroot:
pnpm run make_ssl webrootPara SSL wildcard:
pnpm run make_sslDesarrollo:
pnpm run proxy-serverProducción:
pnpm run proxy-server -prodpnpm run start:appsmagob| Servicio | Puerto | URL | Descripción |
|---|---|---|---|
| Proxy Server | 80/443 | - | Punto de entrada principal |
| App | - | http://[domain]/ |
Interfaz de usuario |
| API | 4101 | http://[domain]/api/ |
Servicios web y API REST |
| Server Manager | 5000 | http://[domain]/server-manager/ |
Panel de gestión de contenedores |
Nota: Este documento describe la arquitectura y proceso de despliegue del orquestador de contenedores. Asegúrate de tener los permisos necesarios y las dependencias instaladas antes de ejecutar los scripts de despliegue.