ecom-store/scripts/README-INSTALL.md
Iris Florencio 9c2f7ff7b4 chore: triagem de arquivos untracked (60+ → 0)
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*_*/
2026-07-06 18:50:26 -03:00

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*