← all SaaS

Self-host Microsoft Teams

Team chat + video meetings · Category: team chat & community

Microsoft Teams is the chat + meetings + files surface bundled into Microsoft 365 — channels, threads, calls, screen share, file co-edit. The self-hostable replacements all replicate the chat + threads + calls core; the part that doesn't carry over is deep Word/Excel co-edit (replaced separately by Collabora or OnlyOffice on top of Nextcloud).

Microsoft Teams pricing anchor: Teams Essentials $4/user/mo; bundled in M365 Business Basic at $6/user/mo.

Mattermost mattermost/mattermost alive

GitHub
★ 36.6k · last commit today · 857 open issues
License
AGPL-3.0
Team Edition core is AGPL-3.0; Enterprise adds SSO controls, compliance exports, and data retention under a commercial license.
Setup time
20min docker-compose (Go server + Postgres)
Monthly cost
$10/mo VPS for a 50-user team; Postgres is the heaviest piece.
Migration sketch. Use the official compose at docs.mattermost.com. Mattermost ships a Microsoft Teams importer (`mattermost import process`) that reads a Teams export JSON; in Teams admin: Compliance → eDiscovery → export channel content. Map M365 groups to Mattermost teams during the run. For voice/video, install the bundled Mattermost Calls plugin (WebRTC, no extra service required for small teams).
Good fit forEngineering-heavy orgs that want Teams-shaped channel+thread chat with deeper integration hooks (Slack-compatible webhooks, slash commands, devops bots).
Weak atFiles / co-edit story is bring-your-own — pair with Nextcloud + Collabora to recover the docx co-edit half of Teams.

Rocket.Chat RocketChat/Rocket.Chat alive

GitHub
★ 45.3k · last commit 1d ago · 3688 open issues
License
MIT
Core is MIT; some Enterprise features (engagement dashboard, advanced LDAP) are paid add-ons.
Setup time
20min docker-compose (Node + MongoDB)
Monthly cost
$10/mo VPS; MongoDB needs RAM and growing index space.
Migration sketch. Pull `rocket.chat` and `mongo:6` via official compose. Teams migration: export channel/conversation data via M365 Compliance export, then use Rocket.Chat's HTTP REST API to bulk-create channels and post historical messages with the original timestamps and authors (community scripts handle the loop). Built-in voice/video calls use Jitsi Meet — install Jitsi alongside on the same VPS.
Good fit forCustomer-facing scenarios (livechat plugin), regulated environments (on-prem with SSO + audit trail), and orgs that need omnichannel chat with email/WhatsApp gateways.
Weak atMongoDB ops surface — backups and upgrades are more involved than Mattermost's Postgres.

Element + Synapse (Matrix) element-hq/synapse alive

GitHub
★ 4.16k · last commit 1d ago · 1996 open issues
License
AGPL-3.0
Synapse moved to AGPL-3.0 in late 2023; Dendrite (Go server) and Conduit are alternative homeservers.
Setup time
1h docker-compose (Synapse + Postgres + Element web client + TURN server for calls)
Monthly cost
$15-30/mo VPS; TURN bandwidth dominates if calls are heavy.
Migration sketch. Use the `matrix-docker-ansible-deploy` playbook for a one-shot install (Synapse + Element + Coturn + bridges). Bridge to Microsoft Teams via the `mautrix-teams` puppeting bridge — your existing Teams DMs and channels appear in Element while you migrate. After cutover, leave the bridge running for users who can't move. Element Call (Matrix-native group video) replaces Teams meetings.
Good fit forPrivacy-first or regulated orgs that want federation, end-to-end encryption by default, and zero-trust topology.
Weak atOperational complexity is the highest of the three — multiple components and a steeper learning curve.

In a terminal? npx os-alt microsoft-teams prints this table — how the CLI works →