TLDR: Cloud in a Bottle is your open-source personal cloud: containerized apps, unified auth, good UX. Self-hosting should feel like using a smartphone that serves webapps, not a sysadmin side job.
I'm frustrated with the state of the digital world. The software we use is so misaligned with our own incentives (intentionally addicting, loaded with ads, tracking you and selling your data, enshittifying). Software is easier than ever to make; how did we end up here? I think a big reason is the shift of software into the cloud. Software served from the cloud (think Google Docs vs Microsoft Word) delivers a great experience - no install, accessible on all your devices, immediate sharing/collaboration. But to serve something in the cloud costs money, and so just about everything on the modern web has a company behind it - open source authors naturally don't want to pay to serve their free software to the world. And those companies have a financial incentive fundamentally misaligned with our own.
In the pre-cloud days, open source worked - authors distributed their software, and everyone "hosted" it for themselves (i.e. ran it on their own PC). Nowadays, cloud software is centralized, with one instance of the software serving the world, and the costs borne by the creator. This is because individuals don't have an accessible way to put software into the cloud for themselves.
Self-hosting exists already, but it's niche and unapproachable. When I looked at the existing options, none of them felt right:
sandstorm.io: very close in spirit (their article from 2014 makes basically the same argument I'm making here), but unfortunately long abandoned. It also required significant changes to existing software to run on their platform.
nextcloud: slow and unreliable, and more enterprise-targeted now
yunohost: apps run directly on the host, no sandboxing. one insecure app compromises the entire server.
coolify: hosts containerized apps, but every app is an island with its own login and little integration with the host or other apps.
We created Cloud in a Bottle to take another stab at this. At the core, it's just an Ubuntu machine with a web server that hosts a dashboard and routes HTTP(s) requests to containerized apps. Apps are (rootless, hardened) containers, so it can run existing software with minimal changes - and in a reasonably secure sandbox. But beyond just hosting containers (like e.g. coolify), there are various opt-in platform features that apps can take advantage of to make the experience better. In a way, I want it to feel like your "cloud smartphone" - something that you own, where finding and installing great apps is trivial, and where the user experience is as good as the closed source products we're trying to replace. As a basic example, if you're logged into your instance, you're automatically logged into all your apps - no separate accounts in each app. And there's an interface to allow permissioned access to data and capabilities between different apps in your instance. More generally - think of all the different APIs that Android or iOS provide to enable apps to deliver a great, integrated experience (sensor access, notifications, health data sharing, etc). We've put a lot of time into thinking about the right analog of those APIs in the context of a personal cloud.
It's open source, self-hostable, zero telemetry, and aims to be as simple and "magic-free" as possible. We (Imbue, the company I work for) also offer a managed version, which I think is really important to making this widely accessible - and it gives us a straightforward business model to support the project. But the open-source/self-hosted path runs exactly the same code and will always be first-class.
... continue reading