ODK Central deployment without nginx for deployment in multi-app and kubernetes environments

What high-level problem are you trying to solve?

  • Deploy ODK-Central in multiple server environment, including server that uses multiple apps, hence multiple NGINX reverse proxy and kubernetes

Any ideas on how ODK could help you solve it?

  • Remove the requirement to bind a domain in NGINX to run and use the enketo forms through an HTTPS-only endpoint

Following the ODK Central official deployment usually requires a ODK-only server deployment, because it comes with an inbuilt NGNIX, that binds the domain to the public IP address. For most organizations, this requirement leads to maintaining an exclusive server with at least 4vCPU and 4GB memory server with limited to no option to use it for any other purpose.

To my knowledge the ODK Central comes with the NGNIX in built, because of the Enketo’s requirement to check the same site DNS. Earlier i have removed the same site requirement from Enketo configuration and could show the Enketo web form in a React modal, for example.

However, making this restriction also limits a lot of organizations’ ability to self-host, in their own environment. Possibly an ODK instance can be run using much smaller hardware resources.

I’m looking forward to ODK Web Forms - maybe this will simplify the build step or even allow to use all pre-built images. My use case is to spin up a very ephemeral and disposable Central instance in a devcontainer for development and testing of my R package ruODK. (DevOps: Provide ODK Central in devcontainer and GH actions · Issue #170 · ropensci/ruODK)

Edit: Use images for all services · Issue #677 · getodk/central