Stackrooms does not actually exist (yet!). I wrote this doc back in mid-2022 expecting to devote significantly more time to it after graduating. I bought the domain name and have played around with small fragments of a Golang proof-of-concept in my free time. Sadly, most of the code (which was nothing special) was on a storage drive that I accidentally overwrote before I cared enough to upload it to GitHub. Very ironic that I didn’t backup my own backup software.
Since Microsoft employees get a bunch of free Azure credits, my personal desire to solve this problem has diminished.
But ideas are cheap, and execution is far more valuable. I’m publishing this article now since another homelab enthusiast (like you) might find this problem worth solving.
Stackrooms is a peer-to-peer backup platform. Here are the main points:
- You contribute \(n\) gigabytes of server storage to host other users’ backups, and in turn you receive \( \frac{n}{2} \) gigabytes of storage to back up your own data.
- You can back up as much data as you like, so long as you can supply commensurate storage space.
- Our matchmaking system optimizes for the fastest latency and farthest geographic distance between peers.
- Data is encrypted both in transit and at rest, which means only you can read your data. Neither we nor your hosts can read your data at anytime.
- The Stackrooms client can happily run on a tiny Raspberry Pi, a decked-out rackmount server, and anything else that has access to the internet.
- We offer a free tier for personal use and provide a range of options to accommodate your team and backup requirements.
Mutually assured recovery🔗
The Stackrooms client regularly checks the integrity of your backup. In the event one of your backup peers are unresponsive for an extended period of time, we support an automatic fail-over mechanism to keep your data safe on a fresh backup peer. Conversely, if you are unable to continue backing up other users’ data, we ensure your data remains ready to restore for up to 30 days.
Frustration-free packaging🔗
Restoring a backup shouldn’t be a sweaty, nail-biting odyssey. Using Stackrooms to retrieve data is a fast and intuitive experience. We aim to provide a first-class user experience on both a fast web interface and an ergonomic command line interface.
Flavors for everybody🔗
Anybody can use the Stackrooms free tier for their own personal use. We are enthusiastic about getting Stackrooms into the hands of individuals who can spread the merry menu of Stackrooms to their friends and colleagues. Free users improve the density of the Stackrooms network, while users get a safe place to store their data. This is a win-win for all parties involved.
For larger deployments, we offer different paid tiers that scale by the number of users in your organization. This is a radically different pricing model than conventional backup services, which charge you by the amount of storage you’ve used.
Our goal is to make backups as accessible as possible. Try Stackrooms today, and see what you think!
Motivation🔗
The idea that I could do a comparable job self-hosting my file storage, Git repositories, or websites at a much lower cost than paying for the same service from a big technology company was very exciting. The realization that I would still have pay to backup my critical data in the Cloud™ was a bit of a let-down, because it meant conceding some of my aspirations. Stackrooms is trying to change this dynamic.
The idea of a peer-to-peer storage network isn’t novel. Some peer-to-peer storage systems rely upon paying people to lend their powerful storage servers. However, this creates two issues: a barrier to entry and a brittle long-run incentive.
But backups are an elegant usecase for Stackrooms, because they encourage both consumption and contribute to the Stackrooms network. This is the principle behind our tongue-in-cheek principle of mutually assured recovery.
Privacy🔗
In some key ways, Stackrooms behaves like a multiplayer video game. You team up with other ‘players’ and are placed into a ‘lobby’ via a matchmaking mechanism. But instead of playing a game, you back up each others’ data.
Good player discoverability and prompt updates are traits of a good video game. Bringing this analogy back to us, we operate a centralized platform to ensure users can connect to each other quickly and have easy access to cool features in the future.
We want to build a product that people enjoy using — a product that can be sustainably commercialized without compromising user privacy. As such, the Stackrooms client is open source and we retain as little information as possible when connecting peers together. There is arguably nothing more important to a startup than our own reputation, which is why we will vigorously defend your expectations of privacy. Stackrooms is the product, not you.