My personal XMPP server and some more self-hosting plans

Over the last few days I set up and fine-tuned my own (single-user) self-hosted XMPP/Jabber server, using Prosody.

The initial process took only 20 minutes, and so far Prosody seems to be very modest in CPU and RAM usage. Some more advanced configuration decisions, like offering services such as a SOCKS proxy over HTTP took me a few days to get right, but with the help received from the Prosody XMPP chatroom, I was able to get everything working and pass the compliance test supporting all non-deprecated or non-freedom-respecting XMPP extensions (for example, I decided not to support XEP-0357: Push Notifications because it re-centralises what is meant to be a federative ecosystem).

I am tempted to write a full installation tutorial, but there’s no real reason to duplicate effort, because Prosody’s 1st-party documentation was truly enough to get 90% of the process done. So I will probably only document the remaining 10% at some point (which is mostly the issue of reverse-proxying Prosody’s http interface behind Apache httpd in order to get a LetsEncrypt TLS certificate).

If you want to contact me but do not like email for some reason, now you can add JID dkr@tarxjf.info (OTR and OMEMO encryption supported), or join this public chatroom blog@rooms.tarxjf.info. Email remains my preferred means of communication though.

If the server continues to run without problems, I’ll add it in my contact page, and maybe also on the blog’s template under every article, as an alternative to a commenting system (something that I would like to have but I don’t want to be serving Javascript or maintaining an SQL database if I can avoid it). Unique rooms for each post, automatically generated at website compilation time maybe?


Setting up my own XMPP server was partly motivated by me simply wanting to learn how to do it, but it’s also because as time goes on, I feel more and more concerned about the fragmentation of the Web. With every aspect of the Web being silo-ed away in proprietary platforms, I want to showcase best practices. A federative communications like XMPP is one such best practice: I could just get a JID from a big public server, but by running my own single-user server, I actually put one of the protocol’s advantages in actual use.

Another protocol that caught my attention is ActivityPub, a recently standardised open social networking protocol, notably implemented by Mastodon, a decentralised microblogging platform. Now, I’m not interested in joining a social network, not even a self-hosted one. So I’m very interested to see how else could I make use of ActivityPub. A blog commenting system is again the first idea that comes to mind.

Self-hosting my email is also a priority, since my domain name registrar is soon taking away the mail hosting package I am currently using.

And on a smaller scale, I want to soon make the Atom and RSS feeds on my blog and my other minisites more visible and more useful. I also want to finally set up public git repos for these projects, and for the HTML templates and CSS used to generate my website.

Down to the plumbing level, I know I should finally start serving my websites on IPv6 in addition to IPv4.

More articles

  • Website expansion updates
  • Back online!
  • Making this website a bit more W3C standards-compliant