Adiciona ao repo os scripts e configs reais do motor que estavam fora do git,
e remove arquivos legados/abandonados.
Adicionados (30):
- scripts/docker-compose.m5.yml, openwa-compose.yml, minio-compose.yml
- scripts/openwa.env (sem secrets)
- scripts/{entrypoint,saleor-entrypoint,saleor-start}.sh
- scripts/{chatwoot-setup,compliance-check,health-check,resumo-diario}.sh
- scripts/{insert_workflow,telegram_user_login,telegram_user_monitor}.py
- scripts/requirements.txt
- scripts/traefik-conf/{traefik.yml,dynamic-config.yml}
- scripts/compliance/, scripts/calculators/, scripts/backups/
- scripts/{README.md,README-INSTALL.md,WHATSAPP-SETUP.md,.gitignore}
- .gitignore (atualizado)
Removidos (ja' em backup/untracked-lixo-2026-07-06/):
- agents/, crm/, hermes_skills_backup/, api-complive/, docs/ (legados)
- scripts/{wrapper.py,wrapper.sh}
- scripts/docker-compose.m5.yml.backup, traefik-conf/routes.yml.bak2
- scripts/saleor-media/RSA_*.{bak,old_*}
- scripts/n8n-workflows/webhook-saleor.json.bak2
- scripts/backups/20260622_0300/saleor_db.sql
- integracao_completa.sh, monitoramento_vps.sh
- ruvector.db (vazio)
Ignorados via .gitignore:
- vault/ (Obsidian KB)
- skills/ (duplicado de ~/.hermes/skills/)
- scripts/{saleor-media,traefik-acme,yt-pub-livesx,minio,n8n-workflows,skills}/
- scripts/backups/2026*_*/
221 lines
5.9 KiB
Markdown
221 lines
5.9 KiB
Markdown
# README-INSTALL.md — Stack M5 Brasil
|
|
**Motor Ecommerce M5 | Setup Autônomo com Docker Compose**
|
|
|
|
---
|
|
|
|
## Pré-requisitos
|
|
|
|
| Ferramenta | Versão mínima | Instalação |
|
|
|---|---|---|
|
|
| Docker Desktop | 4.x+ | https://docs.docker.com/desktop/install/windows-install/ |
|
|
| Git Bash / MSYS | (já incluso no Git) | https://git-scm.com/download/win |
|
|
| curl | (já incluso) | — |
|
|
|
|
Verifique a instalação:
|
|
```bash
|
|
docker --version # Docker version 2x.x+
|
|
docker compose version # Docker Compose version v2.x+
|
|
git --version
|
|
```
|
|
|
|
---
|
|
|
|
## Instalação — Passo a Passo
|
|
|
|
### 1. Clonar / Copiar o projeto
|
|
|
|
```bash
|
|
cd ~/Projects
|
|
git clone <seu-repo-m5> ecommerce-scripts
|
|
cd ecommerce-scripts
|
|
```
|
|
|
|
### 2. Configurar variáveis de ambiente
|
|
|
|
```bash
|
|
# Copiar o template
|
|
cp .env.example .env
|
|
|
|
# Editar com seus dados reais
|
|
nano .env # ou code .env, notepad, etc.
|
|
```
|
|
|
|
**Campos obrigatórios a preencher em `.env`:**
|
|
```
|
|
BASE_DOMAIN=seudominio.com.br
|
|
ACME_EMAIL=seu@email.com.br
|
|
POSTGRES_PASSWORD=<senha forte>
|
|
REDIS_PASSWORD=<senha forte>
|
|
SALEOR_SECRET_KEY=<chave aleatória>
|
|
N8N_PASSWORD=<senha>
|
|
STRIPE_API_KEY=<chave real>
|
|
EMAIL_URL=smtp://usuario:senha@smtp.seudominio.com.br:587
|
|
```
|
|
|
|
> Gere uma SECRET_KEY segura: `openssl rand -hex 32`
|
|
|
|
### 3. Configurar DNS para os subdomínios
|
|
|
|
No painel DNS do seu domínio (`seudominio.com.br`), crie os registros **A** ou **CNAME**:
|
|
|
|
| Subdomínio | Tipo | Valor |
|
|
|---|---|---|
|
|
| `vendas` | A | IP do servidor |
|
|
| `n8n` | A | IP do servidor |
|
|
| `git` | A | IP do servidor |
|
|
| `wa` | A | IP do servidor |
|
|
|
|
Se usar Cloudflare, configure o proxy accordingly.
|
|
|
|
### 4. Iniciar a stack
|
|
|
|
```bash
|
|
# Tornar scripts executáveis (Linux/WSL/Git Bash)
|
|
chmod +x SCRIPTS/*.sh
|
|
|
|
# Iniciar todos os serviços
|
|
./SCRIPTS/start-m5.sh
|
|
```
|
|
|
|
O script faz:
|
|
1. Pull das imagens Docker
|
|
2. `docker compose up -d`
|
|
3. Healthcheck de cada serviço (aguarda até 90s por serviço)
|
|
4. Exibe URLs de acesso
|
|
|
|
### 5. Setup pós-instalação
|
|
|
|
#### Saleor — primeiro acesso
|
|
```bash
|
|
# Criar superusuário (executar após Saleor estar pronto)
|
|
docker exec -it m5_saleor python manage.py createsuperuser
|
|
```
|
|
|
|
1. Acesse `https://vendas.seudominio.com.br/dashboard`
|
|
2. Configure canal de vendas (Mercado Brasil)
|
|
3. Cadastre meio de pagamento (Stripe / Mercado Pago)
|
|
|
|
#### n8n — primeiro acesso
|
|
1. Acesse `https://n8n.seudominio.com.br`
|
|
2. Login com `N8N_USER` / `N8N_PASSWORD` do `.env`
|
|
3. Importe workflows de `./n8n-workflows/` (se existirem)
|
|
|
|
#### Gitea — primeiro acesso
|
|
1. Acesse `https://git.seudominio.com.br`
|
|
2. Complete o wizard de instalação (banco já configurado via env)
|
|
3. Crie usuário admin
|
|
|
|
#### OpenWA — primeira sessão
|
|
1. Acesse `http://localhost:8081` (dashboard local)
|
|
2. Escaneie QR Code com WhatsApp desejado
|
|
3. Configure webhook para `http://n8n:5678/webhook/wa`
|
|
|
|
### 6. Cron — backup automático
|
|
|
|
```bash
|
|
# Editar crontab
|
|
crontab -e
|
|
|
|
# Adicionar linha (backup diário às 3h da manhã):
|
|
0 3 * * * /c/Users/Iris/Projects/ecommerce-scripts/SCRIPTS/backup-vault.sh >> ~/backups/vault/cron.log 2>&1
|
|
```
|
|
|
|
---
|
|
|
|
## Serviços — Visão Geral
|
|
|
|
| Serviço | Imagem | Porta local | URL |
|
|
|---|---|---|---|
|
|
| Postgres | postgres:16-alpine | 5432 | (interno) |
|
|
| Redis | redis:7-alpine | 6379 | (interno) |
|
|
| Saleor (API) | ghcr.io/saleor-commerce/saleor | 8000 | `vendas.*` |
|
|
| Saleor Dashboard | ghcr.io/saleor-commerce/saleor-dashboard | 80 | `vendas.*/dashboard` |
|
|
| n8n | n8nio/n8n | 5678 | `n8n.*` |
|
|
| OpenWA | openwa/wa-automate | 8080/8081 | `wa.*` |
|
|
| Gitea | gitea/gitea | 3000 | `git.*` |
|
|
| Traefik | traefik:v3.1 | 80/443/8090 | — |
|
|
|
|
---
|
|
|
|
## Operações do Dia a Dia
|
|
|
|
```bash
|
|
# Ver status
|
|
./SCRIPTS/status-m5.sh
|
|
|
|
# Ver logs de um serviço específico
|
|
docker compose -f docker-compose.m5.yml logs -f saleor
|
|
docker compose -f docker-compose.m5.yml logs -f n8n
|
|
|
|
# Parar stack (preserva dados)
|
|
./SCRIPTS/stop-m5.sh
|
|
|
|
# Reiniciar apenas um serviço
|
|
docker compose -f docker-compose.m5.yml restart saleor
|
|
|
|
# Rebuild de um serviço (após atualização)
|
|
docker compose -f docker-compose.m5.yml up -d --force-recreate saleor
|
|
|
|
# Limpar tudo (PERDE DADOS)
|
|
./SCRIPTS/stop-m5.sh --volumes
|
|
```
|
|
|
|
---
|
|
|
|
## Integrações
|
|
|
|
### Mercado Livre → Saleor (via n8n)
|
|
- Workflow n8n: `webhook → ML Order Created → criar pedido no Saleor`
|
|
- Autenticação: OAuth App do Mercado Livre
|
|
- Webhook ML: apontar para `https://n8n.seudominio.com.br/webhook/ml-pedido`
|
|
|
|
### WhatsApp → n8n → Saleor
|
|
- OpenWA conecta via API REST na porta 8080
|
|
- n8n recebe webhooks do OpenWA
|
|
- Workflow: `msg recebida → verificar produto → enviar catálogo → criar pedido`
|
|
|
|
### Stripe (pagamentos)
|
|
- Webhook: `https://seudominio.com.br/webhook/stripe`
|
|
- Saleor processa pagamentos via plugin Stripe oficial
|
|
|
|
---
|
|
|
|
## Segurança
|
|
|
|
- **Nunca comite `.env`** — já está em `.gitignore`
|
|
- **Renove senhas periodicamente** (sempre rebuild após mudança de `.env`)
|
|
- **Firewall**: exponha apenas 80, 443 e 8090 (Traefik dashboard)
|
|
- **OpenWA**: se possível, limite acesso ao IP do servidor para a API local
|
|
- **Traefik Dashboard**: proteja com Basic Auth ou IP whitelist
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
| Problema | Solução |
|
|
|---|---|
|
|
| `postgres permission denied` | `docker compose down -v` (apaga volumes) e `start-m5.sh` novamente |
|
|
| SSL não funciona | Verificar registros DNS e se porta 443 está aberta |
|
|
| n8n não conecta no Saleor | `SALEOR_API_URL` deve ser `http://saleor:8000/graphql/` (interno) |
|
|
| OpenWA QR Code não aparece | `docker logs m5_openwa` para ver erros de sessão |
|
|
| Traefik sem certificados | `docker logs m5_traefik` — verificar email ACME |
|
|
| Saleor 502 | Aguardar ~2min após start; checar `docker logs m5_saleor` |
|
|
|
|
---
|
|
|
|
## Atualização de Serviços
|
|
|
|
```bash
|
|
# Atualizar imagem e rebuildar
|
|
docker compose -f docker-compose.m5.yml pull saleor
|
|
docker compose -f docker-compose.m5.yml up -d --force-recreate saleor
|
|
|
|
# Atualizar todos de uma vez
|
|
docker compose -f docker-compose.m5.yml pull
|
|
docker compose -f docker-compose.m5.yml up -d
|
|
```
|
|
|
|
---
|
|
|
|
*Criado para o Motor Ecommerce M5 Brasil — Iris Florencio — 2026*
|