Quick answer

Start with Matrix plus Element: it is the most-deployed option and has the strongest native group-call story here, though Element Call means deploying a LiveKit SFU yourself. Stoat, formerly Revolt, wins instead only when the Discord look and feel outranks maturity — it is pre-1.0, and self-hosting its voice stack is still undocumented.

Self-hosted Discord alternatives 2026 comparison: Stoat, Matrix/Element, Mattermost, Rocket.Chat, Zulip, and Mumble with their voice and video reality

The one-paragraph version: There is no drop-in self-hosted replacement for Discord in 2026, and any guide that hands you a single “winner” is skipping the hard part. The honest answer is a match to what you use Discord for. Want the closest-looking clone? Stoat (the platform formerly called Revolt) - but it is pre-1.0 and self-hosting its voice/video is still immature. Want a federated text community with real native group calling? Matrix + Element, at the cost of the most complex setup. Running a team or workplace? Mattermost or Rocket.Chat. Threaded text only? Zulip, with the cleanest license. Just voice for a gaming group? A tiny Mumble server. The realistic outcome most communities land on is a combination - text on one tool, voice on another - plus accepting real onboarding drop-off. This guide gives you the piece the copy-paste roundups leave out: current versions, license caveats, the honest voice/video reality, and the resource footprints that are actually documented.

Most competing roundups converge on the same six-to-eight tools and produce near-identical pros/cons lists, but they share three universal blind spots: no real hardware requirements, no honest voice/video assessment, and no actual migration path. That trio is exactly where a PC-hardware-first site should be useful, so that is where this article spends its words.

The quick verdict, by use case

Your priorityBest pickThe honest caveat
Closest Discord clone (look and feel)Stoat (formerly Revolt)Pre-1.0; self-hosting voice/video is transitional and undocumented
Federated text community, many spaces one loginMatrix + ElementHardest setup; no native voice channels without extra services
Team / workplace (Slack-style)Mattermost or Rocket.ChatGroup voice and video sit behind paid tiers or external add-ons
Threaded, organized textZulipNo native voice or video at all
Low-latency voice for a gaming groupMumbleVoice only; dated interface; no async text chat

The recurring pattern in real community threads is that no single self-hosted product covers Discord’s full text-plus-voice-plus-video-plus-forum-plus-roles-plus-bots bundle, so people deploy a stack: Matrix or Zulip for text alongside Mumble or Jitsi for voice. Keep that in mind before you expect one install to do everything.

Stoat (formerly Revolt): the closest clone, still under construction

First, the naming, because half the guides online are stale on it. Revolt was renamed to Stoat. The GitHub organization migrated from revoltchat to stoatchat and now describes itself as “Open source, user-first chat platform. (formerly Revolt).” The self-hosted repository documents a breaking change dated October 5, 2025 that renamed the Docker Compose project from revolt to stoat, and revolt.chat now redirects to stoat.chat. If you find a 2022-era “Revolt review,” it is describing this same software under its old name.

Stoat is the pick when you want the interface that looks and feels most like Discord. The backend, written in Rust, is at v0.13.9, published July 2, 2026 - meaning it is still pre-1.0 software. It self-hosts via Docker Compose from the stoatchat/self-hosted repo, whose README recommends a minimum footprint of at least 2 vCPUs and 2 GB of memory - notably the only candidate here that publishes a clear minimum.

The honesty gap the ranking list-posts gloss over is voice and video. Stoat is migrating its voice stack to LiveKit (replacing the older “Vortex” voice server), and self-hosting voice/video is transitional: documentation is essentially non-existent, community front-end patches have been needed to enable features, and the video implementation is incomplete - the self-hosted README even warns the server will kick any user who tries to stream video larger than a configured maximum. Voice also requires opening RTC ports (7881/tcp plus a 50000-50100/udp range). Community self-host reports back this up, describing a buggy interface, missing features, channel-creation quirks, and no built-in way to stop random users spinning up servers on your instance. Verdict: best UX match, weakest maturity. Use it for experimentation; do not bet a large community on it yet.

Matrix + Element: the most-deployed, most-federated, hardest to master

Matrix is a protocol, not one app. You run a homeserver and users connect with a client - usually Element. The recommended homeserver is Synapse, currently v1.155.0 (June 16, 2026). An important caveat for anyone following old links: the original matrix-org/synapse repository is archived and read-only; active development moved to the element-hq/synapse fork. Synapse is dual-licensed - free under AGPLv3, or under a paid Element Commercial License - an open-core arrangement that followed the 2024 relicensing.

There is a second-generation Go homeserver, Dendrite (v0.15.2, August 15, 2025), but its README states it is in maintenance mode, meaning only security fixes are applied, and the project positions it for small deployments (tens to hundreds of users) and in-browser or mobile peer-to-peer nodes rather than large community hosting. For a Discord replacement you want Synapse.

Matrix’s genuine, unique draw is federation: it is the one option that mirrors Discord’s multi-server model by letting you join many communities from a single login. That is why power users stay on it. The recurring first-hand complaint is voice: Matrix has no always-on, Discord-style voice channels by default. Native group voice and video come from Element Call (v0.20.3, June 29, 2026), which Element’s own writeup describes as built on MatrixRTC using LiveKit as its backend. Self-hosting it means deploying a LiveKit SFU plus a MatrixRTC authorization service alongside the homeserver. Once running, it supports 1:1 calls, ad-hoc in-room calls, and standalone conferences; Element’s own performance testing states that a single standard VPS machine can host up to 500 participants. The second recurring complaint is the client model itself - the Space-and-room structure is widely described as unintuitive, and setup documentation as scattered. Difficulty reports are split (some call basic server standup easy; Matrix-plus-voice is where people get stuck), and the community matrix-docker-ansible-deploy playbook is the usual recommendation to ease the base install. Verdict: best for a federated text community that will invest the setup time; the strongest native group-call story here, but not the easiest.

Mattermost and Rocket.Chat: team chat, not gaming communities

These two are consistently classed by their own users as Slack/Teams replacements rather than community or gaming Discord replacements - more corporate, with per-user considerations even when self-hosted.

Mattermost is at v11.8.2 (June 26, 2026), which includes a medium-severity security fix, so keep it patched. Two free self-host paths exist: Team Edition is free and open source under the MIT license (a single Linux binary with PostgreSQL), and Mattermost Entry is a free, feature-capped tier of the Enterprise Edition (see editions and offerings). The Enterprise binary itself is commercial (open-core). On voice: the Calls plugin is bundled by default and does WebRTC voice and screen sharing - but the free Team/Entry editions get only 1:1 calling and screen sharing (up to 40 minutes); group calling with no time limit requires a paid Professional tier or above, and scaling past roughly 50 concurrent callers needs a separate RTCD service to offload media. (Third-party pages cite Professional at around $10/user/month billed annually, but that figure was not confirmed on Mattermost’s own pricing page - treat the dollar amount as unverified; the tier structure is from official docs.)

Rocket.Chat is at v8.5.1 (June 15, 2026), MIT-licensed but with an open-core split (an ee enterprise folder and paid premium features). It self-hosts via official Docker Compose (Rocket.Chat plus MongoDB). Its video story is the weakest-by-default of the team tools: video conferencing is not native WebRTC out of the box - the documented standard path integrates an external Jitsi provider you point at your own Jitsi Meet domain. Verdict: reach for these if you are replacing Slack or standing up a workplace; they are a poor fit for a casual gaming friend-group where free, low-friction group voice is the whole point.

Zulip: excellent threaded text, no native calling

Zulip Server 12.1 (June 26, 2026) is the cleanest license of the bunch - fully open source under Apache 2.0, with no open-core caveat on the server. Its threaded model is genuinely good for organized, high-volume text discussion. But for a Discord replacement it has the weakest voice story of all the candidates: Zulip has no native built-in voice or video calling. It only inserts call links via a configured external provider - Jitsi Meet (default), Zoom, BigBlueButton, or Nextcloud Talk. There are no persistent voice channels and no built-in media server. Verdict: a strong pick if your community lives in text and you are content bolting voice on externally; a poor standalone Discord swap if voice matters.

This is the single sharpest differentiator, and almost no competing roundup benchmarks it. Here is how native, self-hosted voice and video actually stand today:

ToolNative group voice/video?How it worksThe real cost
Matrix + ElementYesElement Call on MatrixRTC + LiveKit SFUMust deploy LiveKit + auth service; scales to ~500/call
MattermostYes (bundled)Calls plugin, WebRTCFree tiers = 1:1 up to 40 min; group needs paid tier; 50+ callers need RTCD
StoatIn transitionMigrating to LiveKit voiceUndocumented self-host; community patches needed; video incomplete
Rocket.ChatNot by defaultExternal Jitsi integrationYou run a separate Jitsi instance
ZulipNoExternal call links onlyNo persistent voice channels
MumbleVoice onlyOpus codec (which itself scales up to 510 kbps)No text/video; low latency; tiny footprint

Two practical takeaways. First, screen sharing - an under-served sub-intent that appears in the related searches for this topic - is best served today by Mattermost’s bundled Calls plugin, then by Matrix via Element Call; Rocket.Chat routes it through Jitsi, and Zulip cannot do it natively. Second, if all you need is voice for a gaming group, a self-hosted Mumble server remains the community favorite: it is praised for low latency and near-zero resource use, it uses the Opus codec (which itself scales up to 510 kbps), and its main limitation is that it is voice-only with a dated interface and no async chat.

Resource footprint: what is actually documented

A word of caution, because this is where roundups invent numbers. Of these projects, only Stoat publishes a clear minimum in the sources checked: at least 2 vCPUs and 2 GB of memory. Synapse, Mattermost, Rocket.Chat, and Zulip did not surface hard minimums on the pages reviewed, so anyone quoting exact RAM figures for those is usually guessing.

ToolDocumented minimumNotes
Stoat2 vCPUs, 2 GB RAMFrom the self-hosted README
Matrix (Synapse)Not published on pages checkedPlan by workload; voice adds a LiveKit SFU
MattermostNot published on pages checkedSingle binary + PostgreSQL; RTCD for scale
Rocket.ChatNot published on pages checkedRuns with MongoDB
ZulipNot published on pages checkedInstall script or Docker

The honest planning rule: a small, text-only community is light on any of these, but the moment you add native voice/video the picture changes - a LiveKit SFU for Matrix or an RTCD service for Mattermost adds both CPU load and real bandwidth. If you want to size a chat server against the rest of your homelab, our Docker RAM planner helps you budget memory across a multi-service stack, and chat servers are firmly in the “give them headroom” category.

Migration reality: expect friction, plan to dual-run

The 2026 wave of interest is driven by Discord’s age-assurance rollout, which introduced age-verification methods (an on-device facial age estimate or an ID/selfie check) and pushed communities to look for exits. But wanting to leave and actually moving your people are different problems, and the community consensus is blunt about the gap.

None of these tools ship a real Discord-community migration path or import tooling - that is the third universal gap across every competing guide. And the single biggest reason people give up and stay on, or return to, Discord is onboarding friction for non-technical members. Discord’s “open this link and you are in the voice call” flow has no self-hosted equal; even a few-dollars-a-year hosted alternative adds enough friction to stall adoption among casual users. Churn runs both ways, too - screen-sharing quality is a documented reason some groups moved to Discord in the first place.

So the realistic plan is not a clean cutover. It is:

  1. Match the tool to your primary need using the verdict table above - text-first vs voice-first is the fork that matters most.
  2. Accept a combination stack if you need both - text on Matrix or Zulip, voice on Mumble or Jitsi - because no single product covers the whole bundle.
  3. Dual-run the self-hosted space alongside Discord for a while, and expect meaningful drop-off from members who will not install a second app.

If self-hosted chat is your first serious service, our self-hosting essentials priority guide covers what to stand up first and why, the broader self-hosted apps to replace SaaS roundup sets the context, and since Matrix and Rocket.Chat both ship Compose files, the Docker Compose starter-stack tutorial is the fastest way to get a test instance running.

Bottom line

Do not chase a single “best” self-hosted Discord alternative - it does not exist in 2026. Decide whether your community is fundamentally about text or voice, pick the tool that owns that axis (Matrix or Zulip for text, Mumble for voice, Stoat if you truly need the Discord look and can tolerate pre-1.0 rough edges, Mattermost or Rocket.Chat for teams), and plan for the migration friction that sinks most attempts. Get the voice/video architecture and the onboarding right and the tool choice mostly takes care of itself.

Frequently asked questions

Can Discord be self-hosted?
No - Discord itself is a closed, proprietary service you cannot run on your own server. What you can self-host is an alternative. In 2026 the leading self-hosted options are Stoat (the platform formerly called Revolt), the Matrix protocol paired with the Element client, Mattermost, Rocket.Chat, and Zulip. None is a drop-in clone of Discord’s exact text-plus-voice-plus-video-plus-bots bundle. Stoat comes closest on interface, Matrix comes closest on federated communities and native group calling, and the others lean toward team-chat use. Pick by whether your priority is text community or persistent voice channels.
What is the best self-hosted Discord alternative?
It depends on what you actually use Discord for. For a text-first community that wants to join many spaces from one login, Matrix with the Element client is the most-deployed choice. For the closest visual Discord clone, Stoat (formerly Revolt) is the pick - but it is still pre-1.0 (backend v0.13.9 as of July 2026) and voice/video self-hosting is immature. For a team or workplace, Mattermost (v11.8.2) or Rocket.Chat (v8.5.1) fit better. For low-latency gaming voice only, a self-hosted Mumble server is the long-standing favorite. There is no single winner across every use case.
Is there a self-hosted Discord alternative with screen sharing?
Yes, but the quality and setup effort vary a lot. Mattermost’s bundled Calls plugin does WebRTC voice and screen sharing out of the box, though the free tiers cap calls at 1:1 for up to 40 minutes and group calling needs a paid tier. Matrix delivers screen sharing through Element Call, which requires you to deploy a LiveKit media server plus an authorization service alongside your homeserver. Rocket.Chat routes video and screen sharing through an external Jitsi instance you point it at. Zulip has no native calling and only inserts links to external providers like Jitsi or Zoom.
Is Revolt the same as Stoat?
Yes. The project formerly known as Revolt was renamed Stoat. The GitHub organization moved from revoltchat to stoatchat and now describes itself as ‘formerly Revolt,’ and revolt.chat redirects to stoat.chat. The self-hosted repository documents a breaking change from October 5, 2025 that renamed the Docker Compose project from revolt to stoat. If you see an older guide recommending ‘Revolt’ as a self-hosted Discord clone, it is talking about the same software - just under its previous name. The backend is written in Rust and is still pre-1.0.
How much RAM does a self-hosted Discord alternative need?
It varies widely and, honestly, most projects do not publish a hard minimum. The one candidate that states a clear figure is Stoat, whose self-hosted README recommends at least 2 vCPUs and 2 GB of memory. Matrix (Synapse), Mattermost, Rocket.Chat, and Zulip did not surface firm minimums on the pages checked, so plan by workload rather than a published number - a small text-only community is light, but adding native voice/video (a LiveKit SFU for Matrix, RTCD for Mattermost at 50-plus concurrent callers) raises both CPU and bandwidth needs significantly.
Why are people leaving Discord in 2026?
The single biggest driver behind the 2026 wave of self-hosting interest is Discord’s age-assurance rollout, which introduced face-scan-or-ID verification for users. That pushed a fresh batch of communities to look for exits, and the top self-hosted-Discord discussion threads open by citing it directly. Privacy and control over your own data are the recurring motivations. The catch, repeated across those same community threads, is that migration is hard: non-technical friends resist installing a new app, and Discord’s frictionless ‘click one link and you’re in the voice call’ onboarding has no self-hosted equal yet.
Is Matrix hard to self-host?
Reports are genuinely split, but Matrix is consistently the hardest of these options to get fully working - especially voice. The homeserver itself (Synapse, the recommended and most-deployed choice) installs fine, but community reports describe the Element client’s Space-and-room model as unintuitive and setup documentation as scattered. The bigger hurdle is voice: Matrix has no always-on Discord-style voice channels by default. Native group calling comes from Element Call, which requires deploying a separate LiveKit SFU and a MatrixRTC authorization service. Tooling like the community matrix-docker-ansible-deploy playbook eases the base install, but the voice add-on is where most people get stuck.

Evidence ledger

Last updated
Methodology
This guide was written and edited by Lowell K. Wood IV in St. Louis County, MO. Specs and prices verified against vendor and project documentation current on the date above. Full editorial standard: methodology.
Update log
  • 2026-07-03 — Last reviewed and updated.
Corrections
Spotted an error or a stale number? Email hello@techfuelhq.com. Confirmed corrections are added to the update log above.

About the author

Written by Lowell K. Wood IV, who builds and runs TechFuelHQ from St. Louis, Missouri.