If you run your own instance of KoboToolbox, you should be aware of upcoming changes that will affect you.
The repositories kobo-install and kobo-docker, which we at Kobo use ourselves and which we offer publicly for self-hosters, are being updated to better match Docker best practices and our Kubernetes environment.
Please review these notes and consider testing these changes now in a separate environment from your production service.
The main changes are:
- Use of only a single service within each Docker container. Instead of simply
kpiandkobocatcontainers, which each hosted multiple services, you will now seekpiand separate containers for each Celery service:worker,worker_low_priority,worker_kobocat, andbeat. - Consolidation of KoboCAT, previously an entirely separate Django project, into KPI as an application called
openrosa. For this reason, you will no longer see a separatekobocatcontainer: the code that previously ran there now runs inside thekpicontainer. - Removal of any references to a secondary database server. This was always an alpha-level feature, and it has not been receiving active support. We at Kobo do not use it any longer and are not aware of it being used anywhere else.
kobo-installdoes still allow you to assume control of your own databases by answering “yes” during configuration to the question “Do you want to use separate servers for front end and back end?” From there, you may self-manage advanced database features like replication. - Removal of support for WAL-E backups. Simple database dumps are still supported. WAL-E is obsolete, and what it provides is an advanced use case better left to independent management outside of
kobo-install(see the previous point above). If you need continuous archiving, please opt out of havingkobo-installconfigure your PostgreSQL instance, and consider using pgBackRest or WAL-G, both of which are actively supported.
Minor changes include:
- Upgrading NGINX from 1.21 to 1.26.
- Upgrading Redis from 6.2 to 7.2.
- Renaming some environment variables. These are automatically set by
kobo-install, but if you usekobo-dockerdirectly or set custom environment variables, this may affect you. Refer to kobotoolbox/kpi#4948 for a complete list of these variables.
What do I have to do?
Note: these steps apply to kobo-install. If you use kobo-docker directly, we assume you have the skill needed to adapt your configuration.
- From your
kobo-installdirectory, stop all services and remove Docker resources by executing./run.py --stop. - In the same directory, execute
./run.py --update 2.024.25a. - Review the configuration as prompted.
- When asked “Do you want to (re)start containers?”, answer “yes”.
If you have trouble, please post in Discussion of upcoming changes for self-hosters.
Thanks for using KoboToolbox!
