Use cases
Helping someone as an AI assistant? Start at For AI assistants, which turns these pages into a menu of options with the exact commands.
chap-devops deploys Chap, but Chap is only one of the shapes a deployment can take.
The same directory layout, the same commands and the same chap-devops up /
chap-devops status / chap-devops doctor loop work for any combination of:
| Piece | What it is | How you ask for it |
|---|---|---|
| chap-core | Chap itself: the API, its worker, Valkey and PostgreSQL | on by default; --without chap-core or --only leaves it out |
| model services | chapkit forecasting models from the marketplace, or your own | --models ID,..., later chap-devops models enable ID |
ocs | Open Climate Service: climate data over STAC and openEO | --with ocs, or --only ocs |
s3 | an S3-compatible object store for OCS to keep objects in | --with s3, or --only ocs,s3 |
dhis2 | a demo or development DHIS2 with its own database | --with dhis2, or --only dhis2 |
--with adds components to chap-core. --only names the whole set, and
chap-core is part of it only if you list it. Each page below is one shape
people actually deploy: the command that creates it, what you get, and what to
run next. They are not exclusive: a deployment can move from one shape to
another later with chap-devops components enable / disable and chap-devops models enable / disable. See Growing a deployment.
Only one piece
| I want | Page | First command |
|---|---|---|
| only DHIS2 (2.42, 2.43, 2.41 or the next one) | A DHIS2 on its own | chap-devops init dhis --only dhis2 |
| only OCS (with or without S3) | An OCS server on its own | chap-devops init climate --only ocs,s3 |
| only one model service | A chapkit model service on its own | chap-devops run chapkit_simple_multistep_model |
| only some model services | Several model services side by side | chap-devops init models --only none --models ID,ID |
| any number of model services, no folder | Any number of model services, no folder | chap-devops run ID, once per model |
Chap
- Chap with forecasting models: chap-core and the models it runs; the default, or every model in the marketplace.
- Chap with climate data from OCS: chap-core with Open Climate Service beside it.
- Chap with a local DHIS2 and the Modeling App: chap-core, models and a DHIS2 of the version you pick, connected.
- Chap for a DHIS2 that runs elsewhere: chap-core on a server, used by a DHIS2 someone else runs.
- Combinations: OCS and DHIS2 without Chap, a model beside OCS, everything at once.
Evaluating with the chap CLI
- Evaluating a model on your own data: chap-core’s
chap evalon your CSV, throughchap-devops chap, with no Python or uv.
Developing Chap, a model or DHIS2
- A new model of your own:
chap-devops models newmakes a model project in Python or R, and Docker builds it. - An MLproject model, with no image to build:
chap-devops chapkit mlproject runserves the directory, chap-core tests it, andmigrateandexportchange it to a chapkit service and back. - Your model from its checkout, with Chap: chap-devops runs chap-core; you run your model with
uv runand it registers. - A model image you built yourself:
docker builda model and run it in Chap without publishing it. - chap-core from its checkout, with the models: you run chap-core; chap-devops runs the models and registers them with it.
- chap-core built from its checkout: chap-devops builds chap-core from your clone and runs it with everything else.
- A DHIS2 you run yourself, with Chap from chap-devops: your DHIS2 and a chap-core from chap-devops, connected.
- A DHIS2 from chap-devops, with a chap-core elsewhere: a DHIS2 from chap-devops and your chap-core, connected.
More than one, and changing your mind
- Several deployments on one machine: taking turns on the default ports, or giving each its own.
- Growing a deployment: adding or removing chap-core, OCS, DHIS2 or models later.
- Taking over a chap-admin deployment: moving a server that runs chap-core’s compose files and
chap-adminto chap-devops, with its database.
Which commands work where
| Command | Needs chap-core | Without chap-core |
|---|---|---|
up, down, restart, logs, status, doctor, sync | no | work on whatever the deployment has |
components, models enable/disable/add/expose | no | work; models get a host port |
models test | no | runs chapkit test in the model’s container |
update | no | pulls the images; --chap-tag and --pin-chap-core refuse |
backup create / restore | no | back up the files and the volumes, and a pg_dump of the DHIS2 database when DHIS2 is a component; there is no chap-core database to dump |
open | no | opens whatever is enabled |
models test --backtest, jobs, api | yes | refuse, naming chap-devops components enable chap-core (api --url still works) |
dhis2 connect | yes | refuses: there is no chap-core to connect DHIS2 to |