---
title: Architecture
description: Fonctionnement de NexCMP : domaine, nginx, services panel et worker, systèmes connectés, ainsi que les ports et données utilisés par chaque flux.
url: https://nexcmp.com/fr/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Architecture {#architecture}

> **Emplacement dans l'admin :** il s'agit d'une page de référence. Les services décrits ici sont visibles avec `sudo nexcmp status` ; les connexions sont configurées sous Infrastructure et System › Settings.

## Schéma d'ensemble {#the-picture}

![Architecture de NexCMP : les clients accèdent à nginx via le DNS et éventuellement Cloudflare, nginx relaie vers le panel sur le port 3000, le panel et le worker communiquent avec CloudStack, Proxmox VE, iDRAC, Ceph, les passerelles de paiement, SMTP et un fournisseur d'IA, et les nœuds VPN et proxy IPv6 renvoient leurs requêtes vers le panel](https://nexcmp.com/fr/docs/images/infrastructure/architecture.svg)

### Le même schéma en détail {#the-same-diagram-in-words}

1. Un client ou un administrateur ouvre `https://cloud.example.com` (le portail), `https://cloud.example.com/admin` (la console d'administration) ou appelle l'API REST. Le DNS fait pointer le nom de domaine vers votre serveur, ou vers Cloudflare, qui relaie le trafic.
2. **nginx** sur le serveur du panel écoute sur les ports 80 (redirection et renouvellement de certificat) et 443 (TLS) et transmet chaque requête au **panel** sur `127.0.0.1:3000`. Après l'assistant de configuration, le panel écoute uniquement sur l'interface loopback.
3. Le **panel** (`nexcmp.service`) dessert le portail client, la console d'administration, l'API REST, l'assistant de configuration et les téléchargements nécessaires aux nœuds (le binaire de l'agent, le script d'installation, l'outil en ligne de commande `cmp`). Il vérifie également votre licence une fois par jour.
4. Le **worker** (`nexcmp-vmd.service`) écoute sur `127.0.0.1:8112`, accessible uniquement en local. Il exécute tout ce qui prend du temps ou doit être planifié : les tâches de provisionnement, la synchronisation avec CloudStack et Proxmox VE, les cycles de facturation, la collecte de la bande passante et les connexions de console dans le navigateur.
5. Depuis ces deux processus, NexCMP effectue des appels vers l'extérieur : **CloudStack** (API de gestion), **Proxmox VE** (API sur le port 8006, certificat épinglé), **Dell iDRAC** (Redfish via HTTPS sur le réseau de gestion), **Ceph RGW** (S3 et Admin Ops via HTTPS), les **passerelles de paiement** (Stripe, PayPal, USDT et les prestataires de virement bancaire, qui appellent aussi vos URL de webhook), **votre serveur SMTP**, un **fournisseur d'IA** doté d'une API compatible OpenAI, et facultativement **Telegram**.
6. Les **nœuds VPN** exécutent `cmp-agent`. Chaque nœud s'enregistre une fois à l'aide d'un jeton à usage unique, puis envoie un heartbeat toutes les 5 secondes via HTTPS au panel et reçoit sa configuration en réponse. Les **nœuds proxy IPv6** sont installés une seule fois par le panel via SSH, puis récupèrent leur configuration auprès du panel.
7. L'état réside dans des bases de données SQLite et quelques fichiers sous `/var/lib/nexcmp`. Les identifiants pour CloudStack, Proxmox, S3, iDRAC et le fournisseur d'IA sont stockés sous forme chiffrée (AES-256-GCM) avec des fichiers de clé maîtresse dans le même répertoire.

## Services et processus {#services-and-processes}

| Processus | Exécuté en tant que | Écoute sur | Rôle |
|---|---|---|---|
| `nginx` | root (workers `www-data`) | 80, 443 | TLS, redirection, proxy vers le panel |
| `nexcmp` | `nexcmp` | 3000 (toutes les interfaces lors de l'installation initiale, puis `127.0.0.1`) | Portail, console d'administration, API, assistant, téléchargements |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | Tâches, synchronisation, facturation, bande passante, console |
| `nexcmp-update` | root | aucun | Applique les mises à jour demandées par la console d'administration (une unité path attend la requête) |
| `cmp-agent` (sur les nœuds VPN) | root | les ports d'écoute VPN | Envoie des rapports au panel, exécute les écouteurs proxy sur les IPv4 publiques |

Le panel et le worker s'exécutent en tant qu'utilisateur ordinaire sans aucune capacité Linux, avec un système de fichiers en lecture seule sauf `/var/lib/nexcmp` et `/var/log/nexcmp`. Ils ne nécessitent aucun accès root, ni Docker, ni base de données distincte, ni Redis.

## Fichiers et emplacements {#files-and-where-they-are}

| Chemin | Contenu |
|---|---|
| `/opt/nexcmp` | Le programme : versions, `bin/`, fichiers partagés tels que le générateur de modèles. Propriété de root, accessible en lecture seule pour le service. |
| `/etc/nexcmp` | Paramètres de l'installateur (`install.conf`), port et écoute (`nexcmp.env`). |
| `/var/lib/nexcmp` | Bases de données SQLite, personnalisation de marque téléversée, dossier de téléchargement des agents, état de la licence, fichiers de clé principale. À sauvegarder. |
| `/var/log/nexcmp` | Journaux. |

Consultez [Sauvegarde et restauration](https://nexcmp.com/fr/docs/getting-started/backup-and-restore/). Les fichiers de clé principale doivent être sauvegardés avec les bases de données, sous peine qu'une base restaurée ne puisse pas déchiffrer ses identifiants enregistrés.

## Qui se connecte à qui {#who-connects-to-whom}

| Sens | Chemin | Port | Remarques |
|---|---|---|---|
| Client vers panel | Internet, DNS, Cloudflare optionnel, nginx | 443 | Consultez [DNS et Cloudflare](https://nexcmp.com/fr/docs/getting-started/dns-and-cloudflare/). |
| Panel vers serveur de licences | `nexcmp.com` | 443 | Activation, vérification quotidienne et mises à jour. |
| Panel vers CloudStack | API | 443 ou 8080 | La console VM, la bande passante et les fonctionnalités Kubernetes utilisent le même endpoint. |
| Panel vers Proxmox VE | API et console WebSocket | 8006 | Certificat épinglé par SHA-256. |
| Panel vers iDRAC | Redfish | 443, VNC 5901 | Réseau de gestion uniquement. |
| iDRAC vers serveur ISO | HTTP | votre port | L'iDRAC récupère l'ISO. |
| Panel vers Ceph RGW | Admin Ops | 443 | |
| Panel vers SMTP | SMTP | 587 ou 465 | |
| Panel vers fournisseur d'IA | HTTPS | 443 | Uniquement lorsque le module IA est activé. |
| Passerelle de paiement vers panel | Webhook | 443 | Stripe et PayPal effectuent des rappels. |
| Nœud vers panel | `cmp-agent` | 443 | Enrôlement, heartbeat, mise à niveau. |
| Panel vers nœud proxy IPv6 | SSH | le port saisi | Installation initiale uniquement. |

## Pourquoi c'est important {#why-it-matters}

- **Un panel accessible est un panel vulnérable aux attaques.** Laissez le port 3000 fermé une fois l'assistant de configuration terminé. Le programme d'installation s'en charge déjà lorsque TLS est activé.
- **Le worker doit être actif** pour que les ressources puissent être créées ou facturées. `sudo nexcmp status` montre les deux services ainsi que le contrôle de santé.
- **Configurez les pare-feu sortants.** Si le trafic sortant du serveur du panel est filtré, autorisez les destinations indiquées dans le tableau ci-dessus.
- **Le trafic d'administration ne transite pas par le réseau public.** Les connexions vers CloudStack, Proxmox VE, iDRAC et Ceph s'effectuent directement du serveur du panel vers ces systèmes, sans jamais passer par nginx ou Cloudflare.
