GeoNode Customisation¶
GGIS does not use the upstream GeoNode packages directly. Both the GeoNode backend and the GeoNode Mapstore frontend client are replaced with IGRAC-maintained forks.
GeoNode Backend (submodule)¶
Source: github.com/kartoza/geonode — branch 4.4.3.igrac
The GeoNode backend fork is included as a Git submodule at geonode/ in the repository root.
It is cloned into the Docker image at build time (see deployment/docker/Dockerfile) and
replaces the upstream GeoNode installation entirely.
Changes in this fork are patches that cannot be applied from the outside via Django's extension points — template overrides, signal hooks, or settings — and therefore had to be made directly in the GeoNode source.
GeoNode Mapstore Client (pip package)¶
Source: github.com/kartoza/geonode-mapstore-client — branch 4.4.3-igrac
The Mapstore client is the React/Mapstore2-based frontend that GeoNode uses for the map viewer, layer detail pages, and dashboards.
GGIS replaces the upstream package with the IGRAC fork, installed directly from GitHub
in deployment/docker/REQUIREMENTS.txt:
The Dockerfile explicitly uninstalls the upstream version first to ensure the fork takes precedence:
Customisations in this fork include IGRAC-specific UI changes to the map viewer and related frontend pages that cannot be achieved through GeoNode's template override mechanism.
Keeping Forks Up to Date¶
Both forks are pinned to a specific branch/tag. To update them:
- GeoNode backend — update the
GEONODE_VERSIONbuild arg indeployment/docker/Dockerfileand point thegeonodesubmodule to the new commit. - Mapstore client — update the Git ref in
deployment/docker/REQUIREMENTS.txt(e.g. change@4.4.3-igracto the new tag), then rebuild withmake build.