ODK Central CI/CD (non default ports)

Hi Nelson,

I was able to deploy ODK Central on Hetzner using Elestio. Here are the steps that I performed:

1- Update docker-compose.yml

We need to update docker-compose.yml by following this instruction. So that it can read UPSTREAM_HTTPS_PORT environment variable.

2 - Create CI/CD pipeline

Pipeline configurations:

Build command: touch ./files/allow-postgres14-upgrade && git submodule update -i && docker compose build

Run command: docker compose up -d

With the above commands I don't need life cycle scripts.

Environment variables:

DOMAIN=central-u13383.vm.elestio.app
(copy it from Elestio once target is created)

SYSADMIN_EMAIL=myemail@gmail.com

SSL_TYPE=upstream

HTTP_PORT=8989
HTTPS_PORT=8443
UPSTREAM_HTTPS_PORT=443

Reverse Proxy:

HTTPS 443 -> HTTP 172.17.0.1 8989 /
(note that I am pointing to the http)

First run obviously failed because Elestio installs old version of docker engine and docker compose. ODK Central needs "Docker Engine v23.x and Docker Compose v2.16.x or greater".

1- Update Docker:

I opened the terminal from Elestio, uninstalled the existing docker by following this instruction and then install the latest version using this instruction.

2- Added swap

Followed this instruction to add the swap.

3- Restarted the target

2 Likes