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