Configuration & Maintenance

Everything here is optional: the defaults work.

Environment

docker-compose.yml reads .env. Copy .env.example and edit it.

Host ports

Container ports never change; these decide what the host publishes them on. Set them when the defaults collide with something else.

Variable

Default

Service

DASHBOARD_HOST_PORT

8000

Dashboard

WPS_HOST_PORT

5000

WPS

FILESERVER_HOST_PORT

8001

File server

GEOSERVER_HOST_PORT

8080

GeoServer

GEOSERVER_HOST_PORT and WPS_HOST_PORT do double duty: they also determine the addresses those services advertise to clients, since a URL handed out to a browser has to be reachable from the host rather than from inside the network.

Credentials

GEOSERVER_USER and GEOSERVER_PASS (admin / geoserver) are used both by GeoServer itself and by the WPS when it publishes results.

Data and results

Variable

Meaning

INVEST_SAMPLES

Where the InVEST sample data is cached. Defaults to /store/invest/samples; kept outside the repository because it is around 2 GB. Mounted read-only.

ESWS_RESULTS_LAYOUT

How a run’s results are laid out. run (the default) gives every run a workspace of its own, named for the run, with layer names left exactly as the model wrote them. series instead keeps one layer per model output and adds a granule per run, addressed by time.

ESWS_VECTOR_BACKEND

files (the default) publishes vectors as shapefiles; postgis loads them into PostGIS tables. series requires postgis for vectors – a shapefile cannot be appended to.

POSTGIS_DB, POSTGIS_USER, POSTGIS_PASS

The database both GeoServer and the WPS use when the PostGIS backend or the series layout is on.

WPS_RESULTS_WORKSPACE

Legacy shared workspace name, unused by either layout above.

WPS_TABLE_UPLOAD_DIR

Directory table results are copied into. It is a volume the file server publishes, which is what makes an HTTP destination a real upload target: a plain file server has no upload protocol of its own. Leave it unset and tables are reported where the WPS already serves them from.

WPS_TABLE_UPLOAD_PATH

The path that directory appears at on the file server (results).

EASYOWS_CRS_MIN_CONFIDENCE

How sure a CRS match must be, as a percentage, before it is declared for a published layer. Defaults to 90. See Layers without a usable CRS.

INVEST_USERGUIDE_BASE

Base URL each process links its manual under.

Maintenance

Updating

make update

Fetches, shows what is coming, fast-forwards, and brings the stack up on it. It rebuilds only when something that goes into an image changed – docker/, requirements/, docker-compose.yml – since a pull that only touches Python does not need a rebuild. Application code is bind-mounted, but a running server holds its modules in memory, so the services are restarted when that code changes; without that the stack keeps serving what it started with.

It stops rather than act if the working tree has uncommitted changes, or if the branch tracks no upstream. NO_RESTART=1 pulls and rebuilds but leaves the running stack alone.

A pull that touches the InVEST or GDAL pins means a WPS image rebuild, which takes several minutes. Check the result with make smoke.

State

The stack keeps its state in Docker volumes: GeoServer’s catalogue, the published raster and vector data, uploaded table results, and the WPS output store. The dashboard’s database lives inside its container, so recreating that container starts it empty – run make demo again to repopulate.

make down removes all of it. There is no separate reset.