Sistema completo para coletar dados de produtos de links de afiliados (Mercado Livre, Magalu, Shopee) e publicar automaticamente no Instagram, Pinterest e WhatsApp via n8n.
┌─────────────────┐ ┌──────────────────┐
│ Dashboard │ ───> │ Backend API │
│ (Next.js) │ │ (NestJS) │
└─────────────────┘ └──────────────────┘
│
┌─────────────┼─────────────┐
│ │ │
v v v
┌──────────┐ ┌──────────┐ ┌──────────┐
│PostgreSQL│ │ Redis │ │ n8n │
└──────────┘ └──────────┘ └──────────┘
│
v
┌─────────────────┐
│ Scraper Worker │
│ (Python) │
└─────────────────┘
- Backend: NestJS + Prisma + PostgreSQL
- Filas: BullMQ + Redis
- Scraper: Python + Playwright
- Automação: n8n
- Dashboard: Next.js 14 + Tailwind CSS + shadcn/ui
- Infraestrutura: Docker + Docker Compose
- Node.js 20+
- Python 3.11+
- Docker e Docker Compose
- Git
git clone <repo-url>
cd auto-postcp .env.example .envEdite o arquivo .env conforme necessário.
docker-compose up -dIsso iniciará:
- PostgreSQL (porta 5432)
- Redis (porta 6379)
- n8n (porta 5678)
- Backend API (porta 8080)
- Scraper Worker
- Dashboard (porta 3000)
cd backend
npm install
npx prisma migrate dev- Dashboard: http://localhost:3000
- Backend API: http://localhost:8080
- n8n: http://localhost:5678 (admin/admin123)
cd backend
npm install
npx prisma generate
npx prisma migrate dev
npm run start:devcd scraper
pip install -r requirements.txt
playwright install chromium
python src/worker.pycd dashboard
npm install
npm run devCertifique-se de ter PostgreSQL e Redis rodando localmente:
# PostgreSQL
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=autopost_dev_pass -e POSTGRES_USER=autopost -e POSTGRES_DB=affiliates postgres:16-alpine
# Redis
docker run -d -p 6379:6379 redis:7-alpine
# n8n
docker run -d -p 5678:5678 -e N8N_BASIC_AUTH_ACTIVE=true -e N8N_BASIC_AUTH_USER=admin -e N8N_BASIC_AUTH_PASSWORD=admin123 n8nio/n8n- Acesse http://localhost:5678
- Login:
admin/admin123 - Vá em "Workflows" > "Add workflow"
- Clique no menu (⋮) > "Import from file"
- Selecione
n8n/workflows/post-produto.json
Veja instruções detalhadas em n8n/README.md
- Acesse o dashboard em http://localhost:3000
- Vá para "Links"
- Cole o link de afiliado (Mercado Livre, Magalu ou Shopee)
- Clique em "Adicionar Link"
- O sistema automaticamente:
- Detecta o marketplace
- Enfileira job de scraping
- Coleta dados do produto
- Salva no banco de dados
- Vá para "Produtos"
- Veja todos os produtos coletados
- Use a busca para filtrar
- Clique em um produto para ver detalhes e histórico
- Selecione um produto
- Configure os canais (Instagram, Pinterest, WhatsApp)
- Clique em "Criar Post"
- O sistema:
- Dispara workflow no n8n
- Gera legenda automaticamente
- Publica nos canais selecionados
- Retorna status via webhook
- Vá para "Posts"
- Veja status de todos os posts
- Filtre por status
- Clique em um post para ver timeline de eventos
POST /links- Criar link de afiliadoGET /links- Listar linksGET /links/:id- Ver detalhesPOST /links/:id/scrape- Forçar scraping
GET /products- Listar produtosGET /products/:id- Ver detalhes
POST /posts- Criar job de postagemGET /posts- Listar postsGET /posts/:id- Ver detalhesGET /posts/:id/events- Ver timeline
POST /webhooks/n8n/status- Callback do n8n
auto-post/
├── backend/ # API NestJS
│ ├── src/
│ │ ├── links/ # Módulo de links
│ │ ├── products/ # Módulo de produtos
│ │ ├── posts/ # Módulo de posts
│ │ ├── webhooks/ # Webhooks do n8n
│ │ └── queues/ # BullMQ
│ └── prisma/ # Schema e migrations
├── scraper/ # Worker Python
│ └── src/
│ ├── scrapers/ # Scrapers por marketplace
│ └── worker.py # Worker principal
├── dashboard/ # Frontend Next.js
│ └── src/
│ ├── app/ # Páginas (App Router)
│ └── components/
├── n8n/ # Workflows n8n
└── docker/ # Dockerfiles
-
Verifique se o Playwright está instalado:
cd scraper playwright install chromium -
Veja logs do scraper:
docker-compose logs -f scraper
- Verifique se o workflow está ativo
- Confira as variáveis de ambiente
N8N_BASE_URLeN8N_WEBHOOK_PATH - Teste manualmente:
curl -X POST http://localhost:5678/webhook/post-produto \ -H "Content-Type: application/json" \ -d '{"test": true}'
- Recrie as migrations:
cd backend npx prisma migrate reset
- Implementar scrapers para Magalu e Shopee
- Adicionar geração de imagens com preço/selo
- Scheduler automático por horário
- Analytics e relatórios
- Templates de legenda customizáveis
- Encurtador de URLs integrado
- Fork o projeto
- Crie uma branch para sua feature (
git checkout -b feature/MinhaFeature) - Commit suas mudanças (
git commit -m 'Adiciona MinhaFeature') - Push para a branch (
git push origin feature/MinhaFeature) - Abra um Pull Request
MIT
Para questões e suporte, abra uma issue no GitHub.