About

Hi, I'm Luke (aka RuberDuck9)! I'm an 18 year old student from Maryland. I have a good amount of hobbies, but my main ones are computer architecture, electronics, homelabing, and amateur radio.


Contact

I'm not on most socials, so it may be a bit difficult to contact me, but below you can find some links to stuff that I use the most. Eventually, I get around to checking everything, but if you want to reach me quickly, Matrix is probably your best choice.

@ruberduck9:ruberduck9.xyz
github
email
pgp.asc

Languages

English - Fluent
German - B1-2
C, Verilog, Java


Luke Hooper's Website

Welcome!


Migrating Away from Discord - 2.20.26

I've known for a while now that I need to get off Discord (for so many reasons), but recently I've had that change more or less forced on me. Just a few weeks ago, Discord announced that they're going to roll out global age verification on their platform using government ID and/or ai data evaluation of your activity. I'm not exactly a fan of either of those options, so soon I started making plans to jump ship, although I was pretty quickly reminded of why I hadn't done so yet - it's just so overly complicated for what it should be.

When I first started looking into alternatives, I really only had two options in mind: XMPP and Matrix. Both are solid choices that pretty much accomplish the same task; however, Matrix is (at least from what I can tell) significantly more user-friendly. Normally, this wouldn't really be a consideration for me - I would just go with whatever application is best at its job - here, though, I had something else to keep in mind. Which brings me to arguably the hardest part of using any alternative messaging service (Signal, Matrix, etc.), and that's getting anyone to actually join you on it. Most of my friends (that I message on Discord at least) aren't into online privacy at all, so for them to switch to another service, it would have to be near identical to Discord in ease-of-use and simplicity, or they would just refuse. This ruled out XMPP immediately because I knew my friends would be unwilling to suffer through the initial setup, which is a shame considering that XMPP actually has many advantages over Matrix (largely metadata redaction, among other things). Around that time, the Discord backlash started to grow pretty substantial, and many Discord pixel-for-pixel clones started gaining traction, but none of them really stood out to me either. As much as I wanted to like them, I failed to find any that were also e2e encrypted, federated (so users registered across different home servers could communicate), and open source. This left me Matrix as my only real viable choice.

For something as established and old as Matrix is (12 years at the time of writing), I expected Matrix to be like the rest of my self-hosted projects - spin up a VM, copy and paste a Docker Compose, open a few ports in my reverse proxy, call it a day. However, this was *not* the case. For one, Matrix actually isn't a single monolithic program (neither is XMPP); Matrix is simply a protocol that lays out the framework for how a communications platform could work. To actually accomplish this, you need to find a server that implements the Matrix protocol. The most well-documented (supposedly) is Synapse, so that's what I went with. Although finding any reliable information on running it through Docker was nearly impossible, with their wiki split across multiple websites and foundations. Eventually, though, I got Synapse working and set up federation not long after. Next, I needed to set up a client to send and receive messages from my server. When it comes to clients for Matix, you actually have quite a few choices; however, by far the most popular and actively developed is Element, so that's what I decided to start with. Getting Element running through Docker wasn't as easy as it should've been either (mainly due to the same fragmented doc problem as Synapse), but eventually I got Element working too. I thought my job was done there, but I actually had one more thing to do - screensharing. While the base Synapse server does support basic calls (although they don't seem to work very well), it does not support screensharing, which is a must for getting any of my friends to migrate. To get this to work, I first had to set up a TURN server (I went with COTURN) and then link that to my Synapse server through the homeserver.yaml. Like this whole project, it ended up being more of a pain than I expected, but soon enough, I had voice calls and screensharing working across networks. Another tweak I made was to enable voice rooms in my Element client's config.json (for some reason, voice channels are still experimental and seem to depend largely on the client). The very last thing I had to do was make sure that I closed user registration on my home server so only I could make an account. The reason I had to do this is mainly due to Matrix's federated nature. As I understand it, if someone made an account on my server and then tried to join a room with something illegal in it, hosted on some other home server, my server would have to store it, which obviously isn't ideal. This ends up not being a huge deal, though, because thanks to Matrix's nature, users can still register an account on the base matrix.org domain and still have e2e encrypted conversations in rooms hosted on my server.

Now that I have the Matrix server up and running without a hitch (so far), I really have no complaints. To me, it does everything Discord could do, and even more in some cases (no more file size limits!). I'm certainly not dead set on using Matrix forever, especially if a strong alternative emerges in the near future, but for now it seems like the best option. Now, I just need to convince my friends to switch...




Librewolf No Webps Libreboot Internet Archive Powered by Debian Best Viewed with Any Browser Ublock Origin Now! VIM Right to repair Bookmark this page This website is cookie free

October 7th 2024 - Last updated 20 Febuary 2026


Open 24 Hours Under Construction\ Y2K Compliant Defend the Internet archive No cloud