not 100% sure because of missing log timestamps, but mysql restarts after the box
has started up. As seen from logs below, we try to mark the apps for restart on
platform update. But this failed because mysql was restarting at that time.
This ended up with e2e test failing.
box:apps restartAppsUsingAddons: marking nc4801.autoupdatetest.domain.io for restart
box:apps restartAppsUsingAddons: error marking nc4801.autoupdatetest.domain.io for restart: {"name":"BoxError","reason":"Database Error","details":{"fatal":true,"code":"PROTOCOL_CONNECTION_LOST"},"message":"Connection lost: The server closed the connection.","nestedError":{"fatal":true,"code":"PROTOCOL_CONNECTION_LOST"}}
box:apps restartAppsUsingAddons: marking wekan1398.autoupdatetest.domain.io for restart
box:database Connection 51 error: Connection lost: The server closed the connection. PROTOCOL_CONNECTION_LOST
box:database Connection 52 error: Connection lost: The server closed the connection. PROTOCOL_CONNECTION_LOST
Box GET /api/v1/cloudron/status 500 Internal Server Error connect ECONNREFUSED 127.0.0.1:3306 41.251 ms - 217
Cloudron
Cloudron is the best way to run apps on your server.
Web applications like email, contacts, blog, chat are the backbone of the modern internet. Yet, we live in a world where hosting these essential applications is a complex task.
We are building the ultimate platform for self-hosting web apps. The Cloudron allows anyone to effortlessly host web applications on their server on their own terms.
Features
-
Single click install for apps. Check out the App Store.
-
Per-app encrypted backups and restores.
-
App updates delivered via the App Store.
-
Secure - Cloudron manages the firewall. All apps are secured with HTTPS. Certificates are installed and renewed automatically.
-
Centralized User & Group management. Control who can access which app.
-
Single Sign On. Use same credentials across all apps.
-
Automatic updates for the Cloudron platform.
-
Trivially migrate to another server keeping your apps and data (for example, switch your infrastructure provider or move to a bigger server).
-
Comprehensive REST API.
-
CLI to configure apps.
-
Alerts, audit logs, graphs, dns management ... and much more
Demo
Try our demo at https://my.demo.cloudron.io (username: cloudron password: cloudron).
Installing
Note: This repo is a small part of what gets installed on your server - there is the dashboard, database addons, graph container, base image etc. Cloudron also relies on external services such as the App Store for apps to be installed. As such, don't clone this repo and npm install and expect something to work.
Development
This is the backend code of Cloudron. The frontend code is here.
The way to develop is to first install a full instance of Cloudron in a VM. Then you can use the hotfix tool to patch the VM with the latest code.
SSH_PASSPHRASE=sshkeypassword cloudron-machine hotfix --cloudron my.example.com --release 6.0.0 --ssh-key keyname
License
Please note that the Cloudron code is under a source-available license. This is not the same as an open source license but ensures the code is available for introspection (and hacking!).
Contributions
Just to give some heads up, we are a bit restrictive in merging changes. We are a small team and would like to keep our maintenance burden low. It might be best to discuss features first in the forum, to also figure out how many other people will use it to justify maintenance for a feature.