LibrePortal
Sponsor
Install

Mattermost

Team Chat

Mattermost is team chat on your own server, in the style of Slack. Channels, threads, direct messages, file sharing and search, with desktop and phone apps that everyone on the team can use.

On this page
  1. At a glance
  2. What it's good for
  3. Signing in
  4. Adding your team
  5. Desktop and phone apps
  6. Good to know
  7. Addresses and ports
  8. Settings
  9. In its config file
  10. Tools
  11. Works with
  12. Privacy and security
  13. What leaves this server
  14. What LibrePortal turns off
  15. Sources
  16. Under the hood

Good to know before you install

Separate accounts; no single sign-on (a paid Mattermost feature). Phone push notifications, usage diagnostics and the security-update check are off, so nothing is sent to Mattermost; the mobile apps still connect but get no alerts while closed. Each can be turned on in this app's Privacy settings.

At a glance#

What it is
Team Chat Communication
Where it opens
Web Interface On its own port at http://your-server:port, or mattermost.your-domain once you have a domain
Updates
Automatic A backup is taken first, and it rolls back if the update fails
Backups
Included Part of the daily backup when that's switched on
Copies
As many as you like Run several copies, each with its own data

What it's good for#

If your club, business or project lives in a group chat that's got out of hand, Mattermost gives it some shape. Conversations go in channels, replies go in threads so the main channel stays readable, and everything is searchable later. Files you share stay on your server. The Team Edition that LibrePortal installs is free, with no limit on how many people use it.

Mattermost, Rocket.Chat, Matrix or Stoat?

Rocket.Chat is Mattermost's closest neighbour in the catalogue, another team chat; try both and keep the one your team likes. Matrix suits you if you want end-to-end encryption and to talk to people on other servers. Stoat is more like Discord, for friends rather than work.

Signing in#

A new Mattermost makes whoever signs up first its System Admin, which would hand your server to the first stranger who found the page. So LibrePortal signs up first. As soon as Mattermost answers, it makes the admin account itself, checks that it can log in with it, and only then opens the app up. Until that's done, Mattermost is reachable from the server itself and nowhere else (why).

The account's email is admin@mattermost.invalid and its username is admin. The password is in the Login Details shown when the install finishes; press Welcome on the app's page to see them again. Mattermost accepts either the email or the username on its sign-in page.

The first time you sign in, Mattermost walks you through creating your first team, which is the space your channels live in.

If the install couldn't make the account

If something went wrong (Mattermost didn't answer within three minutes, say), the install says so and leaves the app reachable from the server only, so nobody else can sign up first. The simplest fix is to uninstall it and install it again. Only restart it to open it up once you know the admin account exists.

The email is a placeholder

.invalid is a name reserved for addresses that can never exist, so nobody else can receive mail meant for your admin. You can change it to your own address in your Mattermost profile, but the Reset User Password tool only keeps LibrePortal's copy of the password up to date for the account it made, found by that email. If you change it, note your new password yourself.

Adding your team#

After the first account, Mattermost only lets people join by invitation. There are two ways to add someone.

The simplest is from inside Mattermost: as an admin, invite people to your team, and share the invite link with them. They choose their own username and password when they follow it.

Or create the account for them from LibrePortal's Tools tab:

  1. Open Mattermost's page in LibrePortal and go to Tools.
  2. Run Create User Account with their email address. Leave the username empty and it's made from the email; leave the password empty and one is generated. Tick Make system admin only for people who should run the server with you.
  3. Send them the address and their password, and ask them to change it once they're in.

The other tools find people by email: Reset User Password (leave it empty to generate one), Set Admin Status, List Users and Deactivate User Account. Deactivating locks someone out but keeps everything they wrote, and you can switch them back on from Mattermost's System Console.

Use the tools when someone forgets their password. Mattermost has no mail server to send reset links with here.

Desktop and phone apps#

Mattermost has desktop apps for Windows, macOS and Linux, and phone apps for Android and iPhone. When an app asks for a server, give it the address you open Mattermost at in the browser: https://mattermost.example.com with a domain, or http://192.168.1.50: and the port number on your home network.

Away from home, the apps need to reach the server too. With a domain that just works. Without one, keep Mattermost private and use the LibrePortal VPN on the phone.

Notifications on a phone reach it through a push service run by Mattermost itself, not straight from your server.

To check: check whether push notifications to the phone apps work out of the box on LibrePortal's Team Edition (push-test.mattermost.com), and where in the System Console they're switched on

Good to know#

  • Leave Authelia off. The page below says Mattermost can sit behind Authelia's sign-in. It can, but the desktop and phone apps can't get past it, so only turn it on if everyone uses the web page.
  • Updates are automatic within the Mattermost version LibrePortal pins, and LibrePortal checks that Mattermost answers with the new version before calling it done. A backup is taken first.
  • Backups include the database and every file people have shared. Mattermost's image is an unusual one with no tar inside it, which quietly broke its backups before 0.4.8: every Mattermost snapshot was incomplete, and so every Mattermost update stopped for want of a good one. That's fixed, by reading Mattermost's files through a small helper instead. If you ran Mattermost on an older version, take a fresh Backup now before you rely on a snapshot, because the older ones may be incomplete.
  • Installs made before 0.4.7 are caught up on the admin: if an older Mattermost still has no accounts at all, LibrePortal makes the admin the next time it starts after the update, and its password appears in the Login Details. The Tools tab is another matter. It talks to Mattermost through its "local mode", which only installs from 0.4.7 have switched on, so on an older install the user tools fail. Press Update Configuration on the Config tab once: it sets Mattermost up again from LibrePortal's current version of it, with local mode on, and keeps your messages and accounts. It then checks the login on the Login Details card before opening Mattermost up again; if that isn't the admin's current password, Mattermost stays reachable from the server only until you restart it.

Addresses and ports#

Mattermost has one port. LibrePortal picks a free port number for each when you install, so yours will differ from anyone else's. The Config tab's Network section shows them, and the app's Open button uses the right one. "Anyone" means it's reachable from wherever your server is reachable; you can make it private later.

What it isWho can reach itWith a domain
Web Interface Anyone mattermost.your-domain

Settings#

In its config file#

Mattermost's own settings aren't on the Config tab yet. They live in the app's config file, described here so you know they exist. How to change them.

SettingWhat it doesStarts as
Name
CFG_MATTERMOST_DISPLAY_NAME
What this app is called on your dashboards. Leave empty to use its usual name Empty
Show on the LibrePortal Dashboard
CFG_MATTERMOST_SHOW_ON_DASHBOARD
Whether this app gets a shortcut on the front page of the LibrePortal WebUI, separate from any Dashy dashboard
Choices: true, false
true
Usage Diagnostics
CFG_MATTERMOST_TELEMETRY
Whether Mattermost may send usage diagnostics to Mattermost
Choices: true, false
false
Security Update Check
CFG_MATTERMOST_UPDATE_CHECK
Whether Mattermost may ask Mattermost's servers about security fixes
Choices: true, false
false
Phone Notifications Relay
CFG_MATTERMOST_PUSH_RELAY
Whether phone notifications may pass through Mattermost's push server, which sees when a message arrives
Choices: true, false
false
Detailed logs
CFG_MATTERMOST_VERBOSE_LOGS
Whether Mattermost writes its normal, chattier logs, including who connected, instead of only warnings and errors.
Choices: true, false
false
Debug logging for 24 hours
CFG_MATTERMOST_DEBUG_LOGS
Turn on to see everything Mattermost is doing while you look for a problem; it turns itself off after 24 hours.
Choices: true, false
false

Tools#

Mattermost's Tools tab has 5 buttons for jobs you'd otherwise need a terminal for. Each one runs as a task, so you can watch it on the Tasks page and read what it did. More about Tools.

Create User Account

Add a Mattermost user. Tick "Make system admin" for full rights.

Asks for: Email, Username (optional), Password (optional), Make system admin
List Users

Every account on this server.

Reset User Password

Set a new password for an existing user.

Asks for: User email, New password (optional)
Set Admin Status

Promote or demote a system administrator.

Asks for: User email, Make system admin
Deactivate User AccountCan't be undone

Revoke access without deleting content. Reversible from the System Console.

Asks for: User email

Works with#

These are the other apps Mattermost knows how to work with. Once it's installed, its page shows the same list with whether each one is connected. How this works.

  • Email: Sends invitations, password resets and missed-message emails through your mail server, from an account of its own. LibrePortal sets this up by itself when both are installed.
  • Grafana: Shows dashboards for the apps that have one. works with every app
  • Prometheus: Collects metrics from the apps that can export them. works with every app
  • Uptime Kuma: Watches your apps and shows when one goes down. works with every app

Privacy and security#

All clear Mattermost is team chat on your server. LibrePortal turns off its diagnostics, security-alert check and phone-notification relay to Mattermost.

What leaves this server#

  • Link previews fetch the pages people paste
  • Phone notifications work only if you set up your own push server

What LibrePortal turns off#

  • Detailed logs and per-request access logging (switchable in Config)
  • Diagnostics and usage reports (switchable in Config)
  • Security-alert check (switchable in Config)
  • Phone notification relay through Mattermost's test server (switchable in Config)

Licence: Compiled Team Edition: MIT (MIT-COMPILED-LICENSE); source: AGPL-3.0 with Apache-2.0 parts; Enterprise code is proprietary and not in this image. Audited: 21 October 2026. See the privacy of every app and the Promise.

Sources#

Under the hood#

  • It runs these images: mattermost/mattermost-team-edition:11.9.2@sha256:a0208e95ff9065086117fabdc65299786f0eb072bc27942cf8a15245b3937d4d, postgres:15.19-alpine@sha256:54e0dd8e8cddcdbb9156c2486eed5a43eccb7214d7c6828097d41ce049fb3984.
  • It can sit behind Authelia's sign-in once Authelia is installed.
  • Its own project and documentation: github.com/mattermost/mattermost

Ports, settings, tools and connections on this page are read from LibrePortal v0.10.97's app catalogue each time the guide is built.

Next steps