Skip to content

Category: Development

Managed Mattermost: chat for your technical team on your own servers

Channels, direct messages and alerts from your pipelines in a tool that lives on your infrastructure, with backups we restore and upgrades that never catch you by surprise.

Where it runs
In your account, in your name
Backups
With tested restores
Updates
Planned and documented
Licence
Source code AGPLv3; official binaries MIT. Paid editions: commercial

In short

Mattermost is a messaging platform for teams, a self-hosted alternative to Slack, with channels, direct messages, integrations and desktop and mobile apps. We install it in your account or on your servers with PostgreSQL and file storage, connect it to your tools, take backups that we restore in tests and keep it up to date. We also help you choose the edition.

What do we take care of?

Team chat becomes a critical tool without anyone deciding it should: alerts arrive there, deployments are coordinated there and decisions are made there. If Mattermost goes down or loses a month of messages, it is noticed straight away. This is what we keep under control:

  • Server

    Mattermost with its configuration in the repository and the domain in your name.

  • Database

    Tuned PostgreSQL, with backups that we restore in tests.

  • Attachments

    Files on disk or in S3, with their own backup and size limits.

  • Integrations

    Webhooks, bots and commands for GitLab, CI and monitoring alerts.

  • Access

    HTTPS, reviewed accounts and permissions suited to each team.

  • Versions

    Upgrades in step with the supported versions, tested first.

How do we set it up?

For most technical teams a well-sized application server is enough. What matters is keeping the data separate and being able to rebuild it:

  1. Application server

    Mattermost as a system service or in a container, with its configuration stored outside.

  2. PostgreSQL

    On the same server for small teams, or in the provider’s managed database where one exists.

  3. Attachments

    On S3-compatible storage, so the server can be replaced without moving files.

  4. Reverse proxy

    Nginx or Traefik with HTTPS and WebSocket, in front of everything.

If you use voice calls, we also open the port its media server needs and test it from outside the office network.

What problems do we come across most often?

  • Backing up only the database: the attachments were left out and nobody checked.
  • An unsupported version: it no longer receives security fixes and catching up gets harder every month.
  • WebSocket misconfigured on the proxy: messages do not arrive in real time and the team blames the application.
  • Disk full of attachments with no size limit or retention policy.
  • Uncontrolled incoming webhooks: anyone with the URL can post to a channel.
  • The wrong edition: after installing, you discover that the feature you wanted is a paid one.

How do we handle backups and upgrades?

Every day we back up the PostgreSQL database and the attachments separately, and we also keep the configuration file. We regularly restore everything onto a separate server and check that you can log in, read channels and open files; the time it takes goes into the report.

Mattermost releases new versions frequently and keeps some with extended support (ESR). We agree with you the pace you want to follow, read the notes for each release, rehearse on a copy when there are database changes and upgrade in an announced window. Before every upgrade we take a fresh backup.

Who is it for?

  • A technical team that wants its conversations and attachments on its own infrastructure, because of internal policy or a client’s requirements.
  • A company that already self-hosts its Git and CI and wants deployment and incident alerts to reach a chat in the same environment.
  • Anyone leaving Slack who wants to keep part of their history.

Mattermost fits well alongside self-hosted GitLab or Gitea, and with Keycloak if the edition you choose supports single sign-on.

How the pieces fit together
  1. ClientsWeb, desktop and mobile
  2. Reverse proxyHTTPS and WebSocket
  3. MattermostApplication server
  4. PostgreSQLMessages and configuration
  5. StorageAttachments on disk or S3

Where do we set it up?

In your account, with the provider you already use or the one that fits best. If the data has to stay in the EU, Hetzner and OVHcloud are the European options.

Providers we set it up on

  • Hetzner
  • AWS
  • Google Cloud
  • Azure
  • DigitalOcean
  • OVH
  • Own server
ProviderHow we set it upThings to bear in mind
HetznerA cloud server running Mattermost and PostgreSQL, attachments in Hetzner Object Storage and backups in another location.A modest server is enough for a technical team; what grows most is the attachments.
AWSMattermost on EC2, RDS for PostgreSQL and S3 for the attachments.
Google CloudCompute Engine and Cloud SQL for PostgreSQL, with the attachments on disk or on S3-compatible storage.
AzureA virtual machine and Azure Database for PostgreSQL, with the attachments on disk or on S3-compatible storage.
DigitalOceanDroplet running Mattermost, managed PostgreSQL and Spaces for the attachments.
OVHPublic Cloud instance, OVHcloud managed database and Object Storage for the attachments.
Own serverMattermost and PostgreSQL on your server or on a virtual machine.If it is only used in the office, we keep it behind the VPN; for mobile use outside it, we publish only the proxy.

What is included

  • Mattermost in your cloud account or on your server, with your domain and the configuration in your repository.
  • PostgreSQL as the database, with backups kept separate from those of the files.
  • Attachments on disk or on S3-compatible object storage.
  • Reverse proxy with HTTPS and WebSocket, and access for the desktop and mobile apps.
  • Integrations with GitLab, Gitea, CI and alerts: incoming and outgoing webhooks, slash commands and bots.
  • Daily backups of the database and files, with a regular test restore.
  • Metrics for availability, database, disk and certificates, with alerts.
  • Upgrades following the Mattermost release schedule, tested first on a copy.

Frequently asked questions

Which Mattermost edition do we need?

It depends on the size of your team and what you need. Team Edition is free and designed for small teams. Entry is also free, with a commercial licence and usage limits. The paid editions add features such as single sign-on, and Enterprise adds high availability in a cluster. We go over the current terms with you before installing, because they change between versions.

Can we bring over our Slack history?

Mattermost documents a migration from Slack: you start from a Slack export, convert it with its mmetl tool and import it with mmctl. We rehearse it first on a separate instance and we review together what has come across and what has not before doing it in production.

Do voice calls work?

Yes, with the Mattermost calls plugin. Its media server needs port 8443 open directly, over UDP with TCP as a fallback, without going through the reverse proxy. We configure it and test it from outside the office network.

Can it be set up for high availability?

Cluster deployment with high availability belongs to the Enterprise edition. With the free editions, what we do is a well-monitored server, frequent backups and a rehearsed rebuild procedure, so that an outage means a short spell without chat rather than lost messages.

Tell us about your case

In a free 20-minute call we look at where you are and where to start. No commitment.

Book a 20-minute call

Official documentation consulted

The technical details on this page are based on:

Reviewed on

WhatsApp