Hi there,

I would like to host my own Synapse server, but I am not sure where to start.

I would like to be able to use Nginx Proxy Manager as the reverse proxy and I’ve read that you can use example.eu for the username, while actually using a subdomain like matrix.example.eu?

Is there some good documentation out there and what would people recommend? I would like to run it in a container on Proxmox, but Docker could also be an option?

  • lambalicious@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    1
    arrow-down
    2
    ·
    8 hours ago

    Doesn’t synapse need like, a server cluster to run? The self-hostable service is supposed to be something owo, I think.

    • daniskarma@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 hours ago

      Not at all. I have my instance sitting on 100MG of RAM and 0% cpu usage. There’s only 3 users that barely use it, but there it is.

      It scales by number of users.

      It’s true that it’s a resource hog, due to being written in python (who the hell though that), but it all depends on usage.

    • Stefen Auris@pawb.social
      link
      fedilink
      English
      arrow-up
      3
      ·
      5 hours ago

      No it works perfectly fine on a relatively small VPS. Ideally you’d want some redundancy for a form of communication but some people (like me) just wing it lol

  • grin@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    15 hours ago

    Look for the docs about jemalloc, may push down memory usage to ⅕. I’d say use conduwuit because it’s way more resource conservative… but it’s dead now.

  • 𝕽𝖚𝖆𝖎𝖉𝖍𝖗𝖎𝖌𝖍@midwest.social
    link
    fedilink
    English
    arrow-up
    20
    arrow-down
    1
    ·
    22 hours ago

    A lot of memory, and a lot of disk space.

    Synapse is the reference platform, and even if they don’t, it feels as if the Matrix team make changes to Synapse and then update the spec later. This makes it hard for third-party servers (and clients!) to stay compliant, which is why they rise and fall. The spec management of Matrix is awful.

    So, while suggestions may be to run something other than Synapse - which I sympathize with, because it’s a PITA and expensive to run - if you go with something else just be prepared to always be trailing. Migrating server software is essentially impossible, too, so you’ll be stuck with what you pick.

    Matrix is one of the worst-managed best projects to come out in decades.

    • farcaller@fstab.sh
      link
      fedilink
      English
      arrow-up
      1
      ·
      3 hours ago

      Conduit is in no way compact either. I tuned its caches because two gigs of ram seemed ridiculous for a single-user instance but I only got the mobile client sync lag as a result.

      XMPP used to be so much nicer…

    • unexposedhazard@discuss.tchncs.de
      link
      fedilink
      English
      arrow-up
      2
      ·
      13 hours ago

      They are the definition of move fast and break things. And they just keep breaking things while not even being that fast. But still there is nothing to replace it and the work they are doing is valuable.

  • ambitiousslab@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    edit-2
    23 hours ago

    I host Synapse using this playbook. I can highly recommend it - the instructions are very clear and detailed and ongoing maintenance is straightforward too (just git pull and redeploy, and 5% of the time modify a deprecated variable).

    As for how to delegate to a subdomain - that’s covered here. Basically - you set it up on matrix.example.eu and then have a “well known” file hosted at example.eu that tells other clients/servers where to look.

  • Shimitar@downonthestreet.eu
    link
    fedilink
    English
    arrow-up
    7
    ·
    24 hours ago

    Why synapse?

    Its a good choice for max stability, but its by far the heaviest and most resource intense server out there, and probably overkill for a few user installation.

    • Meldrik@lemmy.wtfOP
      link
      fedilink
      English
      arrow-up
      4
      ·
      24 hours ago

      What do you suggest? It’s only intended for a few users, but I’d still like to have the most features available to the users.

      • Shimitar@downonthestreet.eu
        link
        fedilink
        English
        arrow-up
        8
        arrow-down
        2
        ·
        edit-2
        24 hours ago

        Tuwunel, the sequel of conduwuit.

        Go with conduwuit today, then upgrade to tuwunel as soon as they release.

        There is a post about that in this community.

        • sylphio@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          50 minutes ago

          From what I read, using anything but Synapse requires to compromise on features/compatibility. I know this is not the dev’s fault, it’s from the way the Matrix spec evolve. Do you know of any resource regarding the current features/compatibility of tuwunel/conduwuit? I am particularly curious about:

          • bridges
          • element-call
          • threads
          • session verification (e.g. emoji comparison over federation)
  • poVoq@slrpnk.net
    link
    fedilink
    English
    arrow-up
    5
    ·
    23 hours ago

    Synapse has become open-core and the possible alternatives are either abandoned or are currently in a really unclear state. And due to how Matrix federation works, it is quite difficult to change anything later and if you are unhappy with the setup you have basically burned a domain and need to start fresh on another. If you just want a chat server I would rather suggest to set up a XMPP server with a Slidge.im Matrix bridge.

    That said: there are easy to use official Docker containers for Synapse, and you just need a redirect in your reverse-proxy for some sub-directories to put it on the same domain than something else. There are also some other, more complex ways to do it, but just redirecting the subdirectories is the easiest.

  • unexposedhazard@discuss.tchncs.de
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    23 hours ago

    If you want the new mobile client “element x” to work, you will need element-call on the server (a decentralized webrtc based call system). This currently only really works in combination with synapse, so i would go with synapse. Either the ansible playbook as mentioned by others, or look into the still quite new ESS community edition.