Skip to content

GeoServer Integration

GeoServer is the main publication and geometry-delivery surface for many CoRE Stack outputs.

You need it when:

  • compute outputs must be published as WMS, WFS, or download-ready layers
  • public geometry routes such as get_mws_geometries and get_village_geometries must work
  • you want the installer validation to test the full publish path instead of stopping with a warning

What The Current Installer Expects

GeoServer is configured through nrm_app/.env:

GEOSERVER_URL=https://host/geoserver
GEOSERVER_USERNAME=admin
GEOSERVER_PASSWORD=your-password

The current install.sh can write these values directly if you provide them as optional inputs:

bash installation/install.sh \
  --input geoserver_url=https://host/geoserver \
  --input geoserver_username=admin \
  --input geoserver_password=your-password

During initialisation_check, the backend now:

  1. reads those env values from nrm_app/.env
  2. probes ${GEOSERVER_URL}/rest/about/version.json
  3. warns if the URL is blank or the credentials are incomplete
  4. only treats the first authenticated computing API as fully publish-ready when GeoServer, GEE, GCS, and admin-boundary data are all ready

If GeoServer is blank, local install validation can still prove the non-publish parts of the backend, but publish and public-geometry flows remain unverified.


Manual Verification

Once the env values are set, test the REST endpoint directly:

curl -u "admin:your-password" \
  "https://host/geoserver/rest/about/version.json"

If that request does not return 200, the current backend initialization check will also report geoserver-probe as a warning or failure.

Use a full base URL that ends at the GeoServer root, for example:

  • https://maps.example.com/geoserver
  • not just https://maps.example.com

Where GeoServer Is Used In The Backend

The most important server-side helpers live in:

That module handles:

  • workspace creation
  • shapefile publication
  • raster and vector sync helpers
  • some upload-to-publication transitions used after compute steps finish

GeoServer also appears directly in the public data surface:

The main API-facing routes that often matter operationally are documented in Computing API Endpoints, especially the workspace and publication-oriented endpoints.


Common Failure Modes

GEOSERVER_URL is blank

The initialization test reports geoserver-probe as a warning and skips full publish-path validation.

Credentials are missing or wrong

The probe may reach GeoServer but fail with a non-200 status for rest/about/version.json.

Compute finishes, but no published layer appears

Check:

  1. the Celery worker logs
  2. GeoServer REST reachability
  3. the workspace or layer name expected by that pipeline
  4. whether the pipeline actually reached its publication step

If the installer-time first-computing-api check did not pass, fix that first before debugging a larger pipeline.