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

Last updated on August 30, 2020 by Dan Nanni

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), 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 RPI22 from the official source, which weighs in at around 320MB. An SD card with a capacity of 4GB 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.

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:

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.

Support Xmodulo

This website is made possible by minimal ads and your gracious donation via PayPal or credit card

Please note that this article is published by Xmodulo.com under a Creative Commons Attribution-ShareAlike 3.0 Unported License. If you would like to use the whole or any part of this article, you need to cite this web page at Xmodulo.com as the original source.

Xmodulo © 2021 ‒ AboutWrite for UsFeed ‒ Powered by DigitalOcean