Skip to main content
GOWA reads configuration from three places:
  • Command-line flags on whatsapp rest (run ./whatsapp rest --help for the full list).
  • Environment variables.
  • A .env file in the working directory (src/.env when running from source; copy src/.env.example).
The .env file only fills in variables that are not already set in the environment.
In the current code, environment variables (including .env) are applied after flags are parsed, so a variable that is set overrides the matching flag. The MCP OAuth settings are the exception: their flags win. The upstream README states that flags always take priority; until that is reconciled, set each option in one place only.
Booleans accept true/false. Durations use Go syntax (30s, 5m, 3h). List values are comma-separated.

Commands

Server

Dashboard

MCP

See MCP server.

Storage

Chat storage (chats, messages, schedules) always lives in storages/chatstorage.db and is not configurable.

WhatsApp behavior

Webhooks

See Webhooks.

Chatwoot

Descriptions are in Chatwoot integration.

Fixed limits

These are compiled in and cannot be changed by configuration:

Not used

src/.env.example lists WHATSAPP_WEBHOOK_INCLUDE_OUTGOING and WHATSAPP_CHAT_STORAGE, but the current code does not read either. Setting them has no effect.

Example

.env
Equivalent flags: