- workflows/n8n-current/: remover 3 stubs (chatwoot/saleor/twenty) movidos para backup local (workflows-stubs-2026-07-06/) - .gitignore: incluir .gitea_token (segredo) e *.bak (backups antigos) - CLAUDE.md: atualizado para 06/jul/2026 (substituicao Hermes→Twenty, 20 containers ativos, 9 subdomínios validados, pendências críticas) Higienizacao previa nesta sessao (commit a parte nao aplicavel): - 14 volumes Docker orfaos removidos (~2.4GB) - 14 imagens Docker sem uso removidas (~5GB) - 2 networks orfas removidas - Traefik limpo (IPs hardcoded → service names) - Hermes CRM backups compactados (271KB → 84KB) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
282 lines
10 KiB
Markdown
282 lines
10 KiB
Markdown
# CLAUDE.md — Motor E-commerce Multi-Canal Brasil
|
|
**Dono:** Iris Florencio | irisflorencio@yahoo.com.br
|
|
**Atualizado:** 06/jul/2026
|
|
**VPS:** 31.220.78.126 (Ubuntu 24.04, 193GB disco, 11GB RAM)
|
|
**Gateway:** Hermes + Telegram bot @OB1s
|
|
|
|
---
|
|
|
|
## Projeto
|
|
|
|
Motor e-commerce multi-canal para o mercado brasileiro.
|
|
Objetivo: operar Amazon, Mercado Livre, Shopee, Magazine Luiza, TikTok Shop e Site Próprio
|
|
a partir de um motor centralizado (Saleor + PostgreSQL + Redis + n8n + WhatsApp).
|
|
|
|
---
|
|
|
|
## Status Atual (06/jul/2026 — pós-higienização)
|
|
|
|
| Sistema | Status | URL | Container |
|
|
|---------|--------|-----|-----------|
|
|
| Traefik | ✅ | http://31.220.78.126:8090 | m5_traefik |
|
|
| Saleor | ✅ | loja.m5digital.net.br | m5_saleor |
|
|
| Saleor Dashboard | ✅ | dashboard.m5digital.net.br | m5_saleor_dashboard |
|
|
| PostgreSQL | ✅ | - | m5_postgres |
|
|
| Redis | ✅ | - | m5_redis |
|
|
| Gitea | ✅ | git.m5digital.net.br | m5_gitea |
|
|
| n8n | ⚠️ PARCIAL | n8n.m5digital.net.br | m5_n8n (login quebrado) |
|
|
| OpenWA | ✅ | wa.m5digital.net.br | m5_openwa |
|
|
| Chatwoot | ✅ | chat.m5digital.net.br | chatwoot-chatwoot-1 |
|
|
| Twenty CRM | ✅ | crm.m5digital.net.br | twenty_front (substituiu Hermes CRM) |
|
|
| Portainer | ✅ | http://31.220.78.126:9443 | portainer |
|
|
| yt-pub-livesx | ✅ | video.m5digital.net.br | yt-pub-livesx-dashboard-1 |
|
|
| Omniroute | ✅ | gateway.digitalavello.shop | omniroute |
|
|
|
|
**20 containers ativos** · **9 subdomínios HTTPS validados** · **0 produtos Saleor**
|
|
|
|
---
|
|
|
|
## Estrutura de Diretórios
|
|
|
|
```
|
|
/root/ecommerce/ # RAIZ na VPS
|
|
├── HANDOFF-2026-07-06.md # Estado completo + plano
|
|
├── CLAUDE.md # ESTE ARQUIVO
|
|
├── vault/ # Obsidian KB — fonte de verdade
|
|
│ ├── checkpoint-2026-06-22.md
|
|
│ └── ecommerce-kb/
|
|
│ ├── HOME.md
|
|
│ ├── DASHBOARD.md
|
|
│ ├── SYSTEMS-STATUS.md # Status atual (atualizado 06/jul)
|
|
│ ├── HIGIENIZACAO-06jul2026.md # Log da limpeza desta sessão
|
|
│ ├── N8N-WORKFLOWS.md
|
|
│ ├── TWENTY-CRM-SETUP.md
|
|
│ ├── CHATWOOT-SETUP.md
|
|
│ ├── INTEGRATIONS.md
|
|
│ └── ...
|
|
├── scripts/ # Scripts + Docker
|
|
│ ├── docker-compose.m5.yml # Stack completa M5
|
|
│ ├── openwa-compose.yml # WhatsApp (OpenWA v0.5.0)
|
|
│ ├── traefik-conf/
|
|
│ │ ├── traefik.yml
|
|
│ │ ├── routes.yml # 9 subdomínios HTTPS
|
|
│ │ └── dynamic-config.yml
|
|
│ ├── backups/
|
|
│ ├── calculators/
|
|
│ ├── compliance/
|
|
│ └── skills/
|
|
├── skills/ # Skills Hermes (18 marketplaces)
|
|
├── ecom-store/ # Repo de código (git + Gitea)
|
|
│ ├── utils/
|
|
│ │ ├── m5log.py # Logger M5 (3 modos: text/json/json_clean)
|
|
│ │ └── example_usage.py
|
|
│ ├── README.md
|
|
│ └── .gitignore # inclui .gitea_token
|
|
├── workflows/ # n8n workflows
|
|
│ ├── m5-openwa-to-twenty.json # WhatsApp → CRM (importar via UI)
|
|
│ ├── m5-twenty-to-openwa.json # CRM → WhatsApp
|
|
│ ├── chatwoot-integration.json
|
|
│ ├── README-FASE5-OPENWA-TWENTY.md
|
|
│ └── n8n-current/ # (vazio, stubs movidos para backup)
|
|
├── backup/ # Snapshots do vault + workflows stubs
|
|
├── logs/ # Logs m5log (JSON clean rotacionado)
|
|
└── .gitea_token # Git token (chmod 600, gitignored)
|
|
```
|
|
|
|
---
|
|
|
|
## Mudanças Recentes (06/jul/2026)
|
|
|
|
### Substituições
|
|
- **Hermes CRM → Twenty CRM** — backup em `/root/backups/2026-07-06_pre-crm-reorg/`
|
|
- Container `twenty_front` na porta 3000, atrás de `crm-https` no Traefik
|
|
|
|
### Higienização (~7.4GB liberados)
|
|
- 14 volumes Docker órfãos removidos
|
|
- 2 networks órfãs removidas
|
|
- 14 imagens Docker sem uso removidas
|
|
- Traefik limpo (IPs hardcoded → service names)
|
|
- 3 workflows n8n stubs movidos para backup local
|
|
|
|
### Validação
|
|
- 9/9 subdomínios HTTP 200
|
|
- Traefik dashboard UP
|
|
- OpenWA `marcos-pessoal` sessão READY
|
|
- Gitea repo `ecom-store` pushado (2 commits)
|
|
|
|
---
|
|
|
|
## Pendências Críticas (06/jul/2026)
|
|
|
|
1. **n8n login quebrado** — wizard de senha não aceita (auth layer além do DB resetado)
|
|
2. **Sessão WhatsApp `bussines-m5`** — QR não escaneado
|
|
3. **Saleor sem produtos** — zerado em 21/jun, aguardando catalogação
|
|
4. **Workflows reais do n8n** — JSON pronto mas precisa importar via UI (depende #1)
|
|
5. **Webhook OpenWA → n8n** — depende sessão ativa
|
|
|
|
---
|
|
|
|
## Stack de Integração
|
|
|
|
| Camada | Componente |
|
|
|--------|------------|
|
|
| Motor e-commerce | Saleor 3.23 + PostgreSQL 16 + Redis 7 |
|
|
| Orquestração | n8n 2.27.4 (workflows em `/root/ecommerce/workflows/`) |
|
|
| Proxy | Traefik 3.0 + Let's Encrypt (dedyn.io) |
|
|
| WhatsApp | OpenWA v0.5.0 (ghcr.io/rmyndharis/openwa) |
|
|
| CRM | Twenty CRM 1.x (twentycrm/twenty) |
|
|
| Suporte | Chatwoot 3.3.0 |
|
|
| Código | Gitea 1.22.6 |
|
|
| LLMs | custom:aibee (aibee.cloud) + Ollama qwen3.6/deepseek-v4 |
|
|
| GPU | NVIDIA APIs (build.nvidia.com) — Nemotron, Kimi |
|
|
|
|
---
|
|
|
|
## URLs dos Serviços
|
|
|
|
| Serviço | URL |
|
|
|---------|-----|
|
|
| Traefik Dashboard | http://31.220.78.126:8090 |
|
|
| Saleor API | https://loja.m5digital.net.br/graphql/ |
|
|
| Saleor Dashboard | https://dashboard.m5digital.net.br |
|
|
| Gitea | https://git.m5digital.net.br |
|
|
| n8n | https://n8n.m5digital.net.br |
|
|
| OpenWA Dashboard | https://wa.m5digital.net.br |
|
|
| OpenWA API | https://wa.m5digital.net.br/api |
|
|
| Chatwoot | https://chat.m5digital.net.br |
|
|
| Twenty CRM | https://crm.m5digital.net.br |
|
|
| yt-pub-livesx | https://video.m5digital.net.br |
|
|
| Omniroute | https://gateway.digitalavello.shop |
|
|
| Portainer | http://31.220.78.126:9443 |
|
|
|
|
---
|
|
|
|
## OpenWA — WhatsApp Business
|
|
|
|
- **Software:** rmyndharis/OpenWA v0.5.0 (MIT, NestJS + whatsapp-web.js + React)
|
|
- **Container:** `m5_openwa`
|
|
- **Porta interna:** 2785
|
|
- **Dashboard:** https://wa.m5digital.net.br
|
|
- **API:** https://wa.m5digital.net.br/api
|
|
- **API Key (regenerada 29/jun/2026):** `owa_k1_1e56b98c39a2daa5bdb537d04f35da17117021bedc8c1de80eaba2926c584b39`
|
|
- **Persistência:** bind mount `/root/ecommerce/scripts/openwa-sessions/` → `/app/data/`
|
|
- **Sessões:**
|
|
- `marcos-pessoal` — **READY** ✓
|
|
- `bussines-m5` — **PENDENTE** (escanear QR no dashboard)
|
|
|
|
---
|
|
|
|
## Twenty CRM — Cliente/CRM
|
|
|
|
- **Software:** Twenty CRM 1.x (MIT)
|
|
- **Container:** `twenty_front` (NestJS frontend)
|
|
- **Backend:** `twenty_postgres` (5434) + `twenty_redis`
|
|
- **URL:** https://crm.m5digital.net.br
|
|
- **Traefik route:** `crm-https` → `twenty_front:3000`
|
|
- **Setup:** wizard via browser (em andamento pela Iris)
|
|
- **Integração n8n:** workflows em `/root/ecommerce/workflows/m5-*-twenty.json`
|
|
|
|
---
|
|
|
|
## Chatwoot — Suporte
|
|
|
|
- **Software:** Chatwoot v3.3.0 (Ruby on Rails)
|
|
- **Container:** `chatwoot-chatwoot-1`
|
|
- **Admin:** Marcos Moreira (admin@m5online.com.br)
|
|
- **Account ID:** 1 (M5 Digital)
|
|
- **API Token:** `AwnRiNkenTfzmipP8sM4dewQ`
|
|
- **API Base:** https://chat.m5digital.net.br/api/v1
|
|
- **Rede Docker:** `scripts_m5_network`
|
|
|
|
---
|
|
|
|
## Gitea — Código
|
|
|
|
- **Software:** Gitea 1.22.6
|
|
- **Container:** `m5_gitea`
|
|
- **URL:** https://git.m5digital.net.br
|
|
- **Repo principal:** `m5digital/ecom-store` (push feito 06/jul, 2 commits)
|
|
- **Token de acesso:** `/root/ecommerce/.gitea_token` (chmod 600, fora do git)
|
|
- **SSH:** porta 2222
|
|
|
|
---
|
|
|
|
## Configurações de Credenciais
|
|
|
|
### .env da VPS
|
|
- **File:** `/root/ecommerce/scripts/.env`
|
|
- **Contém:** credenciais PostgreSQL, Redis, Saleor, Gitea, n8n, OpenWA API keys
|
|
|
|
### .env Hermes
|
|
- **File:** `/root/.hermes/.env`
|
|
- **Contém:** `ANTHROPIC_BASE_URL=https://gateway.digitalavello.shop`
|
|
|
|
### Claude Code na VPS
|
|
- **Wrapper:** `/usr/local/bin/cc`
|
|
- **Key file:** `/root/.claude_keys/key` (mode 600)
|
|
- **Modelo:** claude-sonnet-4-6 via digitalavello.shop
|
|
|
|
---
|
|
|
|
## Cron Jobs Ativos
|
|
|
|
| Job | Schedule | Status |
|
|
|-----|----------|--------|
|
|
| M5 — Resumo Diário 08:00 | `0 8 * * *` | ok |
|
|
| M5 — Check Docker Health | `0 */2 * * *` | ok |
|
|
| M5 — Compliance Check 14:00 | `0 14 * * *` | ok |
|
|
| M5 — Backup Vault 02:00 | `0 2 * * *` | pausado |
|
|
|
|
---
|
|
|
|
## Canais de Venda (prioridade)
|
|
|
|
| # | Canal | Status | Tipo |
|
|
|---|-------|--------|------|
|
|
| 1 | Mercado Livre | SKILL pronta | Marketplace |
|
|
| 2 | Shopee | SKILL pronta | Marketplace |
|
|
| 3 | Amazon | SKILL pronta | Marketplace (FBA) |
|
|
| 4 | Magazine Luiza | SKILL pronta | Marketplace |
|
|
| 5 | TikTok Shop | SKILL pronta | Marketplace + Live Commerce |
|
|
| 6 | Site Próprio | SKILL pronta | B2C / B2B |
|
|
|
|
---
|
|
|
|
## Recursos INEMA Disponíveis
|
|
|
|
Tudo em `/root/inema_materiais/`:
|
|
- `viralads/` — curso UGC, ViralAds
|
|
- `yt-pub-livesx/` — pipeline vídeo automatizado (Docker)
|
|
- `ads-skill.zip` (ja instalado em `~/.hermes/skills/ads-skill/`)
|
|
- `ClaudeOS-Hermes-V2.3.zip` — dashboard operacional (88MB)
|
|
|
|
---
|
|
|
|
## Regras de Operação
|
|
|
|
1. **NUNCA criar arquivos em root** — usar `/root/ecommerce/`
|
|
2. **Secrets** vão em `.env` — nunca comitar
|
|
3. **Vault Obsidian** (`/root/ecommerce/vault/`) é fonte de verdade
|
|
4. **Skills** em `/root/ecommerce/skills/` e `~/.hermes/skills/ecommerce/`
|
|
5. **Rede Docker:** `scripts_m5_network` — todos os containers nela
|
|
6. **Porta OpenWA:** 2785 (NÃO 8002 — legado)
|
|
7. **Aprovar item a item** antes de executar ações autônomas
|
|
8. **Apresentar plano** antes de agir
|
|
9. **Trabalho completo** — não só planos
|
|
10. **Autoverificar código** antes de entregar (skill-auto-verify)
|
|
11. **Questionar respostas medíocres** — nunca aceitar "ok"
|
|
12. **Manter contexto pequeno** — compactar se > 60%
|
|
|
|
---
|
|
|
|
## Referências Rápidas
|
|
|
|
- `/root/ecommerce/HANDOFF-2026-07-06.md` — handoff completo da operação
|
|
- `/root/ecommerce/vault/ecommerce-kb/SYSTEMS-STATUS.md` — status atual dos sistemas
|
|
- `/root/ecommerce/vault/ecommerce-kb/HIGIENIZACAO-06jul2026.md` — log da limpeza
|
|
- `/root/ecommerce/workflows/README-FASE5-OPENWA-TWENTY.md` — passo-a-passo Fase 5
|
|
- `/root/ecommerce/scripts/traefik-conf/routes.yml` — roteamento HTTP
|
|
- `/root/ecommerce/ecom-store/utils/m5log.py` — Logger M5 (303 linhas)
|
|
- `/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 pré-CRM |