Sistema profissional para campanhas de WhatsApp em massa com inteligência artificial integrada
🎯 Recursos • 🛠️ Instalação • 📚 Documentação • 🤝 Contribuição
O Astra Campaign é uma plataforma completa e open-source para gerenciamento e execução de campanhas de WhatsApp em massa. Desenvolvido com tecnologias modernas, oferece recursos avançados como inteligência artificial para geração de mensagens personalizadas, multi-sessão com failover automático e interface intuitiva para gerenciamento de contatos e campanhas.
🔥 Open Source: Este projeto é totalmente gratuito e sem ligação alguma com o WhatsApp oficial. Utiliza a API WAHA para integração.
- 🤖 IA Integrada: OpenAI e Groq para mensagens personalizadas
- 🔄 Multi-Sessão com Failover: Distribuição inteligente de envios
- 📊 Analytics Completo: Relatórios detalhados com exportação CSV
- 🎨 Interface Moderna: React com Tailwind CSS responsivo
- 🐳 Deploy Simplificado: Docker Swarm com Traefik
- ✅ CRUD completo de contatos
- ✅ Importação em massa via CSV
- ✅ Sistema de categorização com tags
- ✅ Validação de números telefônicos (formato E.164)
- ✅ Busca avançada e filtros inteligentes
- ✅ Paginação otimizada
- ✅ Múltiplas sessões simultâneas
- ✅ QR Code automático com expiração
- ✅ Status em tempo real das conexões
- ✅ Gerenciamento simplificado de sessões
- ✅ Reconnect automático em falhas
- ✅ Tipos de Mensagem: Texto, Imagem, Vídeo, Áudio, Documentos
- ✅ Sequências Complexas: Múltiplas mensagens em ordem
- ✅ IA Generativa: OpenAI e Groq para personalização
- ✅ Variáveis Dinâmicas:
{{nome}},{{telefone}},{{email}},{{categoria}},{{observacoes}} - ✅ Multi-Sessão: Distribuição automática entre conexões
- ✅ Agendamento: Execução imediata ou programada
- ✅ Controles: Pausar, retomar, cancelar campanhas
- ✅ Rate Limiting: Delays configuráveis para evitar bloqueios
- ✅ Dashboard em tempo real
- ✅ Estatísticas detalhadas (enviadas, falharam, pendentes)
- ✅ Distribuição por sessão WhatsApp
- ✅ Análise de erros categorizada
- ✅ Exportação completa em CSV
- ✅ Timeline de execução
- ✅ Autenticação JWT segura
- ✅ Controle de acesso por roles
- ✅ Gerenciamento de usuários admin
- ✅ Hash bcrypt para senhas
- ✅ Integração WAHA configurável
- ✅ Personalização visual (logo, favicon, títulos)
- ✅ Chaves de API para IA (OpenAI/Groq)
- ✅ Configuração via interface web
- React 18 - Framework JavaScript moderno
- TypeScript - Tipagem estática para JavaScript
- Vite - Build tool ultra-rápida
- Tailwind CSS - Framework CSS utilitário
- React Hook Form + Zod - Validação de formulários
- React Hot Toast - Notificações elegantes
- React Router Dom - Roteamento SPA
- Node.js 20 - Runtime JavaScript
- Express - Framework web minimalista
- TypeScript - Tipagem estática
- Prisma ORM - Object-Relational Mapping
- bcryptjs - Hash de senhas
- jsonwebtoken - Autenticação JWT
- express-validator - Validação de dados
- libphonenumber-js - Normalização de telefones
- PostgreSQL 16 - Banco de dados relacional
- Prisma - ORM com type-safety
- Docker & Docker Swarm - Containerização e orquestração
- Traefik v2 - Proxy reverso e SSL automático
- Nginx - Servidor web para frontend
- Docker Hub - Imagens oficiais pré-construídas
- WAHA API - Interface WhatsApp Web
- OpenAI API - GPT para geração de conteúdo
- Groq API - IA ultra-rápida
- Docker 20.10+
- Docker Compose/Swarm
- Traefik configurado (para produção)
- Instância WAHA rodando
- Clone o repositório
git clone https://github.com/AstraOnlineWeb/astracampaign.git
cd astracampaign- Baixe as imagens oficiais
# Imagens pré-construídas no Docker Hub
docker pull astraonline/astracampaignbackend:latest
docker pull astraonline/astracampaignfrontend:latest- Configure as variáveis de ambiente
# Edite o docker-stack.yml com suas configurações
nano docker-stack.yml- Deploy no Docker Swarm
# Para produção
docker stack deploy -c docker-stack.yml astra-campaign
# Para desenvolvimento local
docker-compose up -d- Backend
cd backend
npm install
npm run migrate:prod # Rodar migrações e seed
npm run dev # Servidor de desenvolvimento- Frontend
cd frontend
npm install
npm run dev # Servidor de desenvolvimento (porta 3000)- Acesse o sistema:
http://localhost:3000 - Login padrão:
admin@astra.com.br/Admin123! - Configure WAHA: Vá em Configurações e adicione host/API key
- Crie uma sessão WhatsApp: Na página de Conexões
- Importe contatos: Via CSV ou manualmente
- Crie sua primeira campanha: Na página de Campanhas
POST /api/auth/login- Login do usuárioPOST /api/auth/logout- Logout do usuário
GET /api/contatos- Listar contatos (com paginação/busca)POST /api/contatos- Criar contatoPUT /api/contatos/:id- Atualizar contatoDELETE /api/contatos/:id- Excluir contatoPOST /api/contatos/import- Importar CSV
GET /api/campaigns- Listar campanhasPOST /api/campaigns- Criar campanhaPATCH /api/campaigns/:id/toggle- Pausar/RetomarDELETE /api/campaigns/:id- Excluir campanhaGET /api/campaigns/:id/report- Relatório detalhado
GET /api/waha/sessions- Listar sessõesPOST /api/waha/sessions- Criar sessãoDELETE /api/waha/sessions/:name- Remover sessãoPOST /api/waha/sessions/:name/restart- Reiniciar
// Contato
interface Contact {
id: string;
nome: string;
telefone: string; // E.164 format
email?: string;
tags: string[];
observacoes?: string;
}
// Campanha
interface Campaign {
id: string;
nome: string;
targetTags: string[];
sessionNames: string[];
messageType: 'text' | 'image' | 'video' | 'audio' | 'document' | 'sequence';
messageContent: MessageContent;
randomDelay: number;
status: 'PENDING' | 'RUNNING' | 'COMPLETED' | 'PAUSED' | 'FAILED';
}# Backend (.env)
DATABASE_URL=postgresql://user:pass@host:5432/db
JWT_SECRET=sua-chave-secreta-muito-segura
JWT_EXPIRES_IN=24h
DEFAULT_WAHA_HOST=http://waha:3000
DEFAULT_WAHA_API_KEY=sua-api-key# Traefik Labels para Produção
labels:
- traefik.enable=true
- traefik.http.routers.app.rule=Host(`seu-dominio.com`)
- traefik.http.routers.app.tls.certresolver=letsencryptnome,telefone,email,tags,observacoes
João Silva,+5511999999999,joao@email.com,cliente;vip,Cliente preferencial
Maria Santos,+5511888888888,maria@email.com,prospect,Interessada em produto X# Usar imagens oficiais do Docker Hub
docker pull astraonline/astracampaignbackend:latest
docker pull astraonline/astracampaignfrontend:latest
# Ou fazer build personalizado (opcional)
cd backend
docker build -t astraonline/astracampaignbackend:latest .
cd ../frontend
docker build -t astraonline/astracampaignfrontend:latest .# Status dos serviços
docker service ls
# Logs em tempo real
docker service logs -f astra-campaign_backend
docker service logs -f astra-campaign_frontend
# Restart de serviços
docker service update --force astra-campaign_backendContribuições são muito bem-vindas! Este é um projeto open-source mantido pela comunidade.
- Fork o repositório
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -m 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Abra um Pull Request
- Use o sistema de Issues
- Descreva o problema detalhadamente
- Inclua logs relevantes
- Especifique ambiente (OS, Docker version, etc.)
- Abra uma Issue com o label
enhancement - Descreva a funcionalidade desejada
- Explique o caso de uso
Este projeto está licenciado sob a GNU Affero General Public License v3.0 (AGPLv3) - veja o arquivo LICENSE para detalhes.
- ✅ Uso comercial permitido
- ✅ Modificação permitida
- ✅ Distribuição permitida
- ✅ Uso privado permitido
- ✅ Uso em rede/web permitido
⚠️ Copyleft forte: Modificações devem ser disponibilizadas sob a mesma licença⚠️ Divulgação de código: Serviços web baseados no projeto devem disponibilizar o código fonte- ❌ Sem garantias
- ❌ Sem responsabilidade dos autores
Importante: A licença AGPLv3 requer que qualquer versão modificada do software, incluindo aquelas usadas para fornecer serviços através de uma rede, tenha seu código fonte disponibilizado publicamente.
IMPORTANTE: Este projeto é independente e não possui ligação alguma com o WhatsApp oficial, Meta ou Facebook. Use por sua própria conta e risco, respeitando os termos de serviço do WhatsApp.
- ✅ Respeite os limites do WhatsApp
- ✅ Use delays apropriados entre mensagens
- ✅ Não envie spam
- ✅ Obtenha consentimento dos destinatários
- ✅ Mantenha o sistema atualizado
- WAHA - API WhatsApp Web
- Prisma - ORM TypeScript
- Tailwind CSS - Framework CSS
- React - Biblioteca JavaScript
- Comunidade Open Source - Por tornar projetos como este possíveis
- 💬 Grupo WhatsApp - Comunidade aberta para discussões
- 💬 Discussions - Discussões técnicas no GitHub
- 🐛 Issues - Bugs e features
Precisa de ajuda para melhorar, customizar ou implementar o projeto?
📱 WhatsApp: +55 61 9 9687-8959
💼 Temos uma equipe especializada para:
- ✅ Customizações e melhorias
- ✅ Implementação e deploy
- ✅ Integração com outras APIs
- ✅ Desenvolvimento de features específicas
- ✅ Suporte técnico dedicado
- ✅ Consultoria em automação WhatsApp
- 📖 Documentação WAHA
- 📖 Documentação Prisma
- 📖 Documentação React
- 🐳 Docker Hub - Backend
- 🐳 Docker Hub - Frontend