Same channels, threads and integrations — on your own server.
Why switch
- ▸Slack Business+ costs $12.50/user/month — for a 20-person team that is $3,000/year of rent.
- ▸Message history limits disappear: Mattermost keeps unlimited history on your hardware.
- ▸Compliance and data residency become a config setting, not a sales call.
The migration
- 01
Deploy Mattermost
Grab the production compose from the AltStack and bring it up. PostgreSQL is included — no external database needed.
bashrun on your servermkdir mattermost && cd mattermost curl -O https://raw.githubusercontent.com/aa-humaaan/thealtstack/main/docker-deploy/mattermost/docker-compose.yml docker compose up -d - 02
Walk the team through accounts
Enable open sign-up for your email domain, or create accounts in bulk from the System Console. Teams map 1:1 to Slack workspaces; channels import as public/private channels.
- 03
Recreate your channel structure
Mattermost supports channels, private channels, group messages and threads. Rename your Slack channels the same way — the layout will feel instantly familiar to the team.
- 04
Reconnect the integrations that matter
Webhooks in Slack are Incoming/Outgoing — Mattermost has the same, plus a slash-command framework. Most CI bots (GitHub, GitLab, Jenkins) have first-class Mattermost plugins.
- 05
Move the archive (optional)
Slack admin exports (Discovery or standard export) can be imported via the mmetl tool. Most teams skip this and keep Slack read-only as an archive — it cancels the migration risk.
Gotchas — read before you cancel
- ⚠Email notifications feel different until users tune their notification settings — set defaults in the System Console on day one.
- ⚠If you use Slack Connect with external companies, those shared channels have no equivalent — plan a bridge channel or keep one Slack free tier for partners.
- ⚠Playbooks/workflows built in Slack don't transfer — rebuild the two or three you actually use as Mattermost playbooks or webhooks.
Only cancel when this is true
- ✓docker compose ps shows mattermost + postgres healthy
- ✓A test message from a phone on mobile data reaches the channel (push notifications working)
- ✓CI bot posts a build status to a channel
Replacing more than one tool?
The Stack Composer bundles Mattermost with the rest of your open-source stack into one docker-compose file.
Open in Stack Composer →