Secret key for signing JWT tokens. Generate with openssl rand -hex 32. Must be at least 32 chars; the boot validator also rejects six well-known public placeholders (change-me, secret, etc.).
JWT_ALGORITHM
HS256
No
JWT signing algorithm
ACCESS_TOKEN_EXPIRE_MINUTES
15
No
JWT access-token lifetime in minutes
REFRESH_TOKEN_EXPIRE_DAYS
7
No
JWT refresh-token lifetime in days
GEOLENS_ADMIN_USERNAME
None (required)
Yes
Username for the automatically created admin account
GEOLENS_ADMIN_PASSWORD
None (required)
Yes
Password for the initial admin account
REGISTRATION_ENABLED
false
No
Whether self-registration is enabled. When false, only admins can create users.
PASSWORD_MIN_LENGTH
12
No
Minimum password length, enforced at every password entry point (register, change-password, admin create, SAML→local conversion).
PASSWORD_REQUIRE_CLASSES
3
No
Number of character classes required out of 4 (lowercase, uppercase, digit, symbol). Accepts 1–4.
Directory for temporary file storage during ingestion/export. Must be writable by the API runtime user (uid:gid 1001:1001). Mapped to upload_staging Docker volume.
GeoLens validates staging writability at startup and before export execution. Both UPLOAD_STAGING_DIR and ${UPLOAD_STAGING_DIR}/exports must allow write access for the API runtime user.
If this command fails, fix ownership/permissions on the mounted path or set UPLOAD_STAGING_DIR to a writable directory, then restart the API container.
Browser-facing app URL. Used for share links and OAuth redirect URIs.
PUBLIC_API_URL
http://localhost:8080/api
No
Externally-reachable API base URL. Used in OGC self/collection/next link hrefs.
PUBLIC_BASE_URL
None
No
Deprecated — will be removed in a future release. Legacy alias for PUBLIC_API_URL. Use PUBLIC_API_URL instead. The application logs a deprecation warning at startup when this is set.
Output logs in structured JSON format. Recommended for production. Controls log output only — Swagger/ReDoc exposure is governed by ENVIRONMENT (see Deployment / Security posture).
Path to CA certificate file for database SSL verification.
DATABASE_POOL_PRE_PING
true
No
Enable connection pool pre-ping to detect broken connections before use. Adds slight latency per checkout. Set to false only if you need to disable this for a specific environment.
When true, all admin-overridable settings are locked to their environment values. The PersistentConfig DB layer is bypassed for reads and returns 403 on writes. Use for hardened production deployments where operators want to prevent runtime configuration changes via the admin UI.
Deployment environment: development or production. When production, the API hides its docs (/api/docs and /api/redoc return 404) and sets the Secure flag on the OAuth session cookie. When unset, the posture falls back to LOG_JSON for backward compatibility. Set ENVIRONMENT=production on any public, TLS-terminated deployment.
GeoLens supports two AI subsystems: inference (chat, map generation, metadata drafts) and embeddings (semantic search). They can use different providers.
API keys are set exclusively via environment variables. All other AI settings (provider, model, base URL) can also be overridden at runtime from the admin Settings > AI tab.