Installation of ODK Central on Digital Ocean or AWS

1. What is the problem?

Followed all the steps as mentioned on

Please find the attached screenshot of docker-compose ps

Screenshot 1:

root@ubuntu-central:~/central# docker-compose ps
       Name                  Command            State             Ports
central_postgres_1       Up       5432/tcp
enketo            Up       8005/tcp
                     /bin/ ...
enketo_redis_cache       Up       6379/tcp
                     redis ...
enketo_redis_main       Up       6379/tcp
                     redis ...
mail                 /bin/ exim    Up       25/tcp
                     -b ...
nginx                /bin/bash /scripts/odk-    Up>443/tcp,
                     set ...                   >80/tcp
pyxform              waitress-serve --port=80   Up
                     - ...
secrets           Exit 0
                     ./gen ...
service           Up       8383/tcp
                     ./wai ...

2. What app or server are you using and on what device and operating system?

Docker Image on Digital Ocean as recommended.

3. What have you tried to fix the problem?

Tried "make run" in the "server" directory and "serve -s dist" in the client directory.

Screenshot 2:

{"message":"Expected an API version (eg /v1) at the start of the request URL.","code":404.2}

Screenshot 3:

Unable to get the central options.

I want my central server to be up and running which can be linked to the collect application to capture the data from the field.

Thanks in advance for your help and support.

Facing a similar situation. Everything is successful but couldn't access the central through public and private IP.

All the steps mentioned in the are followed. Request to guide and refer to the attached screenshot.

What is your SSL_TYPE and DOMAIN in ~/central/.env?

When you put your domain name at, do you get IP address of your machine?

Thanks for the reply.

While DNS lookup, I'm receiving the IP address of my droplet. In addition, the SSL_TYPE=letsencrpt
DOMAIN= domain (hidden)

After "docker-compose up -d" do I need to perform server and make run in client and server directories?

No. Is there something in the documentation that suggests you should run those commands?

As to the issue, if can't disclose your domain or IP, then it's hard to double check to see if everything is correct.

Look at your logs and see if there are any hints as to what is wrong. docker-compose logs --tail 50 nginx.

Thanks. I can locate an error saying "Cerbot failed for domain-name." and also "Couldn't find keyfile /etc/letsencrypt/live/ rivkey.pem for /etc/nginx/conf.d/odk.conf.nokey".

While looking at the central-frontend documentation, it says to run "serve -s dist". This helps to browse the welcome screen on ip:5000 url as per my first post.

Sounds like an issue with your domain name. Without knowing exactly what it is, hard to know what the problem is.

Can we access using the public IP instead of the domain name?

Thanks for your support @yanokwa

My app is now working.

1 Like

What was the issue and the fix? Knowing both will help us improve the documentation and help others from running into the same issue.

Yes, the issue got resolved.

Reinstalled the ODK Server
Checked the DNS Records and ensured the A address is marking to the correct IP.

1 Like

I ran into similar problem. This is the output i get when i execute docker-compose logs --tail 50 nginx.

Is there any fix for this please?