- Updated Dockerfile to include hardcoded environment variables for Next.js build. - Enhanced Google Calendar API integration by extracting user email from id_token and adding scopes for OpenID and email access. - Modified credential management to delete existing credentials before creating new ones in n8n. - Updated dashboard to display connected Google Calendar email and credential details. Story: 4.2 - Melhorar integração com Google Calendar e atualizar Dockerfile 🤖 Generated with [Claude Code](https://claude.com/claude-code)
5.2 KiB
Epic 4: DevOps & Deployment
Epic Goal
Containerizar a aplicação e preparar infraestrutura completa de deploy em Kubernetes, permitindo hospedar o portal AutomatizaSE em produção de forma escalável, segura e gerenciável. Epic entrega imagem Docker otimizada e manifests K8s prontos para deploy.
Epic Status
- Status: Not Started
- Priority: P1 (High)
- Effort Estimate: 1-2 days
- Dependencies: Epic 1, Epic 2, Epic 3 (POC finalizada)
Value Proposition
Este epic estabelece a infraestrutura de produção, entregando:
- ✅ Aplicação containerizada com Docker otimizado para Next.js
- ✅ Manifests Kubernetes prontos para deploy
- ✅ Configuração de secrets e variáveis de ambiente
- ✅ Ingress configurado com nginx para domínio portal.automatizase.com.br
- ✅ Aplicação rodando em produção no cluster K8s
User Stories
Story 4.1: Criar Dockerfile e Manifests Kubernetes para Deploy
Link: story-4-1-criar-dockerfile-k8s-manifests.md
Descrição: Criar Dockerfile otimizado para Next.js e todos os manifests Kubernetes necessários (Deployment, Service, Ingress, Secret) para deploy da aplicação no cluster K8s no namespace automatizase.
Escopo:
- Dockerfile multi-stage build otimizado para produção
- Kubernetes Deployment com envFrom para secrets
- Kubernetes Service para expor aplicação internamente
- Kubernetes Secret com todas as variáveis do
.env.local - Kubernetes Ingress com nginx para domínio
portal.automatizase.com.br - Porta customizada (não 3000/8080) para evitar conflitos
Acceptance Criteria:
- Dockerfile constrói imagem Next.js com sucesso e otimizada para produção
- Deployment manifest configurado com:
- Namespace:
automatizase - Replicas: 2 (alta disponibilidade)
- Resources limits/requests definidos
- envFrom carregando secrets
- Porta customizada (ex: 3100)
- Namespace:
- Service manifest expõe Deployment internamente
- Secret manifest contém todas as variáveis do
.env.local(Supabase, n8n, EvolutionAPI, etc) - Ingress manifest configurado com:
- nginx ingress class
- Host:
portal.automatizase.com.br - TLS/SSL configurado
- Routing para Service correto
- Aplicação acessível via
https://portal.automatizase.com.brapós deploy - Documentação de deploy criada (README-DEPLOY.md)
Story 4.2: Criar CI/CD Pipeline para Build e Deploy Automático
Link: story-4-2-criar-cicd-pipeline.md
Descrição: Configurar pipeline CI/CD (GitHub Actions ou GitLab CI) para build automático da imagem Docker e deploy no cluster K8s.
Escopo:
- Pipeline de build de imagem Docker
- Push para registry (Docker Hub, GCR, ou registry privado)
- Deploy automático no cluster K8s
- Validações e health checks
Acceptance Criteria:
- Pipeline roda automaticamente em push para branch
main - Build de imagem Docker com versionamento (tags)
- Push de imagem para registry configurado
- Deploy automático no namespace
automatizase - Health checks validam deploy bem-sucedido
- Rollback automático em caso de falha
- Notificações de sucesso/falha do pipeline
Story 4.3: Configurar Monitoramento e Logs
Link: story-4-3-configurar-monitoring-logs.md
Descrição: Configurar coleta de logs e métricas básicas da aplicação rodando no K8s.
Escopo:
- Configuração de logs centralizados
- Métricas básicas (CPU, memória, requests)
- Dashboards de monitoramento
- Alertas críticos
Acceptance Criteria:
- Logs da aplicação coletados centralmente (ELK, Loki, CloudWatch, etc)
- Métricas de pods disponíveis (CPU, memória, network)
- Dashboard básico criado para visualizar saúde da aplicação
- Alertas configurados para:
- Pods crashando
- Alto uso de recursos
- Falhas de health checks
- Documentação de acesso aos logs e métricas
Technical Notes
- Dockerfile: Multi-stage build (build → production)
- Base Image: node:20-alpine para produção
- Registry: Definir qual registry usar (Docker Hub, GCR, ECR, registry privado)
- K8s Version: Compatível com versão atual do cluster
- Ingress Controller: nginx-ingress já instalado no cluster
- Namespace:
automatizase(criar se não existir) - Porta interna: 3100 (evitar conflito com 3000/8080)
- Secrets: Armazenar credenciais sensíveis (Supabase, n8n, EvolutionAPI)
- Resources: Definir limits/requests apropriados (ex: 512Mi RAM, 500m CPU)
Acceptance Criteria (Epic Level)
- ✅ Imagem Docker construída e disponível em registry
- ✅ Aplicação deployada no namespace
automatizase - ✅ Aplicação acessível via
https://portal.automatizase.com.br - ✅ Secrets carregados corretamente (aplicação funciona com credenciais)
- ✅ Ingress roteia tráfego corretamente para pods
- ✅ Pods reiniciam automaticamente em caso de falha
- ✅ Logs e métricas visíveis e coletados
- ✅ Documentação de deploy completa
Definition of Done
- Todas as 3 stories completadas
- Aplicação rodando em produção no K8s
- Testes de carga básicos executados
- Documentação de deploy e troubleshooting criada
- Rollback testado e funcional
- Secrets rotacionados e seguros
- Monitoramento e alertas configurados