Resumo técnico
Projeto de infraestrutura para executar uma instância completa de cPanel/WHM dentro de Docker usando AlmaLinux 8 como base. A implementação foi desenhada para cenários de desenvolvimento e validação técnica, com ênfase em três pontos críticos de campo: suporte a systemd no contêiner, persistência real do core do cPanel e redução de falhas de bootstrap durante instalação automatizada.
Escopo executado
- Estruturação de ambiente Docker Compose com contêiner privilegiado para compatibilidade com serviços internos do cPanel.
- Definição explícita de capabilities operacionais (
NET_ADMIN,SYS_ADMIN,SYS_RAWIO) para mitigar erros em serviços que dependem de recursos de baixo nível. - Implementação de persistência com volumes nomeados para preservar estado entre rebuilds do contêiner.
- Estratégia de bootstrap para preparar dependências essenciais (
wget,perl,network-scripts) e evitar interrupções no instalador oficial. - Parametrização completa via
.envpara hostname, portas, credenciais e limites de recurso (CPU/memória). - Fluxo de espelhamento do
/usr/local/cpanelpara edição em tempo real do core/plugin no host, sem ciclo manual dedocker cp.
Arquitetura operacional
- Base do contêiner: AlmaLinux 8.
- Orquestração: Docker Compose.
- Persistência:
- Rede e acesso:
- volume de core (cpanel_core) para /usr/local/cpanel; - volumes auxiliares para manter dados e configuração entre reinicializações.
- portas do cPanel/WHM mapeadas para o host; - SSH em porta dedicada para administração técnica.
Configuração inicial (.env)
CONTAINER_NAME=cpanel-server
HOSTNAME=srv.domain.com
ROOT_PASSWORD=YourStrongPasswordHere
SSH_PORT_HOST=22028
SSH_PORT_CONTAINER=22028
CPANEL_SSL_PORT=2083
CPANEL_NON_SSL_PORT=2082
WHM_SSL_PORT=2087
WHM_NON_SSL_PORT=2086
HTTP_PORT_HOST=8080
HTTPS_PORT_HOST=8443
HTTP_PORT_CONTAINER=80
HTTPS_PORT_CONTAINER=443
CPU_LIMIT=2.0
MEM_LIMIT=4G
MEM_RESERVATION=2G
TIMEZONE=America/Sao_Paulo
LANG=C.utf8
Execução prática
# subir ambiente
docker-compose up -d
# reinstalação manual do cPanel (quando necessário)
docker exec -it cpanel-server bash -c "cd /home && curl -o latest -L https://securedownloads.cpanel.net/latest && sh latest"
Workflow de desenvolvimento em tempo real
# pasta local de desenvolvimento
mkdir -p /home/cpanel/dev
# link simbólico para volume do core cPanel
ln -s /var/lib/docker/volumes/NOME_DO_DIRETORIO_cpanel_core/_data /home/cpanel/dev/core
Com essa abordagem, alterações feitas no host refletem instantaneamente no contêiner, acelerando ciclos de desenvolvimento de plugin e testes de integração.
Hardening e limites de segurança
- O ambiente opera com
privileged: true, portanto o escopo recomendado é exclusivamente laboratório/dev/teste. - Acesso externo deve ser protegido por proxy reverso e controles adicionais quando houver exposição de rede.
- A troca imediata de senha root após primeiro acesso ao WHM é obrigatória para reduzir risco operacional.
Stack e ferramentas
- Docker Compose
- AlmaLinux 8
- cPanel/WHM
- systemd em contêiner
- Volumes nomeados Docker
Tags operacionais
- Docker
- cPanel
- AlmaLinux
- Systemd
- Dev Environment
Resultado operacional
- Ambiente reproduzível para validar plugins cPanel sem depender de servidor físico dedicado.
- Redução de tempo de setup em testes de integração e troubleshooting de bootstrap.
- Maior previsibilidade de mudanças no core ao usar edição em tempo real com volume persistente.