Docker cPanel CONCLUÍDO

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 .env para hostname, portas, credenciais e limites de recurso (CPU/memória).
  • Fluxo de espelhamento do /usr/local/cpanel para edição em tempo real do core/plugin no host, sem ciclo manual de docker cp.

Arquitetura operacional

  • Base do contêiner: AlmaLinux 8.
  • Orquestração: Docker Compose.
  • Persistência:
  • - volume de core (cpanel_core) para /usr/local/cpanel; - volumes auxiliares para manter dados e configuração entre reinicializações.

  • Rede e acesso:
  • - 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.

Andamento no GitHub (issues)

Painel em tempo real com as issues mais recentes do repositório.

abertas (amostra): -- fechadas (amostra): -- base: -- ultimas issues

carregando andamento...

Resultados reais

Ambiente de desenvolvimento cPanel/WHM em contêiner AlmaLinux 8 com Docker Compose, focado em testes de plugin, persistência de dados e operação reprodutível com systemd.

Arquitetura e organização

Execução e operação

O projeto segue fluxo reprodutível de execução com validação técnica em ambiente de produção/similar.

Screenshots

Falar sobre este projeto

Aplique este modelo no seu ambiente e acelere a entrega com consistência técnica.