KoBo Toolbox Requirements and Pre-requisites
Running your own instance of KoBo Toolbox will put you in the role of the Owner, as depicted in the diagram. The obvious pre-reqisite is a host, i.e. a hosting server with full administrative access.
KoBo Toolbox Setup procedure advises the installation of Docker Compose on 64bit Linux.This guide covers the operation on Ubuntu Linux Xenial. Other Ubuntu options require nearly the same procedure, while other Linux and othe OS installations may differ significantly, refer to Install Docker Compose official guide.
Resource estimates are provided for two cases:
For a production system with tens (and hundreds) of users, minimim recommended allocations are provided in bold; For a pilot system, that will provide the full KoBo functionality to a very imited number of users, italics figures indicate the smallest configuration known to have ran the system in the past.
- Virtualized or preferably bare server:
- Full CPU or more (2 cpu cores)
- 4 GB RAM or more (2 gb ram)
- 200 GB storage space (50 gb storage)
- 50 GB backup storage (5 gb backup)
- Internet connectivity
- OS: Ubuntu Xenial, v16.04.1 LTS
Practically the only software package that has to be installed on the Host, apart from OS packages and Git, is the Docker engine. That in effect means that most of the configuration, operation and maintenance tasks are performed through Docker. Youi might want to familiarize yourself furtherly with official Understanding Docker article and linked pages.
A Docker image is a read-only template with instructions for creating a Docker container. An image might contain an Ubuntu operating system with Apache web server and a simple web application installed.
Images, or rather instructions how to obtain them on-line, are provided by the Software vendor. Except during the system setup stage, they are of little particular interest to the Owner in our context and will not explained in detail.Please refer to article on Docker.com for more information.
The actual work occurs within the Containers.
A container is a light-weight virtual machine - it uses the host machine’s Linux kernel, and consists of any extra files you add when the image is created, along with metadata associated with the container at creation or when the container is started. Each container is built from an image. The image defines the container’s contents, which process to run when the container is launched, and a variety of other configuration details.
KoBo Toolbox setup, as described in this document, consists of (at least) nine Containers, running a total of 11 services. There are eight different services in the lot of 11, or eight different technologies in the coloquial sense of the phrase. This aspect alone can pose a significant challenge in adopting this technology. The Docker's promise, however, is that the Software vendor will control the running environment so finely, that incidents requiring technical expertise will occur less frequently during the product lifetime.
Please refer to KoBo Toolbox Architecture for further information..
Docker Registry stores the aforementioned Images, needed to start Containers.
After your Software vendor builds a Docker image and publishes (pushes) it to a public or a private Registry. it becomes readily-available to use in your system. From an usual software patching stand-point, it is pure magic: the application and its environment come pre-packed and ready to run. Patchied software (i.e. "with security updates installed") tends to have more environment-related issues, as the environment (ithe computer it is running on) changes with time, becoming less controlled or even unknown to the Software.