Disclaimer: (28 Mar 2018) Cloudron is not a web app that you can just download and run. It is more akin to OS software and the final product is made from a lot of components carefully stitched together. It is also an operational service where we push out updates continuously and as such "version numbers" are not very meaningful. For this reason, we don't advertise Cloudron as "open source" anymore since people are often mistaking it to be "free" (as in beer). We continue to develop Cloudron in the open.
Cloudron is a platform for self-hosting web apps like WordPress, MediaWiki, Rocket.Chat, ownCloud on your server. My previous post gives an introduction of the Cloudron.
We are happy to announce that Cloudron is now Open Source. The code is available from our GitLab (self-hosted on a Cloudron, of course) under AGPL.
Let's lay out some of the core ideas that led us to developing the Cloudron:
Self-hosters today have to deal with app installation, DNS setup, SSL setup, alerts, database configuration, firewall, monitoring etc. Our solution?
Obviously, there will be some human intervention involved but the goal is to keep this so low as to make self-hosting a no-brainer.
It should be trivial to install apps on the Cloudron. On the Cloudron, you just give a subdomain and install an app. You can use it immediately without having to run through setup wizards.
Unlike most 1-click solutions, we want to run multiple web apps on a single server. The Cloudron achieves this by containerizing apps using Docker and designing shared app resources (like databases) for multi-tenancy.
A strength of SaaS apps is how quickly and transparently they can be updated. We want to bring the same agility to self-hosters. Security & feature updates to apps must be installed within hours and not days. Cloudron achieves this by implementing an App Store for web apps.
We also want to make tasks like upgrades & migrations at the server level seamless. Imagine, if you can move your data to a different geographic region, or switch your infrastructure provider or upgrade from one ubuntu to another with a simple command.
Nobody likes maintaining passwords for each app. We want to have the platform support user management and make installed apps use the Cloudron as the authentication provider. To be flexible, the user can turn off this integration at the app level. This might make sense for public facing websites like a chat, forum etc.
Like any platform, our success depends on developer mindshare. We wanted to make sure apps for the Cloudron can be built easily and using any framework/language of their choice.
For this, we have implemented an app packaging mechanism based on Docker. Cloudron is fun and easy, here give it a shot.
Cloudron also has a complete REST API allowing you to automate all aspects of the Cloudron.
We want to make self-hosting accessible to all. To this end, we want to build a great UI for managing apps without having to know about all the technical details of server management.
This applies to external users who use the apps as well. There must be no new technical concepts to learn. For example, our own code is hosted at git.cloudron.io, our chat is at chat.cloudron.io and so on. For everyone involved, those links are just another website and the fact that they are hosted on a Cloudron is transparent.
The Cloudron is implemented as a PaaS. 'Addons' implement a shared resource. For example, the MySQL addon, provisions one or more databases for an app. There are many addons available including MySql, Redis, MongoDB, Mail. A complete list is here.
Each addon is impemented as a Docker container. Among other things, this allows us to easily update the addons.
The main platform code is in the box repo. It orchestrates addons, provides user management and serves up a web interface.
There are two way to get the Cloudron:
On a private server managed by us - If you don't feel like managing servers but like the idea of data ownership and control that comes with self-hosting, you can sign up here. You should be up and running in 10 minutes.
We also have a demo (username: cloudron password: cloudron).
Comments/Suggestions/Feedback? Talk to us on our chat.