# 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 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= REDIS_PASSWORD= SALEOR_SECRET_KEY= N8N_PASSWORD= STRIPE_API_KEY= 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*