Skip to main content

Migração do Traefik para Caddy

Somente para devs que estão rodando com traefik, novos devs já vão iniciar com caddy.

Este documento descreve a migração completa do Traefik para o Caddy no ambiente de desenvolvimento.

🎯 Objetivos da Migração

  • Simplificar a configuração de proxy reverso
  • Melhorar a performance e reduzir o uso de recursos
  • Facilitar a manutenção e configuração
  • Automatizar a geração de certificados SSL

📋 Mudanças Realizadas

1. Remoção de Labels Traefik

Removidas todas as labels do Traefik de todos os serviços:

  • traefik.enable=true
  • traefik.http.routers.*
  • traefik.http.services.*
  • traefik.http.middlewares.*

2. Configuração Centralizada (Caddyfile)

Todas as rotas agora estão centralizadas no Caddyfile:

🌐 Mapeamento de Rotas

ServiçoURLDestinoObservações
Dashboard Frontendhttps://dash.freterapido.localangular-cli:8107Interface principal
Dashboard APIhttps://dash.freterapido.local/api/*server-php:80API do painel
CMShttps://cms.freterapido.localserver-php:80Sistema de gerenciamento
API Externahttps://freterapido.local/api/external/*api-external-server:80API pública
API Internahttps://freterapido.local/api/internal/*server-php:80API interna
API Trackinghttps://freterapido.local/api/tracking/*api:8182Rastreamento
Keycloakhttps://login.freterapido.localfr_keycloak:8080Autenticação
Keycloak Shipponhttps://login.shippon.localshippon_keycloak:8080Auth Shippon
MailHoghttps://email.freterapido.localfr_mailhog:8025Email de teste
RabbitMQhttps://rabbitmq.freterapido.localfr_rabbitmq:15672Message broker
Prometheushttps://prometheus.freterapido.localfr_prometheus:9090Métricas
Grafanahttps://monitoring.freterapido.localfr_grafana:3000Dashboards
Konghttps://api.freterapido.localkong:8000API Gateway
Swaggerhttps://doc.freterapido.localfr_swagger:8080Documentação
Sign Uphttps://signup.freterapido.localsignup-frontend:8141Cadastro

🚀 Como Executar a Migração

# 1. Parar containers
docker-compose down

# 2. Backup do Traefik
mv traefik traefik.backup

# 3. Recriar rede
docker network rm traefik
docker network create traefik

# 4. Subir com Caddy
docker-compose up -d

🔧 Configuração de Certificados

Desenvolvimento Local (Recomendado)

# Instalar mkcert
brew install mkcert # macOS
# ou
sudo apt install mkcert # Ubuntu

# Configurar certificados
mkcert -install
mkcert "*.freterapido.local" "*.ondeestameupedido.local" "*.shippon.local"

Certificados Auto-assinados

O Caddy gerará automaticamente certificados auto-assinados se não encontrar certificados válidos.

🐛 Troubleshooting

Verificar Status do Caddy

docker logs fr_caddy

Testar Configuração

docker exec fr_caddy caddy validate --config /etc/caddy/Caddyfile

Recarregar Configuração

docker exec fr_caddy caddy reload --config /etc/caddy/Caddyfile

Problemas Comuns

  1. Erro de certificado: Verifique se o mkcert está instalado e configurado
  2. Porta em uso: Certifique-se que nenhum outro serviço está usando as portas 80/443
  3. Rede não encontrada: Execute docker network create traefik

📊 Benefícios da Migração

Performance

  • ✅ Menor uso de memória (~50MB vs ~100MB)
  • ✅ Startup mais rápido
  • ✅ Menor latência de proxy

Configuração

  • ✅ Sintaxe mais simples e legível
  • ✅ Configuração centralizada
  • ✅ Menos arquivos de configuração
  • ✅ Auto-reload de configuração

Certificados

  • ✅ Geração automática de certificados
  • ✅ Renovação automática
  • ✅ Suporte nativo a Let's Encrypt

Manutenção

  • ✅ Logs mais claros
  • ✅ Debugging mais fácil
  • ✅ Menos dependências

📝 Notas Importantes

  1. Rede: A rede traefik foi mantida para compatibilidade
  2. Portas: As mesmas portas (80/443) são utilizadas
  3. Volumes: Novos volumes caddy_data e caddy_config foram criados
  4. TLS: Todos os serviços usam HTTPS com certificados internos

🎉 Conclusão

A migração do Traefik para Caddy foi concluída com sucesso, mantendo todas as funcionalidades existentes com uma configuração mais simples e performática.