Unless I am blind or my search-fu is hugely failing me, I cannot for the life of me find any information on the recommended/minimum specs to self-host the matrix backend services. I’m trying to spin up a VM just to play around with it and see if I like it. Specifically, I’m looking at Synapse or Continuwuity. Any advice?

Looking for vCPUs, memory, storage.

  • Yaky@slrpnk.net
    link
    fedilink
    English
    arrow-up
    16
    ·
    1 day ago

    I have ran Synapse natively on 1 CPU 1GB RAM VPS for years. But it fills up a lot of disk space, eapecially with larger rooms, so get at least 100GB? (I had 20GB on my VPS, and with 4 regular users, was using up 15GB)

    If you are looking at (new) official ESS Community, they recommend 2 CPU, 2GB RAM minimum for Kubernetes.

      • iamthetot@piefed.caOP
        link
        fedilink
        English
        arrow-up
        3
        ·
        22 hours ago

        Could you expound on what you mean, or how to go about it? Links to documentation would be appreciated.

        • Scrubbles@poptalk.scrubbles.tech
          link
          fedilink
          English
          arrow-up
          9
          ·
          21 hours ago

          I’m not sure your level of understanding of cloud infrastructure, so let me know if you need me to go into more detail. Disk storage, like what is attached to a VPS/VM is very expensive, and it’s the 100GB drive you have attached. What is much cheaper is object/blob storage, known in AWS and most cloud providers as S3. This is far far cheaper for many reasons.

          Matrix (and really I should say Synapse, what I use) can be configured to save images, photos, uploads, etc to save to a blob storage “bucket” instead of disk. So you can lower your disk from 100 down to something lower because your data is stored in blob storage (fully encrypted). For synapse, the module you need is here: https://github.com/matrix-org/synapse-s3-storage-provider

          • iamthetot@piefed.caOP
            link
            fedilink
            English
            arrow-up
            3
            ·
            18 hours ago

            Cheers, I appreciate you taking the time to write it out. I’m definitely no pro but I’m on my way to learning this stuff. I’ve heard of S3 but never used it. Maybe I’m oversimplifying, but it just sounds like dedicated cloud storage, maybe that has been optimized for efficiency?

            Where I’m at right now is considering using my own storage. I have a lot of platter space, which yes yes I know, that is far from ideal but I was going to try it out and see just how bad the performance was. I’m aiming to host for a pretty small community (>50, probably even >25).

            • Scrubbles@poptalk.scrubbles.tech
              link
              fedilink
              English
              arrow-up
              2
              ·
              16 hours ago

              If you’re running locally on your own system then yes you can use your own. You can use something like MinIO or Garage to self-host an S3 bucket, and then point Matrix to that

              • iamthetot@piefed.caOP
                link
                fedilink
                English
                arrow-up
                2
                ·
                15 hours ago

                Could you explain what makes an S3 bucket better suited than the default storage scheme? No pressure if not, you’ve already been helpful!

                • Scrubbles@poptalk.scrubbles.tech
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  14 hours ago

                  Basically for a cloud provider s3 storage is just any storage. It’s not a disk that needs to be high availability with programs reading and writing to it with an OS on top, its just blobs of data. Images, video, isos, whatever. Its meant for access that is lower than what a VM would need for an active program.

                  For matrix this is ideal for its content. An image uploaded will be read a fee dozen times, and then less and less until eventually it isn’t really needed ever unless someone scrolls and scrolls up.

                  So for hosting, if you store that on a disk you’re saying “this is critical to the operation of the software and must be highly available and optimized for vms reading and writing to it.”. Think like m.2 ssds. Blob storage then analogous to us home labbers to throwing it on a giant nas. Its there, may take a bit to load, but its there.

                  Then s3 has classes too, where if you need your data even less you can pay even less trading off access times, you can get even better rates if you know you need it extremely infrequently, like audit logs. Tape drives are actually used quite a bit for those opt-in low access tiers because if you think about it the data storage is incredibly dense, but opening up a tape can be minutes or longer to access. No problem if you’re pulling up some archive from 20 years ago.

                  • iamthetot@piefed.caOP
                    link
                    fedilink
                    English
                    arrow-up
                    1
                    ·
                    12 hours ago

                    Very interesting stuff, thanks!

                    I am not saying it’s exactly the same but that does sound similar to what I am gonna try out. Main my first successful spin up I just have everything in a frankly small VM running on an ssd, but next I’m going to play around with mapping the crucial stuff on that ssd but putting media on my 8TB platter.