Intro¶
This document is incomplete!
This guide is still a draft.
Questions?
If you have any questions, please ask them in our room: https://matrix.to/#/#main:continuwuity.org. If you have questions about this guide specifically, please ask me directly in my own room, https://matrix.to/#/#general:nexy7574.co.uk.
A little background¶
Continuwuity is a fork of the much-loved Matrix server, conduwuit, which itself is a fork of the Conduit Matrix server. Continuwuity is built with the goal of being the go-to choice for self-hosters.
Unlike Synapse, the other popular Matrix server implementation, Continuwuity is way easier to set up, maintain, and use. With Continuwuity, you get performance out of the door, without needing to tweak a million settings or set up a dozen "workers". All you need to do is run a binary or OCI image, and you're good to go. Continuwuity also aims to get the latest features and be a real landmark in the Matrix server ecosystem.
This guide is going to walk you through most of the steps required to set up a Continuwuity server, right from scratch. Feel free to use the table of contents to skip to whatever section is most relevant for you to start at!
Starting fresh? Move on to prerequisites.
Brief FAQ¶
I get asked a lot of questions frequently about Continuwuity, so I'll try to answer a few of them as best I can here.
I am commonly asked for a feature comparison, however, this isn't something I'm willing to both write and maintain, as the Matrix ecosystem is constantly and rapidly changing.
Why continuwuity instead of conduit & other forks?¶
Being a fork of conduwuit and consequently Conduit, many people ask why chose Continuwuity over upstream or another fork.
I can't really give a definitive answer on this as I've never actually asked people why they chose Continuwuity, however, some popular reasons include:
- A maintained version of conduwuit (since the database is incompatible with Conduit, so backgrading isnt possible)
- Rapid development pace with tangible feature updates
- Thriving community
- Clean cut development process that drastically lowers the barrier for contribution
- More features than other forks
At it's core, I wanted to fork conduwuit because I wanted to maintain the homeserver so that I didn't have to migrate all of my data to an incompatible database, and lose the features that conduwuit had over Conduit. I've spoken to the Conduit maintainer about porting some features over, however due to the differences in databases, I doubt there will be a full merge any time soon.
I would like to avoid explicitly naming other forks in a comparison as otherwise this FAQ that I intend to be helpful may end up being perverted into a hit piece, which is not my intention. Please feel free to contact me directly if you have specific questions, however, generally it boils down to one or more of:
- Continuwuity has more features than X
- Continuwuity is more actively developed than X
- Continuwuity has a richer community than X
Why not Dendrite?¶
Dendrite, although far more resource efficient than Synapse, is still not ready for production use. It is missing a lot of features and is no longer actively developed due to funding issues over at Element and the Matrix.org foundation. Continuwuity, however, being built on conduwuit, is actively developed and is not too far behind Synapse in terms of features.
I personally would have loved to use and hack on Dendrite, however, it's simply too far behind and also quite difficult to work on due to an incredibly complex codebase that is tangled in having functionality deferred to GMSL and other dependencies rather than having them actually in the server codebase itself.
Why not Synapse?¶
Synapse is a great server, however, it is incredibly resource hungry and requires a lot of configuration to get it to run well. If you aren't willing to set aside 4-8 cores, 8 gigabytes of RAM, potentially a >100 gigabytes of disk space, and spend several hours setting it up and tuning it to run well, then Synapse isn't going to work for you in the long run.
I liked conduwuit because it can run on a potato in comparison, so imo it's far friendlier for self-hosters and people who don't want to run a public server. Synapse is still better for public deployments as it has better and more abundant tooling to manage it, although continuwuity is catching up.
Continuwuity or continuwuity?¶
Either! They can be used interchangeably, and I don't even use them consistently.