For Matrix self-hosting in 2026, Synapse is the safe choice and Tuwunel is the lightweight one. Synapse, the reference homeserver from Element, supports the most features and has the largest body of documentation. Tuwunel, a Rust server that succeeded conduwuit, uses far fewer resources and suits families, friend groups and small teams. Conduit, the original Rust server, is still developed but labelled beta, and Dendrite is in maintenance mode with security fixes only, so it is not a good starting point. Whichever you pick, you also need a domain, HTTPS, and a decision about your server name that you cannot change later.
What you are actually running
Matrix is an open, federated chat protocol. A homeserver stores your users' accounts and room history and federates with every other Matrix server, so your users can join rooms hosted anywhere. People connect with a client such as Element, which works with any homeserver. You self-host the homeserver; the client is usually just an app.
This makes Matrix a strong self-hosted alternative to Slack and Discord, with end-to-end encryption and bridges to other networks.
The four servers compared
| Synapse | Conduit | Dendrite | Tuwunel | |
|---|---|---|---|---|
| Language | Python (with Rust parts) | Rust | Go | Rust |
| Maintainer | Element | Timo Kösters and contributors, hosted under Famedly on GitLab | Element | matrix-construct, with full-time sponsored staff |
| Licence | AGPL-3.0 | Apache-2.0 | AGPL-3.0 | Apache-2.0 |
| Status | Stable, reference implementation | Beta | Maintenance mode (security fixes only) | Stable; official successor to conduwuit |
| Database | PostgreSQL (SQLite for testing only) | Embedded (RocksDB or SQLite) | PostgreSQL or SQLite | Embedded (RocksDB) |
| Latest release (as of Oct 6, 2026) | v1.162.0, Sep 29 | v0.10.15, Sep 30 | Last Docker image Aug 2025 | v1.9.3, Sep 25 |
| Resource use | Highest | Low | Moderate | Low |
| Best for | Large communities, organisations, newest Element features | Tiny servers, experiments | Existing deployments only | Families, friends, small teams |
Release and activity data for Synapse and Tuwunel comes from the appsgit catalog: Synapse logged 817 commits in the last 12 months and Tuwunel 2,186. Conduit's figures are from its GitLab project.
Synapse
Server for Matrix, an open standard for decentralized persistent communication.
Tuwunel
High-performance and feature-rich chat server for Matrix, and the successor to conduwuit (fork of Conduit).
Synapse: the most complete homeserver
Synapse is where new Matrix features appear first and the server most bridges, bots and admin tools are tested against. Element moved it to the element-hq organisation and relicensed it under AGPL-3.0 (with a commercial licence also available) in late 2023.
Strengths:
- Completeness. If a feature exists in the Matrix spec or in Element's newest clients, Synapse is the most likely server to support it.
- Scaling. Workers let you split a busy server across processes.
- Ecosystem. Official Docker images (
matrixdotorg/synapseandghcr.io/element-hq/synapse), and the widely usedmatrix-docker-ansible-deployplaybook that sets up Synapse with Postgres, Element, a TURN server and bridges.
Trade-offs: it needs PostgreSQL (Synapse's own docs say SQLite is only for testing), and it uses noticeably more memory than the Rust servers, especially once users join large federated rooms. Plan for a proper VPS or home server rather than the smallest instance.
Tuwunel: lightweight and actively funded
Tuwunel describes itself as a high-performance Matrix homeserver in Rust and the official successor to conduwuit. It is "primarily sponsored by the government of Switzerland", where it is deployed for citizens, and is developed by full-time staff.
Why self-hosters like it:
- One container, no external database. RocksDB is embedded, so a basic deployment is a single service plus a reverse proxy.
- Low resource use. It is comfortable on small VPS instances and home servers.
- Easy upgrades. The project states that downgrading is always safe, and it migrates Conduit and conduwuit databases automatically on first start.
- Packaging. Docker images (
jevolk/tuwunelandghcr.io/matrix-construct/tuwunel, both amd64 and arm64) plus packages for Debian, Ubuntu, Fedora, Arch, Alpine, NixOS and others.
The main limitation is migration from Synapse, which is planned but not supported yet. Some newer Element features and admin tools are built against Synapse first, so check what you need before choosing.
A note on names: the original conduwuit repository has been archived. Besides Tuwunel, a separate community fork called continuwuity also continues that codebase.
Conduit: the original, still in beta
Conduit started the Rust homeserver movement, and its goal remains "an efficient Matrix homeserver that's easy to set up and just works", including on a Raspberry Pi. It is still released regularly. Its README is candid that it is beta: you can join and use most rooms, but a few features are missing, including emoji verification for encrypted chats over federation and outgoing read receipts, typing notifications and presence over federation.
Choose Conduit if you want the most minimal option and can live with those gaps. For most people starting fresh, Tuwunel offers the same lightweight design with a faster pace of development.
Dendrite: do not start here
Dendrite was Element's second-generation homeserver in Go. Its README now states it is in maintenance mode, "meaning only security fixes are being applied". If you run Dendrite today, it keeps working, but plan a move. For a new server, pick Synapse or Tuwunel.
How to deploy any of them
The pieces are the same regardless of server:
- Choose your server name. User IDs look like
@alice:example.com. The server name (example.com) is permanent, so use a domain you will keep. - Delegate federation. You can run the server on
matrix.example.comwhile user IDs useexample.com, by serving two small JSON files athttps://example.com/.well-known/matrix/serverand/.well-known/matrix/client. That also removes the need to open port 8448. - Put it behind a reverse proxy with HTTPS. Caddy does this in a few lines; see the Caddy guide, or the Traefik guide if you already use labels.
- Run it with Docker Compose. Keep the config file and data directory in bind mounts, pin the image version and back up the data directory (and Postgres for Synapse). Our Docker Compose tutorial covers the patterns.
- Lock down registration. Disable open registration or require registration tokens, otherwise spammers will find your server.
- Test federation with a public federation tester before inviting people.
Voice and video calls need more: a TURN server for one-to-one calls, and Element's newer group calling relies on a separate real-time media backend. Budget time for these if calls matter to you.
Our recommendation
- A family or a group of friends: Tuwunel on a small VPS or home server.
- A company, an open-source community or a public server: Synapse with PostgreSQL.
- An existing Dendrite server: keep it patched and plan a migration.
- Just curious: Tuwunel or Conduit, because a single container is easy to throw away.
If you would rather run a simpler, non-federated team chat, compare Mattermost vs Rocket.Chat and browse the team chat category. New to running servers? Start with our self-hosting roadmap.