How to deploy a web application quickly with Ubos on Raspberry Pi

Ubos, which translates to "You are the boss", is a platform to help intermediately skilled users set up a home server and deploy web apps on it in a most automated way. Ubos puts you in the driver seat without knowing the details of the motor. On the other hand, it does not keep you from exploring the depths of the system.

Ubos is based on Arch Linux. Do not let this scare you away. Ubos reduces administrating the platform and deploying web apps to a mere handful of commands. That also means there is no GUI, it is simply not needed.

Ubos has images available for Raspberry Pi (RPI), Raspberry Pi 2 (RPI2), Beagle Bone Black, X86_64 PCs and for Virtualbox. We will have a look at the performance of the RPI2 when running apps like ownCloud on Ubos to see how the RPI2 outpowers its predecessor. The available apps for Ubos at the time of writing are WordPress, ownCloud, WikiMedia, the URL-shortener Shaarli, the blogging platform Known, and Jenkins as the build platform that Ubos uses itself for continuous development.

For our test run we download the image for the RPI2, which weighs in at around 320 MB. An SD card with a capacity of 4 GB or more is well suited to write the image to. Powering up the RPI2 with the inserted card boots us straight into Ubos. On a side note, inserting and ejecting SD cards on the RPI2 improved largely by using a click mechanism, which  prevents fumbling to get the tiny card in or out, especially with some of the casings available. 

Once you are booted into a terminal, either on a monitor attached to the RPI2 or remotely through SSH, you will need to login with the standard password 'root'. I highly recommend that you change that immediately using the passwd command. At this point of its development, Ubos still needs wired internet. The developers are working on WiFi for the final version due sometime this year.

Now you want to check with ip command, if an IP has been acquired.

# ip addr

What was traditionally called eth0 is in this case called enp0s25. That is the new way of naming with systemd's networkd daemon that Arch makes use of. You should be seeing either '192.168.0.24' or an IP from the IP pool of your network assigned by DHCP.

The first action, like with any new operating system, should be an upgrade of the system. Here we get in touch with the ubos-admin command that we will see more of in the course of this test. To bring the system to a current state, we use:

# ubos-admin update

which updates the base system as well as the apps we will later deploy. It is an equivalent to:

# pacman -Syu

that is used in Arch Linux to update the system. After the update is done, we can get our first web app going. The general command for that is:

# ubos-admin createsite

which will, upon hitting enter, ask you about the name of the app you would like to deploy followed by a handful of questions.

As we would like to add a grain of security, we will use:

# ubos-admin createsite --tls --selfsigned

to secure our app with SSL and a self-signed certificate that Ubos will automatically set up for you. If you have a certificate signed by a certificate authority (CA), you can use that as well. 

Let's say we want to deploy ownCloud 8 on our RPI2. So in the dialog you enter the name of the app as 'owncloud', and as hostname you use 'ubos-raspberry-pi2.local'. That means that ownCloud will be accessible at http://ubos-rpi2.local/ later. If you want to use more than one app on the device or use your own hostnames, you will have to setup DNS for yourself.

After filling in the other few obvious answers, your app will be set up and configured. In the case of ownCloud this includes setup of a MariaDB database, creating a certificate, setting up SSL, creating a virtual host within the Apache webserver and configuring PHP. This will take only a few minutes, and you are ready to start ownCloud 8 in your browser. To do so you can use the assigned IP as in http://192.168.0.24/ or the above mentioned http://ubos-rpi2.local/owncloud. You will see a warning that informs visitors of your ownCloud instance that you use a self signed certificate and not one signed by a CA. You can also watch a YouTube video by the developers that walks you through the process.

Ubos is easy to use. All you need is the ability to read the documentation. You can deploy a growing number of web apps on a growing number of devices. You can also back up your apps and the content created within. Most of the commands available are based on the ubos-admin stub, easy to use and remember. Here is a list of the most common ones:

  • ubos-admin update: update Ubos
  • ubos-admin createsite: deploy a web app
  • ubos-admin listsites: show all installed apps
  • ubos-admin undeploy --siteid <ID>: remove the app with the siteid <ID>
  • ubos-admin undeploy --host <Hostname>: remove all apps with ho stname <Hostname>
  • ubos-install: installs Ubos to a harddisk
  • ubos-admin backup --out all.ubos-backup: backup of all apps
  • ubos-admin restore --in <backupfile>: restore a backup
  • ubos-admin backup --appconfigid <appconfigid> --out <backupfile>: backup one app

The documentation on the website is a work in progress, but quite thorough already. It also has a section for making apps available for Ubos and how to develop for Ubos. You can talk to the head developer on IRC at #ubos on the Freenode server, where he goes by the nickname of <j12t>. The Raspberry Pi 2 runs quite nicely with apps that need a database, compared to its predecessor. That makes working with Ubos on the tiny computer a pleasant way to set up a private server.


Subscribe to Xmodulo

Do you want to receive Linux FAQs, detailed tutorials and tips published at Xmodulo? Enter your email address below, and we will deliver our Linux posts straight to your email box, for free. Delivery powered by Google Feedburner.


Support Xmodulo

Did you find this tutorial helpful? Then please be generous and support Xmodulo!

The following two tabs change content below.

Ferdinand Thommes

I live as linux developer, technical author and city guide in Berlin, Germany and Charleston S.C. Other than being nerdy I dig riding bicycles and love cooking and good literature.

Leave a comment

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