Cloud in a Bottle
Your corner of the cloud.
Deploy, use, and share web apps on a server you control.
Your apps, data, and infrastructure stay yours.
Why Cloud in a Bottle
Most people have no access to the cloud that isn't mediated by a company with different incentives than theirs. Open source web software exists but running it somewhere means fighting infrastructure that most people don't want to touch.
Cloud in a Bottle is the project our team needed and couldn't find: a corner of the cloud that's genuinely yours. Where apps install as easily as on your phone, and the data lives on hardware you control.
What people deploy
- Personal tools: AI-generated apps, scripts, and utilities with nowhere useful to host them
- Open source software: Matrix, Minecraft servers, notes apps, project management tools
- Dev and creative tools: coding agents, image-making software, anything you built and want to share with a real URL
- Containerized web apps: add a
cloudinabottle.tomlmanifest to a repo with a Dockerfile and it's deployable
Get Cloud in a Bottle
Run it yourself
Cloud in a Bottle runs on your own hardware, a local virtual machine, or a cloud server. Follow the deployment guide to install it.
Managed hosting
If you'd rather not run your own server, Imbue can provision one for you. We configure it with your SSH key, then hand it over.
How it works
The Python router is the control plane for your instance. Its dashboard and APIs install apps from Git repositories, read their cloudinabottle.toml manifests, build their Dockerfiles with rootless Podman, and manage updates, logs, and the container lifecycle.
By default, each app's main HTTP port is bound to the host's loopback interface. The router proxies HTTP and WebSocket requests to the right container based on the app subdomain. App routes require owner authentication by default, while the manifest can declare paths that should be public. In the standard public deployment, Caddy handles HTTPS and CoreDNS provides wildcard DNS for app subdomains.
App storage is organized into permanent data, temporary files, and archive storage. The manifest controls which tiers the container can access. Platform state and permanent app data are stored on your instance. Archive data can stay local or use S3-compatible storage you configure.
Documentation
Read the Cloud in a Bottle manual for platform concepts, app development, and operating guides. Useful starting points include:
License
Cloud in a Bottle is provided under the AGPL-3.0 license.
We may move to a different license in the future, something like a fair source license, with the intent that personal use will always be unrestricted, while commercial use may be scoped to support a sustainable project.
Cloud in a Bottle is an Open Source project from Imbue.