---
title: Arquitectura
description: Cómo se estructura NexCMP: dominio, nginx, servicios de panel y worker, y cada sistema al que se conectan, con los puertos y datos de cada ruta.
url: https://nexcmp.com/es/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Arquitectura {#architecture}

> **Ubicación en el panel de administración:** esta es una página de referencia. Los servicios descritos aquí son visibles con `sudo nexcmp status`; las conexiones se configuran en Infrastructure y System › Settings.

## El diagrama {#the-picture}

![Arquitectura de NexCMP: los clientes acceden a nginx mediante DNS y opcionalmente Cloudflare, nginx actúa como proxy hacia el panel en el puerto 3000, el panel y el worker se comunican con CloudStack, Proxmox VE, iDRAC, Ceph, pasarelas de pago, SMTP y un proveedor de IA, y los nodos VPN y de proxy IPv6 se comunican de vuelta con el panel](https://nexcmp.com/es/docs/images/infrastructure/architecture.svg)

### El mismo diagrama explicado {#the-same-diagram-in-words}

1. Un cliente o administrador abre `https://cloud.example.com` (el portal), `https://cloud.example.com/admin` (la consola de administración) o llama a la REST API. El DNS apunta el nombre a su servidor, o a Cloudflare, que actúa como proxy hacia él.
2. **nginx** en el servidor del panel escucha en los puertos 80 (redirección y renovación de certificados) y 443 (TLS) y reenvía cada solicitud al **panel** en `127.0.0.1:3000`. Tras el asistente de configuración inicial, el panel solo escucha en la interfaz loopback.
3. El **panel** (`nexcmp.service`) sirve el portal de clientes, la consola de administración, la REST API, el asistente de configuración inicial y las descargas que necesitan los nodos (el binario del agente, el script de instalación y la herramienta de línea de comandos `cmp`). También comprueba su licencia una vez al día.
4. El **worker** (`nexcmp-vmd.service`) escucha en `127.0.0.1:8112`, que es únicamente local. Ejecuta todo lo que requiere tiempo o debe realizarse de forma programada: tareas de aprovisionamiento, sincronización con CloudStack y Proxmox VE, ciclos de facturación, recopilación de ancho de banda y conexiones de consola en el navegador.
5. Desde estos dos procesos, NexCMP realiza llamadas externas: **CloudStack** (API de gestión), **Proxmox VE** (API en el puerto 8006, certificado fijado), **Dell iDRAC** (Redfish sobre HTTPS en la red de gestión), **Ceph RGW** (S3 y Admin Ops sobre HTTPS), **pasarelas de pago** (Stripe, PayPal, USDT y proveedores de transferencia bancaria, que también llaman a sus URL de webhook), **su servidor SMTP**, un **proveedor de IA** con una API compatible con OpenAI y, opcionalmente, **Telegram**.
6. Los **nodos VPN** ejecutan `cmp-agent`. Cada nodo se registra una vez con un token de un solo uso, luego envía un heartbeat cada 5 segundos por HTTPS al panel y recibe su configuración en la respuesta. Los **nodos de proxy IPv6** son instalados una vez por el panel a través de SSH y luego obtienen su configuración desde el panel.
7. El estado reside en bases de datos SQLite y algunos archivos en `/var/lib/nexcmp`. Las credenciales de CloudStack, Proxmox, S3, iDRAC y el proveedor de IA se almacenan cifradas (AES-256-GCM) con archivos de clave maestra en la misma ubicación.

## Servicios y procesos {#services-and-processes}

| Proceso | Se ejecuta como | Escucha en | Función |
|---|---|---|---|
| `nginx` | root (workers `www-data`) | 80, 443 | TLS, redirección, proxy hacia el panel |
| `nexcmp` | `nexcmp` | 3000 (todas las interfaces durante la primera instalación, luego `127.0.0.1`) | Portal, consola de administración, API, asistente, descargas |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | Tareas, sincronización, facturación, ancho de banda, consola |
| `nexcmp-update` | root | ninguno | Aplica las actualizaciones que solicita la consola de administración (una unidad path espera la solicitud) |
| `cmp-agent` (en nodos VPN) | root | los puertos de escucha VPN | Informa al panel, ejecuta listeners de proxy en IPv4 públicas |

El panel y el worker se ejecutan como un usuario común sin ninguna capacidad de Linux, con un sistema de archivos de solo lectura excepto `/var/lib/nexcmp` y `/var/log/nexcmp`. No necesitan root, ni Docker, ni una base de datos independiente ni Redis.

## Archivos y dónde se encuentran {#files-and-where-they-are}

| Ruta | Contenido |
|---|---|
| `/opt/nexcmp` | El programa: versiones, `bin/`, archivos compartidos como el creador de plantillas. Propiedad de root, de solo lectura para el servicio. |
| `/etc/nexcmp` | Configuración del instalador (`install.conf`), puerto y bind (`nexcmp.env`). |
| `/var/lib/nexcmp` | Bases de datos SQLite, elementos de marca subidos, la carpeta de descarga del agente, el estado de la licencia, los archivos de la clave maestra. Haga una copia de seguridad de esto. |
| `/var/log/nexcmp` | Registros. |

Consulte [Copia de seguridad y restauración](https://nexcmp.com/es/docs/getting-started/backup-and-restore/). Debe hacer una copia de seguridad de los archivos de la clave maestra junto con las bases de datos; de lo contrario, una base de datos restaurada no podrá descifrar las credenciales almacenadas.

## Quién se conecta con quién {#who-connects-to-whom}

| Dirección | Ruta | Puerto | Notas |
|---|---|---|---|
| Cliente al panel | Internet, DNS, Cloudflare opcional, nginx | 443 | Consulte [DNS y Cloudflare](https://nexcmp.com/es/docs/getting-started/dns-and-cloudflare/). |
| Panel al servidor de licencias | `nexcmp.com` | 443 | Activación, comprobación diaria y actualizaciones. |
| Panel a CloudStack | API | 443 u 8080 | La consola de VM, el ancho de banda y las funciones de Kubernetes usan el mismo endpoint. |
| Panel a Proxmox VE | API y consola WebSocket | 8006 | Certificado anclado mediante SHA-256. |
| Panel a iDRAC | Redfish | 443, VNC 5901 | Solo red de gestión. |
| iDRAC al servidor ISO | HTTP | su puerto | El iDRAC descarga la ISO. |
| Panel a Ceph RGW | Admin Ops | 443 | |
| Panel a SMTP | SMTP | 587 o 465 | |
| Panel al proveedor de IA | HTTPS | 443 | Solo cuando el módulo de IA está activo. |
| Pasarela de pago al panel | Webhook | 443 | Stripe y PayPal realizan callbacks. |
| Nodo al panel | `cmp-agent` | 443 | Registro, heartbeat, actualización. |
| Panel al nodo proxy IPv6 | SSH | el puerto que introduzca | Solo para la instalación inicial. |

## Por qué es importante {#why-it-matters}

- **Un panel accesible es un panel que puede ser atacado.** Mantenga cerrado el puerto 3000 una vez finalizado el asistente de configuración. El instalador ya lo hace cuando TLS está activo.
- **El worker debe estar en ejecución** para que se pueda crear o facturar cualquier elemento. `sudo nexcmp status` muestra ambos servicios y el health check.
- **Planifique los firewalls de salida.** Si el tráfico saliente del servidor del panel está filtrado, permita los destinos de la tabla anterior.
- **El tráfico de gestión se mantiene fuera de la ruta pública.** Las conexiones a CloudStack, Proxmox VE, iDRAC y Ceph van directamente desde el servidor del panel a dichos sistemas, nunca a través de nginx o Cloudflare.
