Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. App Wishlist
  3. Garage, an open-source distributed storage service you can self-host to fullfill many needs

Garage, an open-source distributed storage service you can self-host to fullfill many needs

Scheduled Pinned Locked Moved App Wishlist
21 Posts 8 Posters 4.1k Views 8 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • robiR Offline
    robiR Offline
    robi
    wrote on last edited by
    #3

    Too bad this is only replicated storage. (from what I can tell with a look of the front page)

    Minio can use error correcting codes instead of replication.

    Conscious tech

    infogulchI jdaviescoatesJ 2 Replies Last reply
    1
    • robiR robi

      Too bad this is only replicated storage. (from what I can tell with a look of the front page)

      Minio can use error correcting codes instead of replication.

      infogulchI Offline
      infogulchI Offline
      infogulch
      wrote on last edited by
      #4

      @robi Yeah unfortunately.

      Non-goals include:

      • ...
      • Erasure coding (our replication model is simply to copy the data as is on several nodes, in different datacenters if possible)
      1 Reply Last reply
      1
      • robiR robi

        Too bad this is only replicated storage. (from what I can tell with a look of the front page)

        Minio can use error correcting codes instead of replication.

        jdaviescoatesJ Offline
        jdaviescoatesJ Offline
        jdaviescoates
        wrote on last edited by
        #5

        @robi said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

        Too bad this is only replicated storage. (from what I can tell with a look of the front page)

        Minio can use error correcting codes instead of replication.

        @infogulch said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

        @robi Yeah unfortunately.

        Non-goals include:

        • ...
        • Erasure coding (our replication model is simply to copy the data as is on several nodes, in different datacenters if possible)

        What's the difference? or advantage of error correcting / erasure codiing?

        I use Cloudron with Gandi & Hetzner

        robiR 1 Reply Last reply
        0
        • jdaviescoatesJ jdaviescoates

          @robi said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

          Too bad this is only replicated storage. (from what I can tell with a look of the front page)

          Minio can use error correcting codes instead of replication.

          @infogulch said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

          @robi Yeah unfortunately.

          Non-goals include:

          • ...
          • Erasure coding (our replication model is simply to copy the data as is on several nodes, in different datacenters if possible)

          What's the difference? or advantage of error correcting / erasure codiing?

          robiR Offline
          robiR Offline
          robi
          wrote on last edited by
          #6

          @jdaviescoates You can read about it in many places online comparing the two architectures and implementations.

          EC is more space efficient, especially at large scale (Petabyte, Exabyte, etc), while replication always uses 100% more per replica and doesn't guarantee bit flip protection, etc. hence it doesn't scale well.

          EC can always compute any missing pieces and self-heal or regenerate.

          That's why you can hear all the words speaking with someone on the phone from across the planet, as many lost packets are recomputed to fill in gaps instead of long retransmits.

          This applies to huge storage on continuously failing hardware under it too.

          Conscious tech

          L 1 Reply Last reply
          3
          • robiR robi

            @jdaviescoates You can read about it in many places online comparing the two architectures and implementations.

            EC is more space efficient, especially at large scale (Petabyte, Exabyte, etc), while replication always uses 100% more per replica and doesn't guarantee bit flip protection, etc. hence it doesn't scale well.

            EC can always compute any missing pieces and self-heal or regenerate.

            That's why you can hear all the words speaking with someone on the phone from across the planet, as many lost packets are recomputed to fill in gaps instead of long retransmits.

            This applies to huge storage on continuously failing hardware under it too.

            L Offline
            L Offline
            LoudLemur
            wrote on last edited by
            #7

            @robi said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

            @jdaviescoates You can read about it in many places online comparing the two architectures and implementations.

            EC is more space efficient, especially at large scale (Petabyte, Exabyte, etc), while replication always uses 100% more per replica and doesn't guarantee bit flip protection, etc. hence it doesn't scale well.

            EC can always compute any missing pieces and self-heal or regenerate.

            That's why you can hear all the words speaking with someone on the phone from across the planet, as many lost packets are recomputed to fill in gaps instead of long retransmits.

            This applies to huge storage on continuously failing hardware under it too.

            You have a gift for explaining things.

            1 Reply Last reply
            1
            • ruihildtR ruihildt

              https://garagehq.deuxfleurs.fr/

              Alternative to Minio, specially made for selfhosting setup.

              See: https://garagehq.deuxfleurs.fr/blog/2022-introducing-garage/
              Code: https://git.deuxfleurs.fr/Deuxfleurs/garage

              L Offline
              L Offline
              LoudLemur
              wrote on last edited by
              #8

              @ruihildt said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

              https://garagehq.deuxfleurs.fr/

              Alternative to Minio, specially made for selfhosting setup.

              See: https://garagehq.deuxfleurs.fr/blog/2022-introducing-garage/
              Code: https://git.deuxfleurs.fr/Deuxfleurs/garage

              I haven't checked out this suggestion yet, but if it like what I have in mind, it could be brilliant for Cloudron.

              Cloudron is all about self-hosting. and there are a huge number of games with outdated gaming systems that could be repurposed to Cloudron self-hosting. These machines would have large amounts of RAM (for games), a very fast SSD (for running the system) and also a large storage drive (to hold the games).

              That sort of legacy hardware is, I think, absolutely ripe for Cloudron! The Garage software could make those old storage disks have a new life!

              MooCloud_MattM 1 Reply Last reply
              0
              • L LoudLemur

                @ruihildt said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

                https://garagehq.deuxfleurs.fr/

                Alternative to Minio, specially made for selfhosting setup.

                See: https://garagehq.deuxfleurs.fr/blog/2022-introducing-garage/
                Code: https://git.deuxfleurs.fr/Deuxfleurs/garage

                I haven't checked out this suggestion yet, but if it like what I have in mind, it could be brilliant for Cloudron.

                Cloudron is all about self-hosting. and there are a huge number of games with outdated gaming systems that could be repurposed to Cloudron self-hosting. These machines would have large amounts of RAM (for games), a very fast SSD (for running the system) and also a large storage drive (to hold the games).

                That sort of legacy hardware is, I think, absolutely ripe for Cloudron! The Garage software could make those old storage disks have a new life!

                MooCloud_MattM Offline
                MooCloud_MattM Offline
                MooCloud_Matt
                wrote on last edited by
                #9

                @LoudLemur

                Garage still doesn't support 100% the s3 protocol.
                And due to how is written, modern NVMe will not get a BIG boost if you don't have a powerful CPU (it CPU intensive for big files like cloudron Backup, and is still not well-performing if you have small files like in a Nextcloud with small docs.)

                MooCloud is testing Garage, and we have an agreement with Garage leading developer to publish the data collected using garage in a modern cloud environment.

                Matteo. R.
                Founder and Tech-Support Manager.
                MooCloud MSP
                Swiss Managed Service Provider

                robiR jdaviescoatesJ 2 Replies Last reply
                3
                • MooCloud_MattM MooCloud_Matt

                  @LoudLemur

                  Garage still doesn't support 100% the s3 protocol.
                  And due to how is written, modern NVMe will not get a BIG boost if you don't have a powerful CPU (it CPU intensive for big files like cloudron Backup, and is still not well-performing if you have small files like in a Nextcloud with small docs.)

                  MooCloud is testing Garage, and we have an agreement with Garage leading developer to publish the data collected using garage in a modern cloud environment.

                  robiR Offline
                  robiR Offline
                  robi
                  wrote on last edited by
                  #10

                  @MooCloud_Matt Have you looked at SeaweedFS yet?

                  Conscious tech

                  MooCloud_MattM 1 Reply Last reply
                  0
                  • robiR robi

                    @MooCloud_Matt Have you looked at SeaweedFS yet?

                    MooCloud_MattM Offline
                    MooCloud_MattM Offline
                    MooCloud_Matt
                    wrote on last edited by
                    #11

                    @robi
                    We did, but i don't recall the reason we excluded as an alternate to ceph(that we are using in prod currently)

                    Matteo. R.
                    Founder and Tech-Support Manager.
                    MooCloud MSP
                    Swiss Managed Service Provider

                    1 Reply Last reply
                    1
                    • jdaviescoatesJ jdaviescoates referenced this topic on
                    • MooCloud_MattM MooCloud_Matt

                      @LoudLemur

                      Garage still doesn't support 100% the s3 protocol.
                      And due to how is written, modern NVMe will not get a BIG boost if you don't have a powerful CPU (it CPU intensive for big files like cloudron Backup, and is still not well-performing if you have small files like in a Nextcloud with small docs.)

                      MooCloud is testing Garage, and we have an agreement with Garage leading developer to publish the data collected using garage in a modern cloud environment.

                      jdaviescoatesJ Offline
                      jdaviescoatesJ Offline
                      jdaviescoates
                      wrote on last edited by
                      #12

                      @MooCloud_Matt said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

                      Garage still doesn't support 100% the s3 protocol.

                      Seems they got most of it covered now:
                      https://garagehq.deuxfleurs.fr/documentation/reference-manual/s3-compatibility/

                      I use Cloudron with Gandi & Hetzner

                      1 Reply Last reply
                      1
                      • jadudmJ Offline
                        jadudmJ Offline
                        jadudm
                        wrote last edited by
                        #13

                        I started work on a package; this was under a different thread, but it is probably more appropriate to mention here:

                        https://forum.cloudron.io/post/116583

                        I use Cloudron on a Dell 7040SFF I bought on eBay.

                        1 Reply Last reply
                        4
                        • jadudmJ Offline
                          jadudmJ Offline
                          jadudm
                          wrote last edited by jadudm
                          #14

                          update

                          I've poked the package with a stick, added more to the README, and have run into a few interesting things about this package.

                          s3 functionality

                          I was able to create a bucket and put stuff in it. This seems to be a core function of an S3-compatible object server.

                          administrative server

                          Garage has a notion of having an administrative API at one port. I can use httpPorts to bind this port, and I can use it. For example, if I have

                          s3.example.com

                          as the root domain, then

                          admin.s3.example.com

                          can be the home for the Admin API. And, I was able to create an administrative API token, and using it, access the admin API.

                          static websites

                          This one is tricky. In theory, if I configure part of the garage.toml correctly:

                          [s3_web]
                          bind_addr = "[::]:3902"
                          # This wants to be set dynamically in the startup.
                          # That way, it can grab a Cloudron variable.
                          root_domain = ".web.s3.example.com"
                          index = "index.html"
                          

                          I can serve static sites out of buckets. However, this implies domain name manipulation. And, possibly, a wildcard. As in, I'd like

                          *.web.example.com to resolve to s3.example.com, and for Garage to pick it up (internally) on port 3902.

                          I have explored this manually (by manipulating DNS settings in Cloudflare), but even though I have configured a bucket to serve static content, I can't (yet) convince it to serve something up.

                          While it might be that this functionality has to be sacrificed, I think it would be a nice way (if it was baked in) to manage 100% static sites. However, that would be new machinery: a way to map domains to buckets.

                          backups

                          I'm not convinced the backups are good. Specifically

                          <path>/meta/db.sqlite

                          is the metadata database for the Garage instance. This is, as far as I can tell, all of the information about where all of the files is stored. Losing this database is tantamount to losing all of the data. I think. So, making sure it backs up correctly matters. And, it is clear that updates will need to do things like garage repair and garage migrate, in the event of migrations/changes to this metadata database.

                          Ah:

                          Since Garage v0.9.4, you can use the garage meta snapshot --all command to take a simultaneous snapshot of the metadata database files of all your nodes. This avoids the tedious process of having to take them down one by one before upgrading. Be careful that if automatic snapshotting is enabled, Garage only keeps the last two snapshots and deletes older ones, so you might want to disable automatic snapshotting in your upgraded configuration file until you have confirmed that the upgrade ran successfully. In addition to snapshotting the metadata databases of your nodes, you should back-up at least the cluster_layout file of one of your Garage instances (this file should be the same on all nodes and you can copy it safely while Garage is running).

                          (Emphasis mine.)

                          So, the backup process is something I'll need to investigate further. It might be that some manual/scripted management of this database file---and dumping it---is going to be a bit of a thing in terms of having it be a robust process.

                          (Given that Cloudron does backups before upgrades, as long as the SQLite DB is snapshotted correctly on backup, I think it will be fine.) I suspect that a cron will need to be installed for this package that---daily?---runs the snapshot command, rotates DBs, and those are part of the backup. (I have a suspicion that Cloudron packages handle this kind of thing in the start.sh scripts?)

                          healthcheck URL

                          The manifest assumes that the health check URL is on the main app. In this case, if I have

                          s3.example.com

                          and the Admin API is at

                          admin.s3.example.com

                          (defined in httpPorts), I want the health check URL to be

                          https://admin.s3.example.com/health

                          because that is where Garage put it. I don't think I can do that with the manifest as-designed.

                          summary

                          I think the package is off to a good start. I have questions, but most of them are described above, and I'll probably figure things out. The health check and static site subdomains, though, might not be easily solved.

                          I use Cloudron on a Dell 7040SFF I bought on eBay.

                          1 Reply Last reply
                          2
                          • girishG Offline
                            girishG Offline
                            girish
                            Staff
                            wrote last edited by
                            #15

                            @jadudm great work. I think it will be great to offer garage as an addon i.e another options to https://docs.cloudron.io/packaging/addons/ . What is needed is a way to provision buckets and restore/backup them on the fly . From what I can make out this is doable from what you have posted.

                            Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                            jdaviescoatesJ robiR jadudmJ 3 Replies Last reply
                            2
                            • girishG girish

                              @jadudm great work. I think it will be great to offer garage as an addon i.e another options to https://docs.cloudron.io/packaging/addons/ . What is needed is a way to provision buckets and restore/backup them on the fly . From what I can make out this is doable from what you have posted.

                              Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                              jdaviescoatesJ Offline
                              jdaviescoatesJ Offline
                              jdaviescoates
                              wrote last edited by
                              #16

                              @girish said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

                              Does Garage have web interface?

                              Seems so https://github.com/khairul169/garage-webui

                              I use Cloudron with Gandi & Hetzner

                              1 Reply Last reply
                              0
                              • girishG Offline
                                girishG Offline
                                girish
                                Staff
                                wrote last edited by
                                #17

                                @jdaviescoates i think that one is just an unofficial web ui, no? (similar to the many that exist for wireguard).

                                jdaviescoatesJ 1 Reply Last reply
                                0
                                • girishG girish

                                  @jdaviescoates i think that one is just an unofficial web ui, no? (similar to the many that exist for wireguard).

                                  jdaviescoatesJ Offline
                                  jdaviescoatesJ Offline
                                  jdaviescoates
                                  wrote last edited by
                                  #18

                                  @girish could be the result of this https://nlnet.nl/project/Garage-AdminUI/ ? 🤷

                                  Hard to tell its status, but I guess at worst it could be used a base/ inspiration for making one? 🙂

                                  I use Cloudron with Gandi & Hetzner

                                  1 Reply Last reply
                                  1
                                  • girishG girish

                                    @jadudm great work. I think it will be great to offer garage as an addon i.e another options to https://docs.cloudron.io/packaging/addons/ . What is needed is a way to provision buckets and restore/backup them on the fly . From what I can make out this is doable from what you have posted.

                                    Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                                    robiR Offline
                                    robiR Offline
                                    robi
                                    wrote last edited by
                                    #19

                                    @girish said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

                                    Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                                    Why do you think you need one? You are just going to use the API and one time setup can be automated or manual, no?

                                    Or could it become a Cloudron UI exposed in a new menu via API?

                                    Conscious tech

                                    girishG 1 Reply Last reply
                                    1
                                    • robiR robi

                                      @girish said in Garage, an open-source distributed storage service you can self-host to fullfill many needs:

                                      Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                                      Why do you think you need one? You are just going to use the API and one time setup can be automated or manual, no?

                                      Or could it become a Cloudron UI exposed in a new menu via API?

                                      girishG Offline
                                      girishG Offline
                                      girish
                                      Staff
                                      wrote last edited by
                                      #20

                                      @robi I mixed two topics 🙂 For an addon, no UI is required. But if we package as an app, a UI is required.

                                      1 Reply Last reply
                                      2
                                      • girishG girish

                                        @jadudm great work. I think it will be great to offer garage as an addon i.e another options to https://docs.cloudron.io/packaging/addons/ . What is needed is a way to provision buckets and restore/backup them on the fly . From what I can make out this is doable from what you have posted.

                                        Does Garage have web interface? For that matter, do any of the other alternatives have one? If not, we have to make one.

                                        jadudmJ Offline
                                        jadudmJ Offline
                                        jadudm
                                        wrote last edited by jadudm
                                        #21

                                        @girish Glad to serve.

                                        If the goal is an addon, then...

                                        1. I think the backup piece should be straight-forward? (I have some more info in the packaging thread about this.) Essentially, you want to make sure the SQLite DB is backed up, and then you backup the filesystem. I have questions about what happens if (say) a restore happens (e.g. what if the filesystem path changes?), but those things can be explored.
                                        2. There is an administrative API that (once you generate a secret/trusted admin API token) lets you do everything administratively via that API (bucket creation, etc.).

                                        As to a web interface, I would not recommend you create one for end-users. (I suspect this is not what you mean.) You have NextCloud, XBackBone, and other apps that can talk to an S3-compatible backend for file browsing. What people might need/want is a way to:

                                        • Create/remove buckets (which, on the backend, you'd use your secret admin key)
                                        • Create/remove keys and attach them to buckets
                                        • Create/remove administrative keys (for superusers who want to script things against the backend)
                                        • Bonus: the ability to designate a bucket as a static site, and then you do the DNS work on the backend to point either a subsubdomain at it (e.g. site.s3.example.com) or a whole new domain (e.g. someothersite.com -> site.s3.example.com)

                                        I suspect you could iterate towards this, if you wanted to. Release it with terminal-only management to start, and work towards an admin interface for common bucket creation/removal-type tasks.

                                        There are things that Garage does not do (e.g. lifecycle rules), so this is not a "full" S3 clone (the way Minio aspired to be). In this regard, SeaweedFS might offer more features (and a built-in admin UI)... so, it might be worth doing a spike to explore it as well. At a glance, it is similar, but it also is intended to scale (e.g. it does Raft consensus and Reed-Solomon EC if you want it) in a way that Garage does not. This might also be a reason to not use Seaweed.

                                        I can poke it with a stick if it would be valuable.

                                        Update, a few hours later: I would recommend sticking with Garage.

                                        I use Cloudron on a Dell 7040SFF I bought on eBay.

                                        1 Reply Last reply
                                        2
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Categories
                                        • Recent
                                        • Tags
                                        • Popular
                                        • Bookmarks
                                        • Search