Environment Variables#

Complete reference of environment variables supported by GeoServer CLI.

Configuration Selection#

GEOSRVCLI_CONFIG#

Selects the configuration file to use.

1
2
3
4
5
export GEOSRVCLI_CONFIG=dev
# Uses: configs/dev.config.toml

export GEOSRVCLI_CONFIG=/path/to/config.toml
# Uses: /path/to/config.toml

Precedence: CLI flag --config > GEOSRVCLI_CONFIG > default

GeoServer Connection#

GEOSRVCLI_ENDPOINT#

GeoServer REST API base URL.

1
export GEOSRVCLI_ENDPOINT=http://localhost:8080/geoserver/rest

Precedence: CLI flag --base-url > GEOSRVCLI_ENDPOINT > config file > default

GEOSRVCLI_USERNAME#

GeoServer username for HTTP Basic Authentication.

1
export GEOSRVCLI_USERNAME=admin

Precedence: CLI flag --user > GEOSRVCLI_USERNAME > config file > default

GEOSRVCLI_PASSWORD#

GeoServer password for HTTP Basic Authentication.

1
export GEOSRVCLI_PASSWORD=secure_password

Precedence: CLI flag --password > GEOSRVCLI_PASSWORD > config file > default

!!! warning “Security” Never commit passwords to version control. Use environment variables or secure config files.

GEOSRVCLI_TIMEOUT#

HTTP request timeout duration.

1
2
export GEOSRVCLI_TIMEOUT=60s
export GEOSRVCLI_TIMEOUT=5m

Precedence: CLI flag --timeout > GEOSRVCLI_TIMEOUT > config file > default (30s)

Default Workspace#

GEOSRVCLI_DEFAULT_WORKSPACE#

Default workspace name to use when --workspace flag is not provided.

1
export GEOSRVCLI_DEFAULT_WORKSPACE=my_workspace

Usage:

1
2
3
4
5
# Without flag, uses GEOSRVCLI_DEFAULT_WORKSPACE
./geoserver-cli store list

# Flag overrides environment variable
./geoserver-cli store list -w other_workspace

PostGIS Connection#

GEOSRVCLI_POSTGIS_HOST#

PostGIS database hostname.

1
export GEOSRVCLI_POSTGIS_HOST=db.example.com

GEOSRVCLI_POSTGIS_PORT#

PostGIS database port.

1
export GEOSRVCLI_POSTGIS_PORT=5432

Default: 5432

GEOSRVCLI_POSTGIS_DATABASE#

PostGIS database name.

1
export GEOSRVCLI_POSTGIS_DATABASE=gis

GEOSRVCLI_POSTGIS_USER#

PostGIS database username.

1
export GEOSRVCLI_POSTGIS_USER=postgres

GEOSRVCLI_POSTGIS_PASSWORD#

PostGIS database password.

1
export GEOSRVCLI_POSTGIS_PASSWORD=secure_password

!!! warning “Security” PostGIS passwords should be kept secure. Use environment variables or secure config files.

GEOSRVCLI_POSTGIS_SCHEMA#

PostGIS schema name for table discovery.

1
export GEOSRVCLI_POSTGIS_SCHEMA=public

Default: public

GEOSRVCLI_POSTGIS_SSLMODE#

PostgreSQL SSL mode.

1
export GEOSRVCLI_POSTGIS_SSLMODE=require

Valid values: disable, allow, prefer, require, verify-ca, verify-full

Default: disable

Environment Variable Precedence#

For all settings, the precedence is:

  1. CLI flags (highest priority)
  2. Environment variables
  3. Configuration file
  4. Default values (lowest priority)

Examples#

Complete Environment Setup#

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# GeoServer connection
export GEOSRVCLI_ENDPOINT=http://geoserver.example.com/geoserver/rest
export GEOSRVCLI_USERNAME=admin
export GEOSRVCLI_PASSWORD=$(cat ~/.secrets/geoserver_password)

# Default workspace
export GEOSRVCLI_DEFAULT_WORKSPACE=production

# PostGIS connection
export GEOSRVCLI_POSTGIS_HOST=db.example.com
export GEOSRVCLI_POSTGIS_DATABASE=gis
export GEOSRVCLI_POSTGIS_USER=geoserver
export GEOSRVCLI_POSTGIS_PASSWORD=$(cat ~/.secrets/postgis_password)

CI/CD Environment#

1
2
3
4
5
# In CI/CD pipeline
export GEOSRVCLI_ENDPOINT=${GEOSERVER_URL}/rest
export GEOSRVCLI_USERNAME=${CI_GEOSERVER_USER}
export GEOSRVCLI_PASSWORD=${CI_GEOSERVER_PASSWORD}
export GEOSRVCLI_DEFAULT_WORKSPACE=production

Development Override#

1
2
3
# Override production config for testing
export GEOSRVCLI_ENDPOINT=http://localhost:8080/geoserver/rest
export GEOSRVCLI_DEFAULT_WORKSPACE=dev