-
Notifications
You must be signed in to change notification settings - Fork 2
Configuração
Esta página documenta as variáveis de ambiente e decisões de configuração que afetam runtime, persistência, mídia, antiban, backfill e operação multi-instância.
A referência de defaults está em .env.example. A leitura em runtime é centralizada em src/config/index.ts, com validações adicionais no bootstrap de src/index.ts.
O Zyra é desenhado para operar com isolamento por conexão.
Use esta convenção ao ler a documentação:
-
WA_CONNECTION_ID: variável de ambiente -
connection_id: chave de partição no banco e em parte da persistência -
connectionId: naming interno do runtime
Cada conexão é isolada por connection_id, mas o processo principal pode subir uma ou várias conexões.
A resolução do bootstrap segue esta ordem:
-
WA_CONNECTION_IDS— lista CSV explícita - descoberta automática no MySQL via
auth_creds - fallback legado para
WA_CONNECTION_ID
Esse valor afeta:
- auth e sessão
- chaves Redis
- tabelas e auditoria no MySQL
- checkpoints do backfill
- configuração por grupo
- reconciliação de identidade
A escolha da fonte de auth segue esta prioridade:
- MySQL
- Redis
- Disco local
Se a resolução da estratégia centralizada falhar durante o bootstrap, o socket pode cair para o fallback local em disco para preservar disponibilidade.
-
WA_CONNECTION_ID: identificador lógico para boot simples de uma sessão ou fallback legado -
WA_CONNECTION_IDS: lista CSV para subir várias conexões no mesmo processo -
WA_COMMAND_PREFIX: prefixo dos comandos -
WA_PRINT_QR: controla exibição do QR no terminal -
LOG_LEVEL: nível de log -
WA_ACCEPT_OWN_MESSAGES: processa mensagens enviadas pela própria conta -
WA_IGNORE_STATUS_BROADCAST: ignorastatus@broadcast
-
MYSQL_URL: persistência SQL principal -
WA_DB_URL: alias legado paraMYSQL_URL -
WA_REDIS_URL: endpoint Redis -
WA_REDIS_PREFIX: prefixo de chaves Redis -
WA_AUTH_DIR: diretório local de credenciais -
WA_AUTH_PERSIST_KEYS: persiste chaves de auth também em disco
-
WA_COMMAND_TIMEOUT_MS: timeout máximo de execução de comando -
WA_ROUTER_MAX_PENDING_PER_QUEUE: limite de mensagens pendentes por fila -
WA_MAX_CACHED_MESSAGES: limite do cache local em memória
Essas variáveis controlam o comportamento do pipeline por connectionId:chatId, incluindo proteção contra filas saturadas e comandos travados.
-
WA_MEDIA_AUTO_DOWNLOAD: download automático de mídia -
WA_MEDIA_DOWNLOAD_DIR: diretório local da mídia baixada -
WA_MEDIA_MAX_BYTES: cota máxima local -
WA_MEDIA_RETENTION_DAYS: retenção em dias
WA_ANTIBAN_ENABLEDWA_ANTIBAN_LOGGINGWA_ANTIBAN_PRESETWA_ANTIBAN_MAX_PER_MINUTEWA_ANTIBAN_MAX_PER_HOURWA_ANTIBAN_MAX_PER_DAYWA_ANTIBAN_MIN_DELAY_MSWA_ANTIBAN_MAX_DELAY_MSWA_ANTIBAN_NEW_CHAT_DELAY_MSWA_ANTIBAN_IDENTICAL_WINDOW_MSWA_ANTIBAN_GROUP_PROFILES_ENABLEDWA_ANTIBAN_GROUP_MULTIPLIERWA_ANTIBAN_DEAF_SESSION_ENABLEDWA_ANTIBAN_DEAF_SESSION_TIMEOUT_MSWA_ANTIBAN_DEAF_SESSION_MIN_UPTIME_MSWA_ANTIBAN_DEAF_SESSION_AUTO_RECONNECTWA_ANTIBAN_JID_CANONICALIZER_ENABLEDWA_ANTIBAN_LID_CANONICALWA_ANTIBAN_GROUP_OP_GUARD_ENABLEDWA_ANTIBAN_LEGITIMACY_SIGNALS_ENABLEDWA_ANTIBAN_INSTANCE_COORDINATOR_ENABLEDWA_ANTIBAN_INSTANCE_COORDINATOR_PATHWA_ANTIBAN_INSTANCE_POOL_MAX_PER_MINUTEWA_ANTIBAN_INSTANCE_POOL_MAX_PER_HOURWA_ANTIBAN_METRICS_ENABLEDWA_ANTIBAN_METRICS_HOSTWA_ANTIBAN_METRICS_PORTWA_ANTIBAN_METRICS_PATH
WA_HEALTH_ENABLEDWA_HEALTH_HOSTWA_HEALTH_PORTWA_SHUTDOWN_TIMEOUT_MSWA_CREDS_DEBOUNCE_MSWA_RECONNECT_BASE_DELAY_MSWA_RECONNECT_MAX_DELAY_MSWA_RECONNECT_MAX_ATTEMPTSWA_MYSQL_RETRY_MS
WA_BACKFILL_INTERVAL_MSWA_BACKFILL_ONCEWA_BACKFILL_BATCH_SIZEWA_BACKFILL_MAX_FAILURESWA_BACKFILL_FAILURE_BACKOFF_MS
Use quando quiser subir uma única sessão com menos complexidade operacional:
WA_CONNECTION_ID=default-
MYSQL_URLconfigurado -
WA_REDIS_URLopcional WA_PRINT_QR=true-
LOG_LEVEL=debugouinfo
Use quando quiser controlar exatamente quais sessões o runtime principal deve subir:
WA_CONNECTION_IDS=default,loja1,loja2-
MYSQL_URLobrigatório -
WA_REDIS_URLrecomendado - disciplina de segregação por
connection_id
Use quando o MySQL já é a fonte de verdade das sessões persistidas:
-
MYSQL_URLobrigatório -
WA_CONNECTION_IDSausente -
WA_CONNECTION_IDmantido apenas como fallback se nenhuma sessão for encontrada -
WA_REDIS_URLrecomendado para hot cache compartilhado
Recomendado para servidores persistentes:
LOG_LEVEL=info-
WA_PRINT_QR=falseapós sessão estabilizada WA_ANTIBAN_ENABLED=true-
WA_ANTIBAN_METRICS_ENABLED=truequando houver observabilidade externa WA_HEALTH_ENABLED=true
A stack padrão já injeta:
WA_CONNECTION_ID=defaultWA_REDIS_URL=redis://redis:6379MYSQL_URL=mysql://zyra:zyra@mysql:3306/zyra
Você pode manter esse modo simples, trocar para WA_CONNECTION_IDS no .env ou deixar o bootstrap descobrir as sessões em auth_creds.
WA_CONNECTION_ID=default
# WA_CONNECTION_IDS=default,loja1,loja2
WA_COMMAND_PREFIX=!
MYSQL_URL=mysql://user:pass@127.0.0.1:3306/zyra
WA_REDIS_URL=redis://127.0.0.1:6379
LOG_LEVEL=info
WA_MEDIA_AUTO_DOWNLOAD=true
WA_MEDIA_DOWNLOAD_DIR=data/mediaDepois de alterar configuração:
npm run db:verify
npm run build
npm testTambém valide:
- logs de bootstrap
- estratégia de auth realmente escolhida
- visibilidade de métricas e health quando habilitados
- processos PM2 ou serviços Docker alinhados com a configuração desejada
Zyra Wiki • Última atualização: 17/05/2026
Zyra Wiki • Última atualização: 17/05/2026
Home | Configuração | Comandos | Banco-de-Dados | Produção | Troubleshooting