chap-core

Welcome to the Chap modelling platform!

CI PyPI version Python 3.13+ License: AGPL v3 Documentation

This is the main repository for the Chap modelling platform.

Read more about the Chap project here

Code documentation

The main documentation for the modelling platform is located at https://chap.dhis2.org/chap-modeling-platform/.

Development / contribution

Information about how to contribute to the Chap Modelling Platform: https://chap.dhis2.org/chap-modeling-platform/contributor/.

Issues/Bugs

If you find any bugs or issues when using this code base, we appreciate it if you file a bug report here: https://github.com/dhis2-chap/chap-core/issues/new

Launch development instance using Docker

cp .env.example .env
docker compose up

Rebuilding after a source change

docker compose up will reuse an existing chap-core-chap image if one is already built — it does not automatically rebuild when you edit source. If you see a stale chap_core.__version__ or a fix that clearly didn’t land inside the running container, use one of:

make restart       # down && up -d --build (preserves volumes incl. chap-db)
make force-restart # down -v && build --no-cache && up (WIPES VOLUMES)
make chap-version  # print the chap_core version running inside the container

make restart is the right hammer 90% of the time. make force-restart also wipes the Postgres volume, so reach for it only when you need a clean slate. make chap-version is also printed automatically at the end of make restart so version drift is visible at a glance.

Running marketplace models

Chapkit-based models are installed from the CHAP Model Marketplace with chap-admin, once chap is running. A fresh deployment needs this manual step after the first docker compose up -d:

chap-admin install-all

It starts every model service with a verified stable version, registers it in chap from what the running service reports, and adds the model’s verified configurations. chap-admin install chapkit_ewars_model does the same for one model. Include the overlay it writes in later Compose commands: docker compose -f compose.yml -f compose.marketplace.yml up -d. See the CLI setup guide for the details.

Do not start models with compose.chapkit.yml or compose.ewars.yml in a deployment. A service started that way registers a model template but gets no configurations, so it cannot be run. Those overlays are kept for development.

Deploy on Kubernetes

CHAP can be deployed on Kubernetes using our helm chart which can be found here.