Pular para o conteúdo principal
Use Self-host quando quiser executar o gateway open source na sua própria infraestrutura. Você opera um app da Meta, uma chave de API e um webhook de assinante, e pode conectar as linhas que esse app permitir. Isto não é a conta Cloud. A Cloud fica em app.watahub.dev e está documentada no restante deste site. Se você só quer uma chave de API do Watahub e uma página de conexão hospedada, volte à introdução e siga a Cloud.

O que você executa

O core é o repositório público Hub-Ventures/watahub, também publicado como watahub no npm (0.2.0). Ele roda em Cloudflare Workers ou no Node.js 20+. A licença é MIT. Você configura o segredo do seu app da Meta, um token de verificação do webhook e uma chave de API do Watahub com 32 caracteres ou mais. O gateway guarda o token da Meta de cada linha e nunca o devolve. Seu agente recebe cada evento normalizado em SUBSCRIBER_WEBHOOK_URL e responde com POST /v1/messages no seu host do gateway, não em https://cloud.watahub.dev.

Primeira execução local

Você precisa de Node.js 20 ou posterior, pnpm (corepack enable usa a versão fixada no repositório) e um app da Meta com o produto WhatsApp.
Gere WATAHUB_API_KEY e SUBSCRIBER_WEBHOOK_SECRET:
Preencha o .env. O gateway lê process.env e não carrega o .env sozinho, então inicie-o com --env-file do Node:
Um processo saudável devolve JSON com status ok, service watahub e version 0.2.0. O passo a passo completo — app da Meta, primeiro envio, primeiro webhook de entrada e Embedded Signup — está no guia Getting started do core. Para Cloudflare Workers, Node, Docker ou um proxy reverso, use Deployment.

Conectar uma linha

No Self-host você conclui uma linha com POST /v1/onboarding/connect (o código do Embedded Signup, o id do WABA, o id do número e o PIN) ou com um token de system user em META_SYSTEM_USER_TOKEN. Veja o Getting started. Os clientes da Cloud usam links de conexão hospedados. Essas páginas não se aplicam aqui.

Webhooks

O core encaminha um POST assinado por cada entrega da Meta para a sua única URL de assinante. Os cabeçalhos são x-watahub-signature (sha256= mais o HMAC-SHA256 hexadecimal em minúsculas do corpo exato, com SUBSCRIBER_WEBHOOK_SECRET), x-watahub-delivery-id e Idempotency-Key (o mesmo valor do id de entrega). Deduplique em x-watahub-delivery-id. O catálogo de eventos está em Webhooks and events. Não siga a página de webhooks da Cloud para isso. Essa página documenta os webhooks de desenvolvedor em cloud.watahub.dev: X-Webhook-Event, X-Webhook-Signature sem prefixo sha256= e X-Idempotency-Key. Um destino administrativo antigo da Cloud pode parecer com o assinante do core; não é o guia de Self-host.

O que permanece na Cloud

A Inbox hospedada, os registros de sete dias, a custódia de tokens para muitos tenants, os links de conexão hospedados, os webhooks de desenvolvedor, a CLI e o MCP vêm com a Cloud / Enterprise Edition, não com o core open source.

Guias oficiais do core