Hosting Websites on Bare Minimum VPS/Dedicated Servers

How to Utilize Cloudron on Your VPS

Tags: , , , , , Date/Time: April 17, 2019 @ 4:56 pm, by Frank Williams

Ever wanted to host your own web apps on a VPS, but never found the time to learn how to manage and maintain a private, self-hosted server? Let Cloudron help.

Cloudron is a SaaS solution for making self-hosting simple. It’s an online control panel for your VPS that automates everything, from the initial server configuration to the precise and elegant deployment of your self-hosted web apps.

For self-hosting enthusiasts and business users alike, Cloudron offers a treasure trove of amazing open source apps, ready to be installed in an instant. The apps are kept in Docker containers to keep them isolated from each other, and are updated to the latest version automatically. These apps include:

  • WordPress
  • RainLoop
  • Nextcloud
  • OpenVPN
  • Etherpad
  • … And FORTY others, the latest addition being Minecraft Server.

Although Cloudron supports a good handful of free and open source apps, you’ll be tempted to go for the “Standard” plan at $15 / month, which allows for the installation of unlimited apps. That’s because the free plan only supports a pitiful two apps per account. For professional developer setups, apps like GitLab and Redash can be installed with a “Premium” (formerly “Business”) plan at $30 / month.

Today we’re going to walk you through how to get started with Cloudron and show you how easy it is to start self-hosting your own useful web apps. Enjoy.

Requirements

Here’s what you need to get started:

  • A domain name. Cloudron employs a distinct subdomain for each app you run. For example, example.com for your WordPress site, and storage.example.com for your Nextcloud app.
  • A VPS or dedicated server with at least 1GB RAM and 20GB disk space. Cloudron doesn’t work with ARM, nor does it work with LXC or OpenVZ because that would be containerception. Since the documentation specifies only one OS, Ubuntu 18.04, it’s safe to assume you need a VPS running this OS unless you want trouble down the line.
  • Open firewall ports on port 80 and 443.

That’s pretty much it. Cloudron will automatically configure your DNS, databases, accounts, and SSL certificates to provide you with a complete turn-key solution to hosting any app you want. Each app is containerized and isolated from every other app, so there’s no need to stress about conflicts.

They call it a smart server, though I prefer the term “putting-your-local-sysadmin-out-of-a-job”.

Install Cloudron on your VPS

Run the Cloudron setup script

Installing Cloudron is extremely simple. Log in to your freshly-installed Ubuntu 18.04 VPS as root and download the Cloudron setup script with wget:

wget https://cloudron.io/cloudron-setup

Give the script permission to execute:

chmod +x ./cloudron-setup

Now, run the script, by passing the name of your VPS provider as an option (–provider). Provider options include azure, cloudscale, digitalocean, ec2, exoscale, hetzner, linode, netcup, ovh, rosehosting, scaleway, and vultr. If your provider isn’t listed, then you can just use “generic”:

./cloudron-setup –provider generic

When the installation is complete, reboot your VPS and then go to https://Your_IP_Address. You will see a security warning, which you can ignore by adding an exception for the self-signed SSL certificate in your browser.

Add your domain

It’s time to add your domain so that Cloudron can create the correct DNS host records and configure your SSL certs with Let’s Encrypt. Here’s an example for a domain registered at Namecheap.

For this step, you will need to log in to your domain registrar’s website (e.g. Namecheap) and get a DNS management API key or auth token, which Cloudron uses to automatically set your host records.

The default Certificate Provider option is set as “Let’s Encrypt Prod – Wildcard” because, with the wildcard, each subdomain (for each app) can remain hidden from Certificate Transparency logs. Without the wildcard, your app’s subdomain will be exposed to the public.

Create an admin account

Create a new admin account in a few quick steps as shown below and you’re ready to go.

Deploy an app on the Cloudron App Store

To access the App Store, you have to sign up for a Cloudron.io account. Do so, and sign in to start installing apps. The Cloudron dashboard is installed on the subdomain my.example.com and every app you install is assigned to a subdomain. When naming your app’s subdomain, try to keep it short and memorable, like docs.example.com for a Collabora Office app instance or storage.example.com for a Nextcloud app instance.

When your app has been installed, hover your mouse over the app in My Apps and you will see several options to manage it, including:

  • Backups
  • Configure
  • Terminal
  • Logs

Clicking on Configure lets you change the subdomain, add user and group permissions, increase the PHP memory limit, and more. For more advanced configuration, you can use the web-based Terminal which emulates an SSH connection into the app container. Most of the apps won’t need much fine-tuning, thanks to Cloudron’s sane working defaults.

The Logs can be viewed in your browser and provide information on warnings and errors. They can also be downloaded in full at the click of a button.

Security

Although Cloudron is designed to be secure by default, it is recommended that you manually lock down SSH access and change the SSH port to 202 instead of 22. See Cloudron’s guide on Securing SSH for instructions.

Cloudron comes with automatic firewall configuration using iptables, and you are cautioned against modifying the firewall in Cloudron. Instead, you should use your VPS provider’s firewall if you need to add any extra firewall rules.

Getting gritty with the Cloudron CLI

Cloudron empowers developers to install apps from source and make custom config changes using a CLI that interacts with the Cloudron REST API. Keep in mind that apps built from source do not receive the regular updates that apps installed via the App Store get. To dive into the nitty-gritty of the CLI, you will want to read the documentation for both the CLI and the API.

1 Comment

  1. Ouji:

    But what about Yunohost? Or Freedombox?

    April 22, 2019 @ 8:16 am | Reply

Leave a Reply

Some notes on commenting on LowEndBox:

  • Do not use LowEndBox for support issues. Go to your hosting provider and issue a ticket there. Coming here saying "my VPS is down, what do I do?!" will only have your comments removed.
  • Akismet is used for spam detection. Quoting webhostingtalk.com URL seems to get binned consistently here, but I do peek into the spam box frequently to publish those comments.
  • Use <pre>...</pre> to quote the output from your terminal/console, or consider using a pastebin service.

Your email address will not be published. Required fields are marked *