Architettura
Dove nel pannello di amministrazione: questa è una pagina di riferimento. I servizi descritti qui sono visibili con
sudo nexcmp status; le connessioni sono configurate in Infrastructure e System › Settings.
Lo schema
Lo stesso diagramma a parole
- Un cliente o amministratore apre
https://cloud.example.com(il portale),https://cloud.example.com/admin(la console di amministrazione) o chiama la REST API. Il DNS punta il nome sul tuo server o su Cloudflare, che fa da proxy. - nginx sul server del pannello è in ascolto sulle porte 80 (reindirizzamento e rinnovo del certificato) e 443 (TLS) e inoltra ogni richiesta al panel su
127.0.0.1:3000. Dopo la procedura guidata di configurazione, il pannello rimane in ascolto solo sull'interfaccia di loopback. - Il panel (
nexcmp.service) gestisce il portale clienti, la console di amministrazione, la REST API, la procedura guidata di configurazione e i download necessari ai nodi (il binario dell'agent, lo script di installazione, lo strumento da riga di comandocmp). Controlla inoltre la tua licenza una volta al giorno. - Il worker (
nexcmp-vmd.service) è in ascolto su127.0.0.1:8112, accessibile solo localmente. Esegue qualsiasi operazione che richieda tempo o debba avvenire secondo pianificazione: processi di provisioning, sincronizzazione con CloudStack e Proxmox VE, cicli di fatturazione, raccolta del traffico di banda e connessioni alla console del browser. - Da questi due processi NexCMP effettua chiamate verso l'esterno: CloudStack (API di gestione), Proxmox VE (API sulla porta 8006, certificato associato), Dell iDRAC (Redfish su HTTPS nella rete di gestione), Ceph RGW (S3 e Admin Ops su HTTPS), gateway di pagamento (provider Stripe, PayPal, USDT e bonifico bancario, che a loro volta richiamano i tuoi URL webhook), il tuo server SMTP, un provider di IA con un'API compatibile con OpenAI e opzionalmente Telegram.
- I nodi VPN eseguono
cmp-agent. Ciascun nodo si registra una volta tramite un token monouso, quindi invia un heartbeat ogni 5 secondi tramite HTTPS al pannello e ne riceve la configurazione nella risposta. I nodi proxy IPv6 vengono installati una volta dal pannello tramite SSH e successivamente prelevano la propria configurazione dal pannello. - Lo stato è memorizzato in database SQLite e in alcuni file in
/var/lib/nexcmp. Le credenziali per CloudStack, Proxmox, S3, iDRAC e il provider di IA vengono salvate in forma crittografata (AES-256-GCM) utilizzando file di chiave principale nella stessa area.
Servizi e processi
| Processo | Eseguito come | In ascolto su | Funzione |
|---|---|---|---|
nginx | root (worker www-data) | 80, 443 | TLS, reindirizzamento, proxy verso il pannello |
nexcmp | nexcmp | 3000 (tutte le interfacce durante la prima installazione, poi 127.0.0.1) | Portale, console di amministrazione, API, procedura guidata, download |
nexcmp-vmd | nexcmp | 127.0.0.1:8112 | Job, sincronizzazione, fatturazione, banda, console |
nexcmp-update | root | nessuno | Applica gli aggiornamenti richiesti dalla console di amministrazione (un'unità path attende la richiesta) |
cmp-agent (sui nodi VPN) | root | le porte in ascolto della VPN | Invia i report al pannello, esegue listener proxy su IPv4 pubblici |
Il pannello e il worker vengono eseguiti come utente ordinario senza alcuna capability Linux, con un file system di sola lettura tranne /var/lib/nexcmp e /var/log/nexcmp. Non richiedono root, Docker, database separati o Redis.
File e loro posizioni
| Percorso | Contenuto |
|---|---|
/opt/nexcmp | Il programma: release, bin/, file condivisi come il generatore di template. Di proprietà di root, di sola lettura per il servizio. |
/etc/nexcmp | Impostazioni del programma di installazione (install.conf), porta e bind (nexcmp.env). |
/var/lib/nexcmp | Database SQLite, branding caricato, cartella di download dell'agente, stato della licenza, file della chiave master. Esegui il backup di questi elementi. |
/var/log/nexcmp | Log. |
Vedi Backup and restore. I file della chiave master devono essere salvati insieme ai database, altrimenti un database ripristinato non potrà decrittografare le credenziali memorizzate.
Chi si connette a chi
| Direzione | Percorso | Porta | Note |
|---|---|---|---|
| Da cliente a pannello | Internet, DNS, Cloudflare opzionale, nginx | 443 | Vedi DNS and Cloudflare. |
| Da pannello a server delle licenze | nexcmp.com | 443 | Attivazione, controllo giornaliero e aggiornamenti. |
| Da pannello a Apache CloudStack | API | 443 o 8080 | La console della VM, la banda e le funzionalità Kubernetes utilizzano lo stesso endpoint. |
| Da pannello a Proxmox VE | API e console WebSocket | 8006 | Certificato bloccato tramite SHA-256. |
| Da pannello a iDRAC | Redfish | 443, VNC 5901 | Solo rete di gestione. |
| Da iDRAC a server ISO | HTTP | la tua porta | L'iDRAC effettua il pull dell'ISO. |
| Da pannello a Ceph RGW | Admin Ops | 443 | |
| Da pannello a SMTP | SMTP | 587 o 465 | |
| Da pannello a provider AI | HTTPS | 443 | Solo quando il modulo AI è attivo. |
| Da gateway di pagamento a pannello | Webhook | 443 | Chiamate di ritorno da Stripe e PayPal. |
| Da nodo a pannello | cmp-agent | 443 | Registrazione, heartbeat, aggiornamento. |
| Da pannello a nodo proxy IPv6 | SSH | la porta inserita | Solo per la prima installazione. |
Perché è importante
- Un pannello raggiungibile è un pannello attaccabile. Mantieni la porta 3000 chiusa una volta completata la procedura guidata di configurazione. L'installatore lo fa già quando il TLS è attivo.
- Il worker deve essere in esecuzione per consentire qualsiasi creazione o fatturazione.
sudo nexcmp statusmostra sia i servizi sia il controllo dello stato di salute. - Pianifica i firewall in uscita. Se il traffico in uscita del server del pannello è filtrato, autorizza le destinazioni nella tabella sopra.
- Il traffico di gestione rimane fuori dal percorso pubblico. Le connessioni a CloudStack, Proxmox VE, iDRAC e Ceph vanno direttamente dal server del pannello a tali sistemi, mai tramite nginx o Cloudflare.