Upgrading Central

We release new versions of Central regularly. You do not have to upgrade to the latest version immediately, but we generally recommend that you do so to get access to the newest features, bug fixes, and security updates.

Note

You can check your current version by adding version.txt to the URL. For example https://sandbox.central.getodk.org/version.txt.

To perform an upgrade, you'll first need to get to the software. You'll need to log into your server's command line prompt again, like you did when you first set up the server. If you used our DigitalOcean installation steps but can't quite remember how to do this, we suggest reviewing the section Installing ODK Central as a reminder, or if you can't remember your password to start at the top of that section to reset your password.

Once you are logged into your server, navigate back to the project folder (cd central). Then, get the latest version of the infrastructure: git pull.

(If you have made local changes to the files, you may have to start with git stash, then run git stash pop after you perform the pull. If you aren't sure, just run git pull anyway and it will tell you.)

Now, get the latest client and server: git submodule update -i. Then, build your server from the latest code you just fetched: docker-compose build.

Note

If you run into problems with this step, try stopping the Central software (docker-compose stop) and retry docker-compose build after it has shut down the Central website.

Finally, restart the running server to pick up the changes: docker-compose stop and docker-compose up -d.

Upgrading to Central 0.9

Particularly if you are installed on DigitalOcean, you will need to modify the system firewall for Enketo features in Central to work correctly.

The quickest way to do this is to run ufw disable while logged into your server's command line prompt. You should see the message Firewall stopped and disabled on system startup. If so, you have configured the firewall correctly.

For advanced administrators

While it sounds dangerous, disabling your system firewall does not put your server at greater risk. In fact, most Linux operating systems come with the system firewall disabled.

If you don't want to disable the firewall entirely, you can instead configure Docker, iptables, and ufw yourself. This can be really difficult to do correctly, so we don't recommend most people try. Another option is to use an upstream network firewall.

The goal here is to ensure that it is possible to access the host through its external IP from within each Docker container. In particular, if you can successfully curl your ODK Central website over HTTPS on its public domain name, all Enketo features should work correctly.