⚙️ n8n self-hosted em Hetzner
Hetzner Cloud CPX21 (US$ 5/mês). Docker + n8n + PostgreSQL + Caddy. Backup automático para S3.
Por que self-host
- • n8n Cloud limita workflows ativos
- • Self-host ilimitado
- • Sem lock-in
- • Cliente leva o servidor se sair
- • Hetzner UE estável
Setup mínimo
- • Docker Compose
- • Domínio próprio (subdomínio do cliente)
- • TLS Let's Encrypt (Caddy auto)
- • Backup diário S3 (R$ 10/mês)
- • Monitor uptime Uptime Robot grátis
💡 Por que Hetzner
Mais barato que AWS/GCP em 3-5x para mesma performance. Datacenters UE estáveis. Não tem datacenter BR — latência ~150-200ms da BR é tolerável pra agente WhatsApp.
🗄️ Supabase com pgvector — RAG + memória + logs
Supabase free tier inicial, depois Pro US$ 25/mês. PostgreSQL + pgvector + Auth + real-time. Substitui Pinecone, Auth0, backend custom.
📚 RAG
Extension pgvector. Tabela `kb` com embedding vector(1536). Ivfflat index.
🧠 Memória
Tabela `conversations` com buffer das últimas 20 mensagens por cliente. TTL 24h.
📊 Logs estruturados
Tabela `events` com timestamp, tipo, payload jsonb. Particionada por mês.
🔐 Row Level Security
RLS habilitado em todas as tabelas. Cada cliente vê só os próprios dados.
📱 WhatsApp Cloud API direto
Provisiona direto pela Meta Cloud. Sem BSP (360dialog, Wati) na maioria dos casos. Mais barato.
✓ Meta Cloud direto
- • Sem mensalidade fixa de BSP
- • Cobrança por conversa iniciada pelo negócio
- • Template approval direto
- • 1000 conversas gratuitas/mês iniciais
- • Webhook nativo
Quando usar BSP
- • Cliente já tem com 360dialog/Wati
- • Precisa de painel pra champion (BSP fornece)
- • Volume muito alto + suporte BR
- • Múltiplos números num só painel
⏱️ Janela 24h
Após cliente iniciar conversa, você tem 24h pra responder livremente. Depois disso, só template message (approved). Importante pro design do agente.
🧠 Anthropic API com caching
Conta direto na Anthropic. Sonnet 4.6 + Haiku 4.5. Prompt caching ativo. Pre-paid.
🔑 API key direta
Sem intermediário (OpenRouter etc). Pre-paid. Cliente pode pagar conta direto da Anthropic se quiser.
💾 Prompt caching
cache_control no system prompt. TTL 5 min. Reduz custo 90%.
📊 Monitor de custo
Console Anthropic mostra spend diário. Configura alerta acima de R$ X/dia.
🔄 Stack componível
Quando Claude 5 sair, troca 1 string (model_id) e roda regressão. Sem refazer projeto.
💰 Custo total mensal — R$ 200-500/cliente
Breakdown realista por cliente PME típico.
| Item | Custo | Observação |
|---|---|---|
| Hetzner CPX21 | ~R$ 30 | Compartilhado entre 3-10 clientes |
| Supabase Pro | ~R$ 150 | Compartilhado entre clientes |
| Anthropic API | R$ 100-300 | Varia com volume. Cache ativo. |
| WABA | R$ 50-150 | Por conversa iniciada |
| Asaas PIX | ~R$ 20 | Quando usado |
| Total/cliente | R$ 200-500 | Faixa típica PME média |
💡 Pass-through vs revenda
Cliente paga direto serviços (pass-through, mais transparente) OU você revende incluindo no fee de manutenção (mais simples pra cliente). Decide no contrato.
🛡️ Segurança e backup — sem isso é amador
Servidor invadido = vazamento de dado de cliente = LGPD + reputação destruída. Não opcional.
🔑 SSH key only
Senha desabilitada. Só SSH com chave. fail2ban ativo.
🔥 Firewall só 80/443
UFW: deny incoming exceto 80, 443, 22 (SSH com IP whitelist). PostgreSQL não exposto.
💾 Backup automático diário
Dump Postgres → S3 cifrado. Retenção 30 dias. Teste de restore mensal.
🔐 Secrets em vault
API keys (Anthropic, Bling, WABA) em variáveis n8n ou Doppler. Nunca no workflow JSON.
🔍 Revisão mensal
Logs SSH · tentativas de login · atualizações pendentes · backup verificado.
⚠️ Incidente de dado
ANPD pode multar até 2% do faturamento (limite R$ 50 mi). Reputação leva 5+ anos pra reconstruir. Segurança é Princípio operacional do método.
🧱 Resumo do módulo
Próximo módulo:
5.2 — Integração com ERPs brasileiros · Bling · Omie · Conta Azul · NF-e · PIX · webhooks · tratamento de erro.