Hi all,

I want to host my own matrix server, so that i can run bridges to all the other (stupid) messaging apps.

I am looking for any advice or experience in choosing which server to run, and if you know of any good tutorials, run throughs, etc. i typically would like a lighter instance, as i expect about 3 users, with 2 of us needing bridging.

  • dendrite
  • synapse
  • conduit
  • construct

and then the addition of bridges, (Signal, WA, Messenger and hopefully SMS).

I am fairly self sufficient when it comes to self hosting, and i run everything on linux, in docker, proxied by Nginx proxy manager. but typically prefer stuff that works more or less out of the box.

Thanks all!

  • Onurb@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    1 year ago

    Im using the ansible matrix playbook with synapse for 3 users and a bunch of bridges. I choose this because I used to setup my docker container and everything myself up but i absolutely dont want any downtime on my communications just because a config is not perfectly setup. If im out and about i want to still be reached. The playbook makes it really simple and takes care of everything i want. Even things like sliding sync are setup with one line added to the config. https://github.com/spantaleev/matrix-docker-ansible-deploy

    • Black616Angel@feddit.de
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      This is the way! I also have a synapse with this ansible playboy up and running and it works like a charm.

  • Makr Alland@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    I run my own Synapse server with bridges to WhatsApp and Telegram, along with a few other services, using Yunohost. I haven’t observed any huge resource usage, and I like the centralized management/update. One possible downside is that you won’t get the latest versions immediately, the Yunohost maintainers take time to test those. I prefer the stability that gives me but if you want to be on the edge a docker setup will be better.

  • u_tamtam@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Do you need/like matrix so much that you want to self-host it in place of more admin-friendly alternatives? The client/user side of matrix is okayish, but everything else is terrible. The protocol is inefficient by design and that’s not something faster languages will solve so expect your available resources to sink, all implementations suck in different ways, are highly incompatible, constantly changing and have you in a permanent stressful state of chasing the latest/breaking/testing stuff. The team in charge is in denial about a great many things, and lacks the deeply needed amount of focus and reality check to get things done (which I imagine has been a large contributor to more and more “institutional actors” dropping them recently, like France several months ago).

    I could go on and on, but in short, I was at your place some time ago and the mess, disappointment and overall stress I found with matrix only compelled me to give XMPP a close look. Now I (and my users) are super happy with ejabberd and modern clients like Conversation/dino/movim make the while thing a very pleasant experience. Not all features of matrix are there, but I take reliability/predictability and simplicity over them any single day.

    • palitu@lemmy.perthchat.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Ultimately, i want something that is able to work outside of its own walls. I dont want 10 messenger apps, and i dont want to limit the messenging app that i host to just us (ie, it would be good if my account can talk to others, by my sons can only talk with us).

      XMPP i have heard nothing but good things about - i will do some reading on it.

      Do you have any links for the french dropping matrix?

      • u_tamtam@programming.dev
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        Ultimately, i want something that is able to work outside of its own walls. I dont want 10 messenger apps, and i dont want to limit the messenging app that i host to just us (ie, it would be good if my account can talk to others, by my sons can only talk with us).

        The funny thing about XMPP is that this is exactly where it started at, when AIM, ICQ, MSN, Yahoo and co. were all the rage in the late 90’s, the geeks became annoyed of needing as many clients as there were protocols, and XMPP was meant to bridge over to all of them. Fast forward, we since learned that bridging to other protocols generally sucks (or isn’t to be recommended to the average folks), and just to make sure, Matrix tried again 15 years later with the same outcome. But if you need it, the capability is still very much there and some still pursue the effort to this day.

        Do you have any links for the french dropping matrix?

        I only have a (private) IRC chatlog which I’m not sure it is ethical to post in the open, so I sent it to you by private message instead. I don’t think it is a secret at this point so there might be other sources out there to corroborate this.

  • z3bra@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Do not use Dendrite for multi-user setups if you plan to run bridges. Contacts handled by the bridges are visible by the whole server, which means that it leaks many information on your contacts (names, phone number, …). I’m also not sure that multi-user puppeting is supported with dendrite.

    I would advise you to run Synapse because of that.

    • palitu@lemmy.perthchat.orgOP
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      thanks, i am hoping to get conduit up and running, and the default docker-compose seems to be going ok, just need the rest of the plumbing, then the bridges and i will be sweet :D

  • SJ0@lemmy.fbxl.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    My experience has been that dendrite and synapse totally maxxed out the server I ran it on (100% cpu utilization for days on end), so I run conduit.

    The one downside of conduit is it’s a bit behind, so it doesn’t support all the latest rooms, and it doesn’t support spaces yet, and it has minimal admin tools so you’ll want to create all the accounts you need then close logins because bad actors will try to create logins and get you banned from half of Matrix. That said, I can tell you that even on my piddly little server (an Intel Atom D2550), it runs Conduit, ejabberd, nostr, and lotide, and the server basically sits idle. I can’t speak of bridges, unfortunately, because I don’t really use them.

    This is the guide I used, it worked well to set things up:

    https://gitlab.com/famedly/conduit/-/blob/next/DEPLOY.md

    • palitu@lemmy.perthchat.orgOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      thanks - the dendrite and synapse experience is what i am worried about - it seems to be the massive implementation that will scale to millions.

      i was looking at conduit, but realy dont know what the issues i will come against with it. but it seems to be the most visible of the non-major implementations.

      • SJ0@lemmy.fbxl.net
        link
        fedilink
        English
        arrow-up
        1
        ·
        edit-2
        1 year ago

        Besides lacking spaces and some rooms not letting you join, (and the lack of admin tools) the only big issue I find is that you plan to run something other than Element as the interface, you’ll have to test it because many matrix clients expect synapse or dendrite and won’t start with anything else. I’ve run fluffychat, I think kchat(whatever the kde matrix client is), and nheko, they all worked well with conduit.

            • palitu@lemmy.perthchat.orgOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              ah, yep - that is cool. I expect that i will use Element and potentially another simpler client.

              I am also curious about how element X will go, which requires the sliding API/proxy thingo. but that is future palitu’s problem.

  • quirq@lemmy.nz
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    1 year ago

    I run my own Dendrite server and have had it work pretty well.

    Initially I chose Dendrite over Synapse as I heard about Synapse being quite heavy in terms of load, and my overall experience with Dendrite has been pretty good!

    I run the server just for myself, but have it setup with Signal and Messenger bridges that work flawlessly (apart from one time when Facebook thought my account was hacked and had to reauth!)

      • quirq@lemmy.nz
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        I would rate it 8/10 for ease of install, especially with the docker setup it is pretty easy.

        Only slightly annoying setup task was getting the matrix bridges setup as you need to mess with some config and I had some issues getting it to work initially.

        But once it was all setup, pretty solid for me ever since!

        • palitu@lemmy.perthchat.orgOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          1 year ago

          I have the container up, but now some issues with ports. I can connect with element in the browser, but the app is having issues.

          What did you do with proxying? I was told I need to port forward 8448, but that doesn’t seem right.

          I’m using nginx proxy manager, default settings, and LE certs.

          • quirq@lemmy.nz
            link
            fedilink
            English
            arrow-up
            1
            ·
            1 year ago

            You can use whatever port if you’re proxying it to 8448 (assuming the container host is listening on that port which it would be by default).

            If you use matrix.example.com and proxy port 443 to 8448 then it should work as your user would be @user:matrix.example.com.

            You would need to portforward from outside your network if you want to access it and have it talk to other servers as they all need to communicate with your server.

            Personally I wanted matrix to show my user as @user:example.com at my actual domain not as a matrix subdomain, so I had to setup the .well-known/server type http path to tell it my server is actually at matrix.example.com.

            • palitu@lemmy.perthchat.orgOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              1 year ago

              yep, i have my sub-domain proxying to the host <server>:8448, and i can use it locally. however the android element app is not able to connect, but the browser element can.

              it is a dilly of a pickle, and i am not sure what is missing.

              the docs at https://gitlab.com/famedly/conduit/-/blob/next/DEPLOY.md tell me to curl directly to port 8448… oh, dumbass! just typing this out i saw that it was an if not an and port 8448… never mind! i iwll post this to indicate my stupidity and hopefully figure out what i am doing wrong!

              $ curl https://your.server.name/_matrix/client/versions
              
              # If using port 8448
              $ curl https://your.server.name:8448/_matrix/client/versions