Skip to content

Repository files navigation

WaCalls

📞 WaCalls

Plataforma de atendimento WhatsApp multi-conexão em Go + React. Chat, filas, contatos, conexões multi-número e relatórios — tudo em um único binário.


Go React Vite Tailwind

whatsmeow SQLite License Open Source


Status Made with love PRs Welcome


banner

💚 Projeto open source. Código-fonte completo, sem telemetria, sem dependência de serviços externos pagos. Rode em sua própria VPS.


✨ O que esta versão inclui

Esta build entrega apenas as funcionalidades ativas no menu:

Módulo Rota Descrição
🔐 Login /login Autenticação por e-mail e senha. Admin padrão: wacalls@admin.com / admin.
💬 Chat /chats Conversas em tempo real, envio de mídia, encerramento de atendimento (sem exigir motivo).
👥 Contatos /contacts Lista, busca e edição de contatos sincronizados do WhatsApp.
🗂️ Filas /queues Distribuição de atendimentos por fila/setor.
📱 Conexões /connections Pareamento multi-número via QR Code, status e desconexão.
📊 Relatórios /reports Mensagens enviadas/recebidas, chamadas, tickets, tendência diária.
🛡️ Usuários /admin/users CRUD de usuários e perfis (apenas admin).

🚫 O que não está incluso nesta versão

Para manter o deploy enxuto, foram removidos do menu (podem ser removidos também do httpapi.go se quiser build ainda menor):

  • ❌ Construtor de fluxo (Flowbuilder)
  • ❌ Kanban / Pipeline
  • ❌ Campanhas / Broadcast em massa
  • ❌ Agentes de IA
  • ❌ Chamadas VoIP nativas (whatsmeow VoIP)
  • ❌ TTS / gravação de chamadas
  • ❌ Billing / Financeiro
  • ❌ Cadastro público de novos usuários (só admin cria)
  • ❌ Avaliação do atendimento pelo cliente

🧱 Stack

stack
  • ⚙️ Backend: Go 1.26+, SQLite embarcado (pure-Go, sem CGO), Redis opcional
  • 🎨 Frontend: React 19 + Vite 7 + Tailwind + shadcn/ui
  • 📲 WhatsApp: whatsmeow (multi-device)
  • 🚀 Deploy: Binário único servindo API + frontend estático na mesma porta

⚡ Instalação rápida (VPS Linux)

Requisitos: Go 1.26+, Node.js 20+, npm, unzip, systemd (opcional).

1️⃣ Instalação direta pelo GitHub (recomendado)

📦 Repositório oficial: https://github.com/raphaelbat/wacalls-chat

Copie e cole este único comando na sua VPS. Ele baixa o instalador e abre o menu interativo com as opções 1) GIT · 2) ZIP · 3) Sair:

bash <(curl -fsSL https://raw.githubusercontent.com/raphaelbat/wacalls-chat/main/client/scripts/instalador_wacalls.sh)

Você verá:

============================================================
        WaCalls — Instalador / Atualizador
============================================================
  1) Instalar / Atualizar via GIT  (padrão — recomendado)
  2) Instalar / Atualizar via ZIP  (arquivo local)
  3) Sair
============================================================
Escolha uma opção [1-3] (padrão 1):

Prefere pular o menu e ir direto? Use os atalhos:

# Direto via GIT (repo/branch padrão)
bash <(curl -fsSL https://raw.githubusercontent.com/raphaelbat/wacalls-chat/main/client/scripts/instalador_wacalls.sh) git

# Direto via GIT com fork/branch específico
bash <(curl -fsSL https://raw.githubusercontent.com/raphaelbat/wacalls-chat/main/client/scripts/instalador_wacalls.sh) \
  git https://github.com/SEU_USUARIO/wacalls-chat.git main

# Direto via ZIP local
bash <(curl -fsSL https://raw.githubusercontent.com/raphaelbat/wacalls-chat/main/client/scripts/instalador_wacalls.sh) \
  zip /root/wacalls.zip

2️⃣ Instalador via ZIP

Se preferir enviar o pacote manualmente:

# copie wacalls.zip para /root da VPS, então:
unzip -j /root/wacalls.zip 'wacalls/client/scripts/instalador_wacalls.sh' -d /root/
chmod +x /root/instalador_wacalls.sh
/root/instalador_wacalls.sh /root/wacalls.zip

3️⃣ Instalação manual

unzip wacalls.zip -d /opt/
cd /opt/wacalls

# Backend
go build -o wacalls ./cmd/server

# Frontend
cd client
npm install
npm run build   # gera client/dist (servido pelo binário)
cd ..

# Rodar
./wacalls -addr :8080 -db /var/lib/wacalls/wacalls.db

Na primeira execução o admin padrão wacalls@admin.com / admin é criado. Para trocar:

./wacalls -seed-admin-email meu@email.com -seed-admin-password minhaSenha

🔧 Configuração (/root/wacalls/.env)

# Banco (padrão SQLite; NÃO use mariadb — whatsmeow não suporta)
DB_DRIVER=sqlite

# Redis opcional — só necessário para múltiplas instâncias / cache compartilhado
REDIS_URL=redis://:senha@127.0.0.1:6379/0
Componente SQLite (padrão) SQLite + Redis
Empresas ativas 30–80 150–220
Sessões WhatsApp simultâneas 50–150 300–500
SSE fan-out processo único multi-instância

🛠️ Systemd

[Unit]
Description=WaCalls
After=network.target

[Service]
WorkingDirectory=/opt/wacalls
EnvironmentFile=/opt/wacalls/.env
ExecStart=/opt/wacalls/wacalls -addr :8080 -db /var/lib/wacalls/wacalls.db
Restart=always
User=root

[Install]
WantedBy=multi-user.target
systemctl enable --now wacalls
journalctl -u wacalls -f

🌐 Endpoints ativos

  • POST /api/auth/login · GET /api/auth/me · POST /api/auth/logout
  • GET/POST/PUT/DELETE /api/users (admin)
  • GET/POST /api/sessions/* — conexões WhatsApp (QR, status)
  • GET /api/sessions/{id}/chats/* — chats e mensagens
  • GET /api/contacts — contatos
  • GET/POST /api/queues — filas de atendimento
  • GET /api/reports/summary — métricas do relatório
  • GET /api/events (SSE) — eventos em tempo real

ℹ️ Rotas dos módulos não usados (flows, kanban, campanhas, VoIP) continuam no código mas não são expostas pelo menu. Você pode removê-las editando cmd/server/httpapi.go.


📁 Estrutura

wacalls/
├── cmd/server/          # backend Go (HTTP + SSE + whatsmeow)
├── internal/            # domínio: wa, voip (legacy), auth
├── client/              # frontend React + Vite
│   ├── src/pages/       # Login, Chats, Connections, Contacts, Queues, Reports, AdminUsers
│   └── scripts/         # instalador_wacalls.sh
├── dist/                # build de frontend embutido (fallback)
├── go.mod / go.sum
├── README.md            # este arquivo
└── SETUP.md             # guia curto de deploy

🔄 Atualização

Rode o mesmo instalador com um novo wacalls.zip. Ele faz backup automático de wacalls.db, .env, data/ e media/ em /root/wacalls-backup-<timestamp>.


👥 Contributors

This project builds on the work of:


🏆 Créditos

Feito com muito 💚 e código aberto por:

  • 👨‍💻 JotaDev66 — mantenedor da lib base (WaCalls core)
  • 👨‍💻 jobasfernandes — contribuidor
  • 🚀 Raphaelbat — desenvolvimento dos demais recursos do sistema (painel, chats, conexões, usuários, instalador e integrações)

🎬 Um agradecimento especial ao canal:

YouTube

📺 Canal Vem Fazer

🔥 Se esse projeto te ajudou, dê uma força ao canal! 🔥

Inscreva-se

Curta, comente e compartilhe os vídeos — é isso que mantém o projeto vivo e gratuito!


thanks

Feito com 💚 pela comunidade open source.


📜 Licença

MIT — código aberto, uso comercial permitido. Contribuições via PR são bem-vindas. 🚀

About

voz e chat

Resources

Stars

35 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages