---
title: Arquitetura
description: Como o NexCMP é estruturado: domínio, nginx, painel, serviços worker e todos os sistemas conectados, com portas e dados usados.
url: https://nexcmp.com/pt/docs/infrastructure/architecture/
applies_to: NexCMP 1.6.1
updated: 2026-11-02
---

# Arquitetura {#architecture}

> **Onde no admin:** esta é uma página de referência. Os serviços descritos aqui estão visíveis com `sudo nexcmp status`; as conexões são configuradas em Infrastructure e System › Settings.

## A visão geral {#the-picture}

![Arquitetura do NexCMP: os clientes acessam o nginx por DNS e, opcionalmente, pelo Cloudflare; o nginx faz proxy para o painel na porta 3000; o painel e o worker se comunicam com o CloudStack, Proxmox VE, iDRAC, Ceph, gateways de pagamento, SMTP e um provedor de IA; e nós de VPN e proxy IPv6 se comunicam de volta com o painel](https://nexcmp.com/pt/docs/images/infrastructure/architecture.svg)

### O mesmo diagrama em palavras {#the-same-diagram-in-words}

1. Um cliente ou administrador abre o `https://cloud.example.com` (o portal), o `https://cloud.example.com/admin` (o console de administração) ou chama a REST API. O DNS aponta o nome para o seu servidor ou para o Cloudflare, que faz proxy para ele.
2. O **nginx** no servidor do painel escuta nas portas 80 (redirecionamento e renovação de certificado) e 443 (TLS) e encaminha cada requisição para o **panel** em `127.0.0.1:3000`. Após o assistente de instalação, o painel escuta apenas na interface de loopback.
3. O **panel** (`nexcmp.service`) serve o portal do cliente, o console de administração, a REST API, o assistente de instalação e os downloads necessários para os nós (o binário do agente, o script de instalação, a ferramenta de linha de comando `cmp`). Ele também verifica sua licença uma vez por dia.
4. O **worker** (`nexcmp-vmd.service`) escuta em `127.0.0.1:8112`, que é apenas local. Ele executa tudo o que leva tempo ou precisa acontecer de forma agendada: tarefas de provisionamento, sincronização com CloudStack e Proxmox VE, ciclos de faturamento, coleta de largura de banda e conexões do console do navegador.
5. A partir desses dois processos, o NexCMP faz chamadas externas para: **CloudStack** (API de gerenciamento), **Proxmox VE** (API na porta 8006, certificado fixado/pinned), **Dell iDRAC** (Redfish sobre HTTPS na rede de gerenciamento), **Ceph RGW** (S3 e Admin Ops sobre HTTPS), **gateways de pagamento** (Stripe, PayPal, USDT e provedores de transferência bancária, que também chamam suas URLs de webhook), **seu servidor SMTP**, um **provedor de IA** com uma API compatível com OpenAI e, opcionalmente, **Telegram**.
6. **Nós de VPN** executam `cmp-agent`. Cada nó se registra uma vez com um token de uso único, envia um batimento cardíaco a cada 5 segundos via HTTPS para o painel e recebe sua configuração na resposta. **Nós de proxy IPv6** são instalados uma vez pelo painel via SSH e, em seguida, obtêm sua configuração do painel.
7. O estado reside em bancos de dados SQLite e em alguns arquivos em `/var/lib/nexcmp`. As credenciais para CloudStack, Proxmox, S3, iDRAC e o provedor de IA são armazenadas criptografadas (AES-256-GCM) com arquivos de chave mestra na mesma área.

## Serviços e processos {#services-and-processes}

| Processo | Executado como | Escuta em | Função |
|---|---|---|---|
| `nginx` | root (workers `www-data`) | 80, 443 | TLS, redirecionamento, proxy para o painel |
| `nexcmp` | `nexcmp` | 3000 (todas as interfaces durante a primeira instalação, depois `127.0.0.1`) | Portal, console de administração, API, assistente, downloads |
| `nexcmp-vmd` | `nexcmp` | `127.0.0.1:8112` | Tarefas, sincronização, faturamento, largura de banda, console |
| `nexcmp-update` | root | nenhum | Aplica atualizações solicitadas pelo console de administração (uma unidade de caminho aguarda pela solicitação) |
| `cmp-agent` (em nós VPN) | root | as portas do listener VPN | Reporta-se ao painel, executa listeners de proxy em IPv4 públicos |

O painel e o worker executam como um usuário comum, sem quaisquer recursos do Linux, com um sistema de arquivos somente leitura, exceto `/var/lib/nexcmp` e `/var/log/nexcmp`. Não precisam de root, Docker, banco de dados separado ou Redis.

## Arquivos e onde eles ficam {#files-and-where-they-are}

| Caminho | Conteúdo |
|---|---|
| `/opt/nexcmp` | O programa: versões, `bin/`, arquivos compartilhados como o construtor de modelos. De propriedade do root, somente leitura para o serviço. |
| `/etc/nexcmp` | Configurações do instalador (`install.conf`), porta e vínculo (`nexcmp.env`). |
| `/var/lib/nexcmp` | Bancos de dados SQLite, identidade visual enviada, pasta de download do agente, estado da licença, arquivos de chave mestra. Faça backup disso. |
| `/var/log/nexcmp` | Logs. |

Consulte [Backup and restore](https://nexcmp.com/pt/docs/getting-started/backup-and-restore/). Os arquivos de chave mestra devem ter o backup feito junto com os bancos de dados, caso contrário, um banco de dados restaurado não poderá descriptografar suas credenciais armazenadas.

## Quem se conecta a quem {#who-connects-to-whom}

| Direção | Caminho | Porta | Notas |
|---|---|---|---|
| Cliente para o painel | Internet, DNS, Cloudflare opcional, nginx | 443 | Consulte [DNS and Cloudflare](https://nexcmp.com/pt/docs/getting-started/dns-and-cloudflare/). |
| Painel para o servidor de licenças | `nexcmp.com` | 443 | Ativação, verificação diária e atualizações. |
| Painel para o CloudStack | API | 443 ou 8080 | O console da VM, largura de banda e recursos de Kubernetes usam o mesmo endpoint. |
| Painel para o Proxmox VE | API e console WebSocket | 8006 | Certificado fixado (pinned) por SHA-256. |
| Painel para o iDRAC | Redfish | 443, VNC 5901 | Apenas rede de gerenciamento. |
| iDRAC para o servidor ISO | HTTP | sua porta | O iDRAC puxa a ISO. |
| Painel para o Ceph RGW | Admin Ops | 443 | |
| Painel para o SMTP | SMTP | 587 ou 465 | |
| Painel para o provedor de IA | HTTPS | 443 | Apenas quando o módulo de IA estiver ativado. |
| Gateway de pagamento para o painel | Webhook | 443 | Stripe e PayPal fazem chamadas de retorno (callback). |
| Nó para o painel | `cmp-agent` | 443 | Registro, heartbeat, atualização. |
| Painel para o nó de proxy IPv6 | SSH | a porta que você digita | Instalação única. |

## Por que isso importa {#why-it-matters}

- **Um painel que pode ser acessado é um painel que pode ser atacado.** Mantenha a porta 3000 fechada após concluir o assistente de configuração. O instalador já faz isso quando o TLS está ativo.
- **O worker deve estar em execução** para que qualquer recurso seja criado ou cobrado. `sudo nexcmp status` exibe ambos os serviços e a verificação de integridade.
- **Planeje os firewalls de saída.** Se o tráfego de saída do servidor do painel for filtrado, libere os destinos na tabela acima.
- **O tráfego de gerenciamento fica fora da rota pública.** As conexões com CloudStack, Proxmox VE, iDRAC e Ceph vão direto do servidor do painel para esses sistemas, nunca através do nginx ou Cloudflare.
