Skip to content

Check the install

Run this after the engine and the app are both in place.

The Compose project is the one you started on the engine page, and you can open CAPS in DHIS2.

Check Pass
docker compose ps migrate exited 0; api, both workers, and one scheduler are running
API from the DHIS2 network GET /system/info returns 200
App Settings tag Connected
Menu Dashboard, Pipelines, Executions, Climate data, Settings, and About render without a route error
About Connected systems loads

GET /system/info does not use an authentication header. The distroless API image has no wget and no shell, so do not use docker exec or docker compose exec api. Call it from the DHIS2 server, or from another container on the API network:

Terminal window
curl -fsS http://api:4000/system/info

A 200 from the operator laptop only proves the published port. The Route is called by the DHIS2 server.

A passing body looks like this. The info objects are each system’s own payload and are omitted here:

{
"caps": {
"version": "3.0.0",
"chap": { "connected": true, "info": {} },
"dhis": { "connected": true, "info": {} },
"climateApi": { "connected": true, "info": {} }
}
}

HTTP 200 means the API process answered. A system can still be "connected": false with an error string. Fix that URL on CHAP, climate, and DHIS2 before you treat the install as finished.

On About, the section heading is Connected systems. The cards are CAPS API, CHAP, DHIS2, and Open Climate Service. A source-instance card can say Route is disabled.

Every row in the table passes, and Settings shows Connected.

Creating the first pipeline starts in Before a pipeline. Do not create one to prove the install.

Troubleshooting maps the usual symptoms to the page that owns the fix.