explaingit

matrix-org/dendrite

5,640GoAudience · ops devopsComplexity · 4/5Setup · hard

TLDR

Dendrite is a Matrix homeserver written in Go, software that manages accounts, stores messages, and connects with other servers so people can send messages and make calls without relying on a single company.

Mindmap

mindmap
  root((repo))
    What it does
      Matrix homeserver
      Message storage
      Federation support
    Tech stack
      Go
      PostgreSQL
      nginx
    Requirements
      Domain name
      SSL certificate
      Reverse proxy
    Features
      Room creation
      Media uploads
      Push notifications
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Run your own private Matrix messaging server for a team or community, independent of any company

USE CASE 2

Connect and exchange messages with users on other Matrix servers through built-in federation

USE CASE 3

Host end-to-end encrypted communication using a more memory-efficient alternative to Synapse

USE CASE 4

Deploy a scalable Matrix server across multiple machines for larger communities

Tech stack

GoPostgreSQLSQLitenginx

Getting it running

Difficulty · hard Time to first run · 1day+

Requires a domain name, valid SSL certificate, PostgreSQL database, and a reverse proxy like nginx before the server is usable in production.

License not specified in the explanation.

In plain English

Dendrite is a server for the Matrix messaging protocol, written in Go. Matrix is an open standard for real-time communication that allows people to send messages, share files, and make calls in a way that is not controlled by any single company. To use Matrix, someone needs to run a homeserver, which is the software that manages accounts, stores messages, and connects with other servers in the network. Dendrite is one option for running that homeserver. The project was developed by the Matrix.org Foundation from 2019 to 2023 and is now maintained by Element at a separate repository. It was designed as a more efficient alternative to Synapse, the original and more widely used Matrix homeserver. Dendrite uses less memory than Synapse and is written to be scalable, meaning it can be configured to run across multiple machines if needed. For a working public deployment, you need a domain name, a valid security certificate for that domain, and a PostgreSQL database. SQLite works for testing but is not recommended for real use with many users. A reverse proxy like nginx is also recommended to sit in front of the server and handle incoming connections properly. Dendrite supports the core features people expect from a Matrix server: creating rooms, sending messages, end-to-end encryption key management, media uploads, push notifications, search, and connecting with users on other Matrix servers (called federation). As of early 2023, it passed 93% of the standard client compatibility tests and 100% of the server-to-server tests. The repo is noted as the archived Matrix.org Foundation copy. Active development continues at element-hq/dendrite.

Copy-paste prompts

Prompt 1
How do I set up Dendrite as a Matrix homeserver on a VPS? I have a domain name and PostgreSQL running. Walk me through the nginx reverse proxy config and the dendrite.yaml configuration file.
Prompt 2
I want to migrate users from a Synapse homeserver to Dendrite. What compatibility limitations should I know about and what is the recommended migration path?
Prompt 3
Help me write a docker-compose.yml that runs Dendrite with PostgreSQL and an nginx reverse proxy, including Let us Encrypt SSL certificate setup.
Prompt 4
What Matrix features does Dendrite support in its current version, and what is missing compared to Synapse? I need to decide which homeserver to deploy.
Prompt 5
How do I enable and test federation on my Dendrite server so users can communicate with users on matrix.org and other public Matrix servers?
Open on GitHub → Explain another repo

← matrix-org on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.