Passar para o conteúdo principal

Como instalar e configurar o Caddy Webserver no Linux

O Caddy é um servidor web moderno, leve e de alto desempenho escrito em Go, conhecido principalmente por gerenciar certificados SSL/TLS gratuitos automaticamente (via Let's Encrypt / ZeroSSL) sem exigir ferramentas adicionais como o Certbot. Ele simplifica drasticamente a configuração de proxies reversos, páginas estáticas e APIs com uma sintaxe muito mais limpa que o Nginx ou Apache.

Combinado com o poder dos servidores VPS da HypeHost - equipados com armazenamento SSD ultrarrápido, uplink de alta velocidade e proteção AntiDDoS de mais de 12 Tbps inclusa -, o Caddy torna-se a solução ideal para colocar aplicações em produção em poucos minutos.

Este guia orienta a instalação e configuração do Caddy em distribuições Ubuntu/Debian e da família RHEL (AlmaLinux, Rocky Linux e CentOS).

Requisitos

  • Um servidor VPS ou Bare Metal na HypeHost com Ubuntu, Debian, AlmaLinux, Rocky Linux ou CentOS;

  • Acesso de usuário com privilégios sudo ou root via SSH;

  • Um domínio ou subdomínio com registro A apontado para o endereço IPv4 da sua VPS;

  • Portas 80/TCP (HTTP) e 443/TCP (HTTPS) liberadas no firewall.

Passo 1: Instalar o Caddy no Servidor

Conecte-se à sua VPS via SSH e utilize o repositório oficial da distribuição correspondente:

No Ubuntu ou Debian:

sudo apt update && sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl curl -1sLF 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg curl -1sLF 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list sudo apt update sudo apt install caddy -y

No AlmaLinux, Rocky Linux ou CentOS:

sudo dnf install 'dnf-command(copr)' -y sudo dnf copr enable @caddy/caddy -y sudo dnf install caddy -y

Passo 2: Habilitar e Iniciar o Serviço

Após a instalação, ative o serviço para inicializar junto com o sistema operacional:

sudo systemctl enable --now caddy

Para verificar se o Caddy está ativo e em execução:

sudo systemctl status caddy

(O status deve constar como active (running)).

Passo 3: Liberar as Portas no Firewall

O Caddy necessita das portas HTTP e HTTPS abertas para responder aos visitantes e realizar a validação do certificado SSL automático:

No Ubuntu / Debian (UFW):

sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw reload

No AlmaLinux / Rocky Linux / CentOS (Firewalld):

sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --permanent --add-service=https sudo firewall-cmd --reload

Passo 4: Configurar o Caddyfile

O arquivo principal de configuração do Caddy fica localizado em /etc/caddy/Caddyfile. É nele que são definidos os sites e redirecionamentos.

Abra o arquivo para edição:

sudo nano /etc/caddy/Caddyfile

Apague o conteúdo padrão e escolha o modelo que melhor atende à sua necessidade:

Cenário A: Servir um Site Estático (HTML/CSS/JS)

seudominio.com.br {
root * /var/www/html
file_server
}

Cenário B: Proxy Reverso para Aplicação Local (ex: Node.js, Docker, n8n, Golang)

Se você possui uma aplicação rodando em uma porta interna da máquina (como a porta 3000 ou 8080), o Caddy atua como intermediário seguro:

app.seudominio.com.br {
reverse_proxy 127.0.0.1:3000
}

Certificado SSL Automático: Assim que você insere um domínio válido no início do bloco, o Caddy detecta o apontamento DNS, emite e renova o certificado SSL/TLS de forma automática sem requerer intervenção manual.

Pressione Ctrl + O e dê Enter para salvar; pressione Ctrl + X para sair.

Passo 5: Validar e Recarregar as Configurações

Antes de aplicar as alterações, valide se o arquivo não possui erros de sintaxe:

caddy validate --config /etc/caddy/Caddyfile

Em seguida, recarregue o serviço sem derrubar as conexões ativas:

sudo systemctl reload caddy

Comandos Úteis do Caddy

  • Recarregar configurações sem parar o site: sudo systemctl reload caddy

  • Reiniciar o serviço: sudo systemctl restart caddy

  • Acompanhar os logs de acesso e erros em tempo real:

    sudo journalctl -u caddy -f

Respondeu à sua pergunta?