Documento de continuidade que captura: - Ideia principal do projeto (motor e-commerce multi-canal BR) - Inventário completo do que está rodando (20 containers, 18 skills ecom) - Validação do que funciona (8 subdomínios HTTP 200) - Pendências priorizadas (3 criticas, 5 importantes) - Avaliação honesta (skill-quality: o que está otimo e o que precisa melhorar) - 3 opções de proximo passo (A: Fase 5, B: motor, C: higienizar) Decisao de qual seguir fica com a Iris. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
12 KiB
HANDOFF M5 — Estado da Operação e Plano de Continuidade
Data: 06/jul/2026
VPS: 31.220.78.126 (Ubuntu 24.04, 193GB disco 36% usado, 11GB RAM 5.3GB usado)
Operador: Iris Florencio
Sessão atual: Conan Sonnet 4.6 via cc
🎯 IDEIA PRINCIPAL (origem do projeto)
Construir um motor e-commerce multi-canal para o mercado brasileiro operando 6 canais simultaneamente:
| # | Canal | Tipo | Status |
|---|---|---|---|
| 1 | Mercado Livre | Marketplace | skill pronta |
| 2 | Shopee | Marketplace | skill pronta |
| 3 | Amazon | Marketplace FBA | skill pronta |
| 4 | Magazine Luiza | Marketplace | skill pronta |
| 5 | TikTok Shop | Live Commerce | skill pronta |
| 6 | Site Próprio | B2C + B2B | skill pronta |
Stack tecnológico-alvo: Saleor (motor headless) + PostgreSQL + Redis + n8n (orquestração) + Docker + Traefik (proxy TLS) + OpenWA (WhatsApp) + Twenty CRM (clientes) + Chatwoot (suporte).
Diferenciais brasileiros: LGPD, CDC, NF-e, eventos sazonais (Black Friday, Dia das Mães, Páscoa, Dia do Cliente).
Stack AI: custom:aibee (aibee.cloud) como LLM principal, Ollama localhost:11434 (qwen3.6, deepseek-v4) como fallback, NVIDIA APIs grátis (Nemotron, Kimi) como fallback secundário.
📦 O QUE TEMOS (inventário de tudo que existe)
Infraestrutura rodando agora (20 containers)
Core M5 (motor e-commerce)
m5_saleor(porta 8000) — motor headless, GraphQL emhttps://loja.m5digital.net.brm5_saleor_dashboard(porta 80) — admin emhttps://dashboard.m5digital.net.brm5_postgres(5432) — banco principalm5_redis(6379) — cache/queuem5_n8n(5678) — orquestração emhttps://n8n.m5digital.net.brm5_traefik(80, 443, 8090) — proxy reverso + TLS
Comunicação
m5_openwa(2785) — WhatsApp Business emhttps://wa.m5digital.net.br(sessãomarcos-pessoalREADY,bussines-m5pendente escanear QR)chatwoot-chatwoot-1+sidekiq+postgres+redis— Suporte emhttps://chat.m5digital.net.br
CRM (novo no lugar do Hermes CRM descartado)
twenty_front+twenty_postgres(5434) +twenty_redis— Twenty CRM multi-tenant emhttps://crm.m5digital.net.br- container de chatwoot mantido por enquanto (decidir se mantém ou descontinua)
Gestão
m5_gitea(3000, 2222) — código-fonte emhttps://git.m5digital.net.brportainer(8000, 9000, 9443) — UI de Docker (acessível direto, sem traefik)
Proxy LLM
omniroute(20128) +omniroute-redis— roteador de APIs Anthropic-compatíveis com sticky sessions (gateway.digitalavello.shop)
Operações auxiliares
yt-pub-livesx-dashboard-1+scheduler-1— pipeline de vídeo (inema)
Repositórios / código produzido
| Local | Estado |
|---|---|
https://git.m5digital.net.br/m5digital/ecom-store |
✅ 2 commits pushados (m5log + workflows + Traefik) |
| Token de acesso Gitea | salvo em /root/ecommerce/.gitea_token (chmod 600, fora do git) |
Conteúdo atual do repo ecom-store:
ecom-store/utils/{__init__.py, example_usage.py, m5log.py}
ecom-store/README.md, .gitignore
scripts/traefik-conf/routes.yml
workflows/{README-FASE5-OPENWA-TWENTY.md, m5-openwa-to-twenty.json, m5-twenty-to-openwa.json,
chatwoot-integration.json, n8n-current/*.json}
Capacidades AI / Skills Hermes instaladas (~40 skills)
E-commerce (18):
- marketplaces:
ecommerce-amazon,ecommerce-mercadolivre,ecommerce-shopee,ecommerce-magalu,ecommerce-tiktok-shop - canais próprios:
ecommerce-site-proprio,ecommerce-b2b,ecommerce-b2c,ecommerce-dropshipping - estratégia:
ecommerce-gtm,ecommerce-marketing-automation,ecommerce-peak-events,ecommerce-omni-channel,ecommerce-analytics,ecommerce-legal-br,ecommerce-logistics,ecommerce-unit-economics - setup:
setup_ecommerce-setup,tutorial_ecommerce-tutorial - consolidação:
ecommerce-ccops
Produtividade (5 criadas): skill-status, skill-context, skill-quality, skill-ultrathink, skill-auto-verify
N8N + DevOps: nvidia-apis, mlops, data-science, autonomous-ai-agents, computer-use
INEMA materials em /root/inema_materiais/:
viralads/— curso UGC, ViralAds (skill pra anúncios)yt-pub-livesx/— pipeline de vídeo Docker (rodando)ads-skill.zip(já instalado em~/.hermes/skills/ads-skill/)ClaudeOS-Hermes-V2.3.zip— dashboard operacional (88MB)
Backups críticos
| Local | Conteúdo |
|---|---|
/root/backups/2026-07-06_pre-crm-reorg/ |
Pre-fase3 (substituição Hermes→Twenty CRM) |
/root/ecommerce/backup/ |
7 snapshots do vault (29/jun → 05/jul) — vault_*.tar.gz, 167KB cada |
/root/ecommerce/logs/ |
Logs m5log (JSON clean rotacionado) |
/root/backups/2026-07-06_pre-crm-reorg/hermes-crm-*.{tar.gz,dump} |
Hermes CRM código + DB + minio (manter 30d no mínimo por descarte) |
🟢 O QUE FUNCIONA (validado hoje)
| Componente | Validação |
|---|---|
loja.m5digital.net.br (Saleor) |
HTTP 200 |
dashboard.m5digital.net.br (Saleor admin) |
HTTP 200 |
git.m5digital.net.br (Gitea) |
HTTP 200, push feito (commit 492fed6) |
n8n.m5digital.net.br |
HTTP 200, 3 webhooks ativos respondendo |
wa.m5digital.net.br (OpenWA) |
HTTP 200, API key funciona, sessão marcos-pessoal READY |
crm.m5digital.net.br (Twenty CRM) |
HTTP 200 |
chat.m5digital.net.br (Chatwoot) |
HTTP 200 |
video.m5digital.net.br (yt-pub-livesx) |
HTTP 401 auth interno (esperado, HEAD 200) |
http://31.220.78.126:8090 (Traefik dashboard) |
UP |
http://31.220.78.126:2785 (OpenWA direto) |
UP |
| Backup pre-Fase 3 | íntegro, MANIFEST.md com SHA-256 |
Logger M5 (commit 492fed6)
- Wrapper loguru com 3 modos: texto (default), JSON (
M5_LOG_JSON=1), JSON clean para Loki/Elastic (M5_LOG_JSON_CLEAN=1) - 3 sinks: console colorido +
m5-{date}.log(30d retenção) +m5-errors-{date}.log(90d) - Compressão gzip automática
- Função
bind_context(**kwargs)para agents/requests example_usage.pycom 4 cenários reais
🔴 O QUE ESTÁ PENDENTE / QUEBRADO
Crítico (bloqueia operação)
-
Setup manual do Twenty CRM via browser (
https://crm.m5digital.net.br)- Você está fazendo agora
- Bloqueia: criação de workspace, schema customizado, configurações iniciais
-
Setup manual do n8n via wizard de login (
https://n8n.m5digital.net.br)- DB resetado via
user-management:reset, precisa definir nova senha - Login web está rejeitando qualquer senha (problema de auth auth—investigar separadamente)
- 3 webhooks legados ativos mas são apenas stubs sem lógica
- DB resetado via
-
Sessão WhatsApp
bussines-m5não foi escaneada- Acessar dashboard
https://wa.m5digital.net.br, escanear QR - Bloqueia testes WhatsApp → Twenty CRM
- Acessar dashboard
Importante
-
Workflows n8n precisam ser importados via UI
m5-openwa-to-twenty.json(WhatsApp → CRM)m5-twenty-to-openwa.json(CRM → WhatsApp)- README com passo-a-passo:
/root/ecommerce/workflows/README-FASE5-OPENWA-TWENTY.md
-
Registrar webhook OpenWA → n8n
- curl pronto no README, depende da sessão ativa
-
Webhook Twenty → n8n (configurar via Settings do Twenty)
-
Saleor sem produtos (zerado em 21/jun/2026)
- Pendência desde 22/jun (vide PONTO-DE-PARTIDA-22jun2026.md)
- Criar admin + catalogar produtos
-
Sessão WhatsApp
bussines-m5(repete #3, está aqui também)
Melhorias
- n8n warning
X-Forwarded-For—N8N_TRUST_PROXY=truejá está setado mas o warning persiste - Gitea está usando HTTP interno (porta 3000), precisa fix se quiser parar de usar Traefik
- Multi-tenant workspace Twenty — configurar quando finalizar setup inicial
- INEMA materials instalados mas parcialmente explorados (yt-pub rodando, viralads parado)
- Chave do gateway.digitalavello.shop (omniroute) — token OK mas config de sticky sessions precisa ser afinada
- Pipeline de vídeos (yt-pub-livesx) tem auth interna, documentar credenciais para a Iris
Descontinuado / descontinuável
- Hermes CRM — substituído por Twenty (containers parados, removidos; backups em
/root/backups/2026-07-06_pre-crm-reorg/) - 5 services Traefik (
crm-frontend,crm-backend, e routers associados) removidos - Rede
hermes_crm_networkórfã (só temm5_traefikconectado, pode ser removida se quiser limpar)
💡 AVALIAÇÃO HONESTA (skill-quality: questionar respostas medíocres)
O que está ótimo
- Traefik limpo e validado — IP fixos eliminados, todos os subdomínios respondem
- Logger M5 — implementação profissional (3 modos, rotação, contexto), reutilizável em todo o motor
- Documentação de Fase 5 — README detalhado pra você executar tudo no browser quando voltar
- Substituição Hermes → Twenty CRM — conservadora (backup completo + validação HTTP), sem perda de dados
- Repo no Gitea + token versionado — push feito, autoria sua
O que precisa melhorar
- Zero automação rodando de verdade — workflows são stubs ou JSON não-importados
- Falta E2E test — nenhum teste validou WhatsApp→CRM→WhatsApp ponta-a-ponta
- Investimento em "como fazer" ainda alto — cada fase precisa decisão sua (Twenty wizard, n8n wizard, escanear QR, importar workflows manualmente)
- Vault Obsidian não foi atualizado nesta sessão (fonte de verdade está dessincronizada)
- Integração com 6 marketplaces (Mercado Livre, Shopee, etc) tem skills prontas mas 0 código de integração feito
Riscos identificados
- Login n8n quebrado — o
user-management:resetrecriou o user mas a senha nunca pega. Pode ser cache de cookie/IP rate-limited (HTTP 429 visto). Solução temporária:n8n import:entities --truncateTablesno DB limpo + re-import dos JSON. Solução definitiva: investigar JWT secret vs encryptionKey - Omniroute sticky sessions — sessão pode estar compartilhada entre VPS e PC local (CLAUDE.md alerta: "SAME bot Telegram em VPS + PC local = CONFLITO"). Verificar se omniroute tem o mesmo problema
- Hermes CRM backups em /disk — arquivos pequenos (5KB DB, 42KB source) — pode ser CRM vazio mesmo. Verificar se vale manter 30d ou apagar logo
🛣️ PRÓXIMOS PASSOS SUGERIDOS (sem começar nada ainda)
Você disse "antes de prosseguir" — sugiro a Iris decidir entre:
Opção A — Continuar Fase 5 (integração WhatsApp ↔ Twenty)
- Você finaliza wizard Twenty + wizard n8n (browser)
- Eu importo os 2 workflows via n8n CLI (sem precisar de auth web)
- Crio sessão
bussines-m5(escaneando QR com você) - Teste end-to-end com 1 mensagem real
Opção B — Pular pra motor e-commerce
- Larga WhatsApp/Twenty pra depois
- Foca em catalogar produtos no Saleor (1 categoria → 100 SKUs de teste)
- Cria API token Saleor para uso programático
- Ativa 1 marketplace (provavelmente Mercado Livre, o de maior prioridade)
Opção C — Higienizar instância
- Apaga arquivos do Hermes CRM (já tem backup)
- Limpa
hermes_crm_networkórfã - Remove stubs do n8n
- Cria README operacional atualizado (esse doc)
- Commita tudo no Gitea
Eu sugiro A (continuar o que começamos), mas decisão é sua. Posso seguir A direto, ou aguardar seu OK.
📁 ARQUIVOS IMPORTANTES REVISITAR
| Caminho | Para que serve |
|---|---|
/root/ecommerce/HANDOFF-2026-07-06.md |
ESTE ARQUIVO |
/root/ecommerce/CLAUDE.md |
Visão geral do projeto (última atualização 22/jun) |
/root/ecommerce/PONTO-DE-PARTIDA-22jun2026.md |
Status detalhado do dia 22/jun |
/root/ecommerce/workflows/README-FASE5-OPENWA-TWENTY.md |
Passo-a-passo pra finalizar Fase 5 |
/root/ecommerce/scripts/traefik-conf/routes.yml |
Roteamento HTTP, 9 subdomínios |
/root/ecommerce/ecom-store/utils/m5log.py |
Logger M5 (303 linhas, núcleo do motor) |
/root/.claude/CLAUDE.md |
Skills Hermes auto-invocadas |
/root/inema_materiais/ |
Material INEMA (cursos, ads, vídeo) |
/root/backups/2026-07-06_pre-crm-reorg/MANIFEST.md |
Inventário com SHA-256 |