docs/en/platform/mattermost.md
The Mattermost adapter connects to your Mattermost server through a Bot Token and WebSocket. After finishing the two parts below, AstrBot can send and receive messages in Mattermost channels and direct messages.
Go to the Bots page, click + Create Bot, and choose Mattermost.
On the configuration page, enable it first, then fill in:
Mattermost URL: your Mattermost server URL, for example https://chat.example.comMattermost Bot Token: the access token generated after creating a bot account in MattermostMattermost Reconnect Delay: how long AstrBot waits before reconnecting after a WebSocket disconnect, default 5Then click save.
If you do not have a Mattermost server yet, use the official Mattermost Docker Compose repository:
The current quick-start flow recommended by Mattermost is:
git clone https://github.com/mattermost/docker
cd docker
cp env.example .env
Then update at least these values in .env:
DOMAINMATTERMOST_IMAGE_TAGMM_SUPPORTSETTINGS_SUPPORTEMAILCreate the data directories and set ownership:
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
Choose one startup mode:
Without the bundled NGINX:
docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d
With the bundled NGINX:
docker compose -f docker-compose.yml -f docker-compose.nginx.yml up -d
Access URLs:
http://your-domain:8065https://your-domain[!TIP] Mattermost currently states that production Docker support is Linux-only. macOS and Windows are better suited for development or testing.
Open the Mattermost system console:
System Console > Integrations > Bot Accounts
Enable Enable Bot Account Creation.
Go to:
Product menu > Integrations > Bot Accounts
Click Add Bot Account and fill in:
UsernameDisplay NameDescriptionAfter creation, copy the generated Bot Token. It is shown only once. Paste it into AstrBot's Mattermost Bot Token field.
Add the bot to the channel where AstrBot should work. Otherwise the bot will not be able to properly receive and send messages in that channel.
Mattermost URL should be the external URL of your Mattermost server, without a trailing slash. For example:
https://chat.example.com
If you are only testing locally, you can also use:
http://127.0.0.1:8065
If both AstrBot and Mattermost run in containers, prefer an address reachable from the AstrBot container, such as the Mattermost service name on the same Docker network.
After saving the AstrBot platform adapter configuration:
Usually one of these:
Check these first:
Mattermost URL points to an address AstrBot can actually reachIf AstrBot runs in a container while Mattermost URL is set to localhost or 127.0.0.1, AstrBot will connect to itself instead of the Mattermost service. In that case, switch to an address reachable inside the Docker network.