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=truetraefik.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ço | URL | Destino | Observações |
|---|---|---|---|
| Dashboard Frontend | https://dash.freterapido.local | angular-cli:8107 | Interface principal |
| Dashboard API | https://dash.freterapido.local/api/* | server-php:80 | API do painel |
| CMS | https://cms.freterapido.local | server-php:80 | Sistema de gerenciamento |
| API Externa | https://freterapido.local/api/external/* | api-external-server:80 | API pública |
| API Interna | https://freterapido.local/api/internal/* | server-php:80 | API interna |
| API Tracking | https://freterapido.local/api/tracking/* | api:8182 | Rastreamento |
| Keycloak | https://login.freterapido.local | fr_keycloak:8080 | Autenticação |
| Keycloak Shippon | https://login.shippon.local | shippon_keycloak:8080 | Auth Shippon |
| MailHog | https://email.freterapido.local | fr_mailhog:8025 | Email de teste |
| RabbitMQ | https://rabbitmq.freterapido.local | fr_rabbitmq:15672 | Message broker |
| Prometheus | https://prometheus.freterapido.local | fr_prometheus:9090 | Métricas |
| Grafana | https://monitoring.freterapido.local | fr_grafana:3000 | Dashboards |
| Kong | https://api.freterapido.local | kong:8000 | API Gateway |
| Swagger | https://doc.freterapido.local | fr_swagger:8080 | Documentação |
| Sign Up | https://signup.freterapido.local | signup-frontend:8141 | Cadastro |
🚀 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
- Erro de certificado: Verifique se o mkcert está instalado e configurado
- Porta em uso: Certifique-se que nenhum outro serviço está usando as portas 80/443
- 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
- Rede: A rede
traefikfoi mantida para compatibilidade - Portas: As mesmas portas (80/443) são utilizadas
- Volumes: Novos volumes
caddy_dataecaddy_configforam criados - 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.