Prosody vs Synapse

I recently decided to experiment by setting up a Matrix account. And because I always dive head first into things, I of course set up my own Matrix server rather than making an account on a public one. At the same time, I noticed my Jabber/XMPP account had stopped working, so I decided to self-host an XMPP server too.

For Matrix, I used Synapse as that seems the most popular and well-supported implementation. It was mostly just a matter of installing the Ubuntu packages and starting the service, but there was a bit of manual work:

  • The default config file is set up to store data in SQLite, but using SQLite is advised against, so I needed to manually create a PostgreSQL database and username, and add those to the config file.
  • The default config is missing macaroon_secret_key and registration_shared_secret settings, which are kinda important.
  • Because I wanted the server to be hosted on a different VPS than my website, I needed to set up delegation and some of the documentation online on how to do that isn’t quite correct.

For XMPP, I used Prosody and the install went very smoothly. Again, just install the package and start the service. The only manual work was:

  • Needed to enter a host name in the example config file.
  • Ubuntu doesn’t give access to LetsEncrypt certificates to the prosody user, so I needed to fix permissions.

Overall, I would highly recommend Prosody as an XMPP server. Synapse is a good Matrix server too, but the Debian/Ubuntu packagers could take a look at Prosody for an example of a smooth install.

My Matrix account is @me:toby.ink.

My XMPP account is me@toby.ink.