How to install KoboToolbox by using Docker on Ubuntu Server 16.04

KoBoToolbox is a suite of tools for field data collection for use in challenging environments. KoboToolbox is free and open source. Most of the users are the staff who are working in humanitarian crises, as well as aid professionals and researchers working in developing countries. KoboToolbox developers and researchers are based in Cambridge, MA and many other places around the world.


You can find a nice instruction on KoboToolbox GitHub site

First of all, you need to check for Docker installation by this link

Clone the repository by typing:

~$ git clone

It will clone the necessary documents in kobo-docker folder

~$ cd kobo-docker

The first decision to make is whether your instance (kobo) will use secure (https) or insecure (http) communications when interacting with clients.

If it is local one:

~$ nano envfile.local.txt

If it is server one

~$ nano envfile.server.txt

Fill the lines as shown below with your username and password:

Save and exit.

Then type :

For Local:

~$ ln -s docker-compose.local.yml docker-compose.yml

For Server:

~$ ln -s docker-compose.server.yml docker-compose.yml


~$ docker-compose pull

~$ docker-compose up

It will take some time based on connection

After it is finished you can check on your browser (for local):


Congratulations you have a fresh instance of KoboToolbox!

Use the below link for Site Administration


To stop the container you can type:

~$ docker-compose stop




  1. Sorry but it does not work as of today.

    ~$ docker-compose pull

    gives an error and then at
    ~$ docker-compose up
    it fails with
    nginx: [emerg] BIO_new_file(“/tmp/kobo_toolbox_secrets/ssl.crt”) failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(‘/tmp/kobo_toolbox_secrets/ssl.crt’,’r’) error:2006D080:BIO routines:BIO_new_file:no such file)


  2. “The first decision to make is whether your instance (kobo) will use secure (https – local ) or insecure (http – publicly accessible -server) communications when interacting with clients.”

    Is it not the opposite: https for publicly accessible server and http for local one?


Leave a Reply

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

Time limit is exhausted. Please reload CAPTCHA.