Dendrite is a second-generation Matrix homeserver written in Go. It intends to provide an efficient, reliable and scalable alternative to Synapse: - Efficient: A small memory footprint with better baseline performance than an out-of-the-box Synapse. - Reliable: Implements the Matrix specification as written, using the same test suite as Synapse as well as a brand new Go test suite. - Scalable: can run on multiple machines and eventually scale to massive homeserver deployments. Dendrite is beta software, which means: - Dendrite is ready for early adopters. We recommend running Dendrite with a PostgreSQL database. - Dendrite has periodic releases. We intend to release new versions as we fix bugs and land significant features. - Dendrite supports database schema upgrades between releases. This means you should never lose your messages when upgrading Dendrite. This does not mean: - Dendrite is bug-free. It has not yet been battle-tested in the real world and so will be error prone initially. - Dendrite is feature-complete. There may be client or federation APIs that are not implemented. - Dendrite is ready for massive homeserver deployments. There is no high-availability/clustering support. # Configuration A database must be created with UTF-8 encoding configured, or you will likely run into problems with your Dendrite deployment. ``` sudo -u postgres createuser --pwprompt dendrite sudo -u postgres createdb --owner=dendrite --encoding=UTF-8 dendrite ``` All Matrix homeservers require a signing private key, which will be used to authenticate federation requests and events. _Important Warning_ You must treat this key as if it is highly sensitive and private, so never share it with anyone. No one should ever ask you for this key for any reason, even to debug a problematic Dendrite server. Make sure take a safe backup of this key. You will likely need it if you want to reinstall Dendrite, or any other Matrix homeserver, on the same domain name in the future. If you lose this key, you may have trouble joining federated rooms. ``` sudo -u dendrite generate-keys -private-key /etc/dendrite/matrix_key.pem ```