• 4 Posts
  • 530 Comments
Joined 1 year ago
cake
Cake day: December 13th, 2024

help-circle




  • If you set up your community on an existing server, like Matrix.org, it’ll be really easy. And it’s pretty easy to join as an end user.

    But if you have your own domain, and you want to host your own Matrix server (mine is matrix.port87.help), be prepared to spend at least a day trying to get everything to work. There are six different services you need to run:

    • synapse
    • postgres
    • element
    • coturn
    • jwt
    • livekit

    And there’s no guide for just setting up everything easily. You have to follow several different guides that sometimes have conflicting information. Not all the guides are exactly comprehensive, too, so be prepared to read a lot of documentation. You’ll also need to forward a bunch of ports, and then a port range (thousands of ports, for coturn).

    It’s very easy to mess something up, and sometimes it’s very hard to tell. For example, I was running federation on 8448, like you’re supposed to, but my server was advertising that federation was on 443. This caused some rooms on other servers to be unjoinable. It gave me a cryptic error message about it, and I had to read through a few Stack Overflow posts and GitHub issues to finally figure it out.

    Synapse will complain about Postgres’ collation and encoding, and that’s quite difficult to fix. You have to add some arguments to the startup command to force the right encoding.

    Synapse will also log fucking everything, so make sure to set log level to “ERROR”.

    None of this is meant to scare you away from running your own Matrix server. If you want help, I’d even be willing to zip up all my docker compose files and send them to you. This is more meant to indicate that the Matrix team should focus on making this process easier.






    • What AI is good for (boilerplate, tests, docs, refactoring) and what it’s not (security critical code, architectural changes, code you don’t understand)

    Incorrect. AI is only good for boilerplate. Letting it write tests will give you broken and incorrect tests. Letting it write docs will give you incorrect docs. Letting it refactor will give you bugs. AI is passable at generating boilerplate.

    Well, it’s also good at writing code to use as the “Incorrect” part of a Correct/Incorrect example.

    I asked Gemini to write just the most basic use case for my tokenizer library the other day (checking to see if a search query is found in a set of already computed tokens), and it couldn’t even get that right, but boy was it absolutely certain that it did. Pathetic. If it were an unpaid intern it would be fired.