Cloudron is now open source
3 min read

Cloudron is now open source

Disclaimer: We have kept this post for historical reasons. We made Cloudron open source, when selling managed hosting was our business model. We have since pivoted into making Cloudron a platform that makes it easy to self-host apps on your own server. Cloudron platform development model has also changed from being Open Source to Source Available. All our app packages and app modules (100's of repositories) are completely Open Source (MIT). This approach allows our customers to self-host without being locked in.

Cloudron is a platform for self-hosting web apps like WordPress, MediaWiki, Rocket.Chat, ownCloud on your server. My previous postgives 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.

Core Ideas

Let's lay out some of the core ideas that led us to developing the Cloudron:

A Complete solution

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.

Turnkey apps

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.

Multiple apps

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.

Continuous updates

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.

Single Sign-On

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.

Developer friendly

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.

User friendly

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.

Architecture

Cloudron architecture

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.

Running Cloudron

There are two way to get Cloudron:

On your server - Simply follow the selfhosting guide to get Cloudron AWS EC2. We are adding support for more server providers (if you are a VPS provider, please contact us).

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).