Docs

Hospedar um bot do WhatsApp

Rode um bot com Baileys 24/7 no Hydro sem perder a sessão a cada deploy.

O ponto delicado de um bot do WhatsApp fora do computador é a sessão: se ela se perde, o bot pede o QR code de novo. No Hydro, grave a sessão na pasta do projeto, que continua entre deploys e reinícios e entra no backup diário.

1. Grave a sessão numa pasta do projeto

Com o Baileys, use um caminho relativo, dentro do projeto:

index.js
import makeWASocket, { useMultiFileAuthState } from '@whiskeysockets/baileys';

const { state, saveCreds } = await useMultiFileAuthState('./auth');
const sock = makeWASocket({ auth: state, printQRInTerminal: true });
sock.ev.on('creds.update', saveCreds);

Não versione a pasta auth no Git: ela é criada no servidor no primeiro acesso.

2. Crie o worker

Em Aplicações → Criar aplicação, escolha a origem, o tipo Worker e a memória. O comando de início é o script start do package.json.

3. Faça o deploy e escaneie o QR code

Faça o deploy e abra os Logs: o QR code impresso pela biblioteca aparece ali. No celular do número do bot, abra Aparelhos conectados → Conectar um aparelho e escaneie.

Nos próximos deploys e reinícios, o bot reaproveita a sessão da pasta auth.

whatsapp-web.js

O whatsapp-web.js controla um Chromium. Publique uma imagem Docker com o navegador e as bibliotecas dele (origem Imagem Docker) e reserve mais memória. Guarde a pasta .wwebjs_auth dentro do projeto do mesmo jeito.

Boas práticas

  • Bibliotecas não oficiais podem levar a bloqueios do número se o uso violar os termos do WhatsApp. Para uso comercial em escala, prefira a API oficial (Cloud API), que recebe webhooks: rode como aplicação Web, com HTTPS automático.
  • O celular principal precisa entrar na conta de tempos em tempos para manter os aparelhos conectados.
  • Chaves de outros serviços (OpenAI, banco) vão como variáveis secretas.

Nesta página