2019-10-01 22:01:52 -05:00
# Dendrite [![Build Status](https://badge.buildkite.com/4be40938ab19f2bbc4a6c6724517353ee3ec1422e279faf374.svg?branch=master)](https://buildkite.com/matrix-dot-org/dendrite) [![Dendrite Dev on Matrix](https://img.shields.io/matrix/dendrite-dev:matrix.org.svg?label=%23dendrite-dev%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite-dev:matrix.org) [![Dendrite on Matrix](https://img.shields.io/matrix/dendrite:matrix.org.svg?label=%23dendrite%3Amatrix.org&logo=matrix&server_fqdn=matrix.org)](https://matrix.to/#/#dendrite:matrix.org)
2017-01-20 12:25:51 -06:00
2020-07-14 06:58:00 -05:00
Dendrite is a second-generation Matrix homeserver written in Go. It is not recommended to use Dendrite as
a production homeserver at this time as there is no stable release. An overview of the design can be found
in [DESIGN.md ](docs/DESIGN.md ).
2017-01-20 12:25:51 -06:00
2020-07-14 06:58:00 -05:00
# Quick start
Requires Go 1.13+ and SQLite3 (Postgres is also supported):
```bash
$ git clone https://github.com/matrix-org/dendrite
$ cd dendrite
# generate self-signed certificate and an event signing key for federation
$ go build ./cmd/generate-keys
$ ./generate-keys --private-key matrix_key.pem --tls-cert server.crt --tls-key server.key
# Copy and modify the config file:
# you'll need to set a server name and paths to the keys at the very least, along with setting
# up the database filenames
$ cp dendrite-config.yaml dendrite.yaml
# build and run the server
$ go build ./cmd/dendrite-monolith-server
$ ./dendrite-monolith-server --tls-cert server.crt --tls-key server.key --config dendrite.yaml
```
Then point your favourite Matrix client at `http://localhost:8008` . For full installation information, see
[INSTALL.md ](docs/INSTALL.md ). For running in Docker, see [build/docker ](build/docker ).
# Progress
We use a script called Are We Synapse Yet which checks Sytest compliance rates. Sytest is a black-box homeserver
test rig with around 900 tests. The script works out how many of these tests are passing on Dendrite and it
2020-08-12 04:50:52 -05:00
updates with CI. As of August 2020 we're at around 52% CS API coverage and 65% Federation coverage, though check
2020-07-14 06:58:00 -05:00
CI for the latest numbers. In practice, this means you can communicate locally and via federation with Synapse
servers such as matrix.org reasonably well. There's a long list of features that are not implemented, notably:
- Receipts
- Push
- Search and Context
- User Directory
- Presence
- Guests
We are prioritising features that will benefit single-user homeservers first (e.g Receipts, E2E) rather
than features that massive deployments may be interested in (User Directory, OpenID, Guests, Admin APIs, AS API).
This means Dendrite supports amongst others:
- Core room functionality (creating rooms, invites, auth rules)
- Federation in rooms v1-v6
- Backfilling locally and via federation
- Accounts, Profiles and Devices
- Published room lists
- Typing
- Media APIs
- Redaction
- Tagging
2020-08-12 04:50:52 -05:00
- E2E keys and device lists
2017-08-21 11:34:05 -05:00
2017-10-10 03:33:41 -05:00
# Contributing
2017-01-20 12:25:51 -06:00
2020-02-06 05:54:26 -06:00
Everyone is welcome to help out and contribute! See
2020-05-14 10:49:18 -05:00
[CONTRIBUTING.md ](docs/CONTRIBUTING.md ) to get started!
2017-01-20 12:25:51 -06:00
2017-10-10 03:33:41 -05:00
# Discussion
2017-01-20 12:25:51 -06:00
2017-10-10 03:33:41 -05:00
For questions about Dendrite we have a dedicated room on Matrix
2020-02-06 05:54:26 -06:00
[#dendrite:matrix.org ](https://matrix.to/#/#dendrite:matrix.org ). Development
discussion should happen in
2019-03-27 12:36:45 -05:00
[#dendrite-dev:matrix.org ](https://matrix.to/#/#dendrite-dev:matrix.org ).
2017-01-20 12:25:51 -06:00
2020-02-28 08:46:03 -06:00