Proteger serviços Docker com Caddy em uma VPS
Implantar serviços web conteinerizados em um servidor privado virtual requer um proxy reverso confiável que gerencie certificados TLS automáticos sem manutenção complexa. Este tutorial pressupõe que você já tenha o Docker instalado na sua VPS e que já possua um domínio configurado.
Configurando a rede principal e o Caddy
Para permitir que várias pilhas Docker Compose separadas se comuniquem com segurança através de um único proxy reverso, crie uma rede Docker externa chamada ingress executando este comando:
mkdir -p /srv/core-and-shared/caddy
cd /srv/core-and-shared/caddy
A seguir, crie a estrutura de diretórios para o Caddy e coloque este código em /srv/core-and-shared/caddy/compose.yaml:
services:
caddy:
image: caddy:2-alpine
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy-data:/data
- caddy-config:/config
networks:
- caddy
volumes:
caddy-data:
caddy-config:
networks:
caddy:
name: caddy
Configurando o Caddyfile e o túnel Cloudflare
Coloque este código em /srv/core-and-shared/caddy/Caddyfile, substituindo o domínio de exemplo pelo seu. A configuração de teste usa test.lulzcasz.dev, e você precisará apontar seu domínio para sua VPS:
<domain> {
respond "Hello World!"
}
Se preferir executar seu proxy atrás de um túnel seguro em vez de abrir portas de firewall de entrada diretas, você pode integrar um túnel da Cloudflare criando /srv/core-and-shared/cloudflared/compose.yaml:
docker compose up -d
Testando a implantação
Assim que seus contêineres estiverem em execução, verifique se tudo responde corretamente via HTTPS executando:
curl https://<domain>
Para arquiteturas alternativas, você pode revisar como configurar o Caddy em um servidor local.
Use o Caddy como reverse proxy em um servidor local
Aprenda a configurar o Caddy como proxy reverso local usando Docker e Docker Compose, com roteamento automático e integração com o Cloudflare Tunnel.
Para escalar cargas de trabalho conteinerizadas em implantações de pilha completa, confira nosso guia sobre hospedagem em produção.
Faça deploy do Django em produção com Docker