Hi there,
I would like to host my own Synapse server, but I am not sure where to start.
I would like to be able to use Nginx Proxy Manager as the reverse proxy and I’ve read that you can use example.eu for the username, while actually using a subdomain like matrix.example.eu?
Is there some good documentation out there and what would people recommend? I would like to run it in a container on Proxmox, but Docker could also be an option?
Doesn’t synapse need like, a server cluster to run? The self-hostable service is supposed to be something owo, I think.
Not at all. I have my instance sitting on 100MG of RAM and 0% cpu usage. There’s only 3 users that barely use it, but there it is.
It scales by number of users.
It’s true that it’s a resource hog, due to being written in python (who the hell though that), but it all depends on usage.
No it works perfectly fine on a relatively small VPS. Ideally you’d want some redundancy for a form of communication but some people (like me) just wing it lol
Look for the docs about jemalloc, may push down memory usage to ⅕. I’d say use conduwuit because it’s way more resource conservative… but it’s dead now.
Its been forked to tunnel but with an uwu joke in the spelling
A lot of memory, and a lot of disk space.
Synapse is the reference platform, and even if they don’t, it feels as if the Matrix team make changes to Synapse and then update the spec later. This makes it hard for third-party servers (and clients!) to stay compliant, which is why they rise and fall. The spec management of Matrix is awful.
So, while suggestions may be to run something other than Synapse - which I sympathize with, because it’s a PITA and expensive to run - if you go with something else just be prepared to always be trailing. Migrating server software is essentially impossible, too, so you’ll be stuck with what you pick.
Matrix is one of the worst-managed best projects to come out in decades.
Conduit is in no way compact either. I tuned its caches because two gigs of ram seemed ridiculous for a single-user instance but I only got the mobile client sync lag as a result.
XMPP used to be so much nicer…
They are the definition of move fast and break things. And they just keep breaking things while not even being that fast. But still there is nothing to replace it and the work they are doing is valuable.
I host Synapse using this playbook. I can highly recommend it - the instructions are very clear and detailed and ongoing maintenance is straightforward too (just git pull and redeploy, and 5% of the time modify a deprecated variable).
As for how to delegate to a subdomain - that’s covered here. Basically - you set it up on
matrix.example.eu
and then have a “well known” file hosted atexample.eu
that tells other clients/servers where to look.Why synapse?
Its a good choice for max stability, but its by far the heaviest and most resource intense server out there, and probably overkill for a few user installation.
What do you suggest? It’s only intended for a few users, but I’d still like to have the most features available to the users.
Tuwunel, the sequel of conduwuit.
Go with conduwuit today, then upgrade to tuwunel as soon as they release.
There is a post about that in this community.
From what I read, using anything but Synapse requires to compromise on features/compatibility. I know this is not the dev’s fault, it’s from the way the Matrix spec evolve. Do you know of any resource regarding the current features/compatibility of tuwunel/conduwuit? I am particularly curious about:
- bridges
- element-call
- threads
- session verification (e.g. emoji comparison over federation)
deleted by creator
Which one can be hosted on truenas scale?
Synapse has become open-core and the possible alternatives are either abandoned or are currently in a really unclear state. And due to how Matrix federation works, it is quite difficult to change anything later and if you are unhappy with the setup you have basically burned a domain and need to start fresh on another. If you just want a chat server I would rather suggest to set up a XMPP server with a Slidge.im Matrix bridge.
That said: there are easy to use official Docker containers for Synapse, and you just need a redirect in your reverse-proxy for some sub-directories to put it on the same domain than something else. There are also some other, more complex ways to do it, but just redirecting the subdirectories is the easiest.
That would regio explain with there are so few matrix servers out there compared to Lemmy or Mastodon.
If you want the new mobile client “element x” to work, you will need element-call on the server (a decentralized webrtc based call system). This currently only really works in combination with synapse, so i would go with synapse. Either the ansible playbook as mentioned by others, or look into the still quite new ESS community edition.