getodk / getodk/central

Make all service locations configurable

Open
#675 1 comment 2 reactions 0 assignees View on GitHub
needs discussion ops
Dominant language
JavaScript
Stars
226
Forks
235
Avg merge
2d 22h
Merged PRs (30d)
19

Description

As proposed by @tobiasmcnulty at https://github.com/getodk/central/pull/546

This would mean adding env vars for:
- Backend location, the nginx config currently hardcodes it to `http://service:8383`
- Enketo location, the nginx and backend configs currently hardcode it to `http://enketo:8005` and `http://enketo:8005/-`; the Enketo config currently hardcodes a subpath of `-`. I believe Central itself knows about and uses the `-` suffix.
- Pyxform location, the service config currently hardcodes it to a host of `pyxform` and a port of `80`
- Enketo redis dbs, the Enketo config currently hardcodes the main db to `enketo_redis_main` with port of `6379` and the cache db to `enketo_redis_cache` with port of `6380`. If we were to make this one configurable from .env, we should set the `url` for each db which is more flexible than setting host and port ([see docs](https://github.com/enketo/enketo/blob/main/packages/enketo-express/tutorials/10-configure.md#-redis)).

Currently uses who want this level of configurability need to use their own way of editing the relevant config files.

So far, we've kept configurability to a minimum and treated the Docker Compose file as the preferred way of running. A the same time, we know some users prefer to orchestrate services themselves.

From @matthew-white: these get configured differently for local dev as well (e.g. 127.0.0.1) so there's a benefit for that context as well.

CC @spwoodcock

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.