Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4,465 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Honua Server

CI CodeQL Security Nightly License .NET PostGIS Docker

Cloud-native geospatial server. One container exposes the same PostGIS-backed data through every major GIS protocol — GeoServices REST (FeatureServer, MapServer, ImageServer, Geometry, GPServer), OGC API (Features, Maps, Tiles, Coverages, Processes), classic OGC WMS/WFS/WMTS/WCS, STAC, OData v4, vector tiles (MVT/TileJSON), Terrain-RGB and elevation APIs, 3D Tiles, MCP for AI agents, and gRPC. ArcGIS Pro and Esri SDK clients connect unmodified; QGIS, MapLibre, Excel, and Power BI hit the same layers — no ETL, no duplication, no GDAL toolchain to install.

Status

Honua Server is open core under the Elastic License 2.0. The GA-tier core (protocol surfaces, editing, imports, auth, operations) is production-ready and tracked on the public roadmap under the v1.0 (GA) milestone — upvote what you want next. Versioned v* releases have not been tagged yet; until the first one is cut, run the nightly-built container image (see Quick start). The server runs in Community mode with no license file; paid Pro/Enterprise features activate only via signed entitlements and are marked (Pro) / (Enterprise) below (see Editions and licensing).

Quick start

Docker Compose (requires Docker with Compose v2):

git clone https://github.com/honua-io/honua-server.git && cd honua-server
docker compose up -d
docker compose ps

Open http://localhost:8080/healthz/ready in a browser and wait for Ready.

The default docker-compose.yml builds the server image from source on first run, so expect the first up to take a few minutes; for an instant start use the pre-built image below. PostGIS, Redis, and Honua Server start automatically; migrations run on first boot. HTTP/1 REST and gRPC-Web are at http://localhost:8080, native h2c gRPC at http://localhost:8081. Continue with the quickstart to import a dataset and see it on a map, or add the web Console with docker compose --profile console up -d (set HONUA_CONSOLE_IMAGE to a honua-console image you have built or mirrored — no public Console image is published yet; Operate serves at http://localhost:5174/operate).

Pre-built image (bring your own PostGIS):

docker run -p 8080:8080 -p 8081:8081 \
  -e ConnectionStrings__DefaultConnection="Host=host.docker.internal;Database=honua;Username=postgres;Password=postgres" \
  -e HONUA_ADMIN_PASSWORD="change-me" \
  -e Security__ConnectionEncryption__MasterKey="change-me-random-string-32-plus-characters" \
  honuaio/honua-server:nightly

:nightly (also tagged :trunk) is rebuilt from trunk every night; pin a specific build with :nightly-YYYYMMDD. The :latest tag is only promoted on tagged v* releases and will resume meaning "latest release" once the first release is cut.

Kubernetes — deploy with the Helm chart in honua-helm; see the Kubernetes guide.

Local development — .NET Aspire with a dashboard for traces, logs, and metrics:

dotnet run --project src/Honua.AppHost

To run geoprocessing jobs locally (in-process, no cloud), use the local GP dev quickstart. For self-hosted pilots, run the pilot onboarding runbook before handing a deployment to another team.

Protocols

Every published layer is reachable through every protocol its service enables. The canonical matrix with examples lives in Protocols.

Protocol Endpoint Typical clients
GeoServices FeatureServer /rest/services/{id}/FeatureServer ArcGIS Pro, Esri SDKs, Esri Leaflet
GeoServices MapServer /rest/services/{id}/MapServer ArcGIS Pro, Esri map clients
GeoServices ImageServer /rest/services/{id}/ImageServer ArcGIS raster workflows
GeoServices Geometry Service /rest/services/Utilities/Geometry/GeometryServer Esri SDKs (buffer, project, intersect, …)
GeoServices GPServer /rest/services/{id}/GPServer ArcGIS Pro, async geoprocessing clients
GeoServices GeocodeServer /rest/services/{locator}/GeocodeServer Esri geocoding clients (findAddressCandidates)
GeoServices VectorTileServer /rest/services/{id}/VectorTileServer Esri vector-tile clients, ArcGIS SDKs
GeoServices NAServer (Pro) /rest/services/{id}/NAServer Esri routing / network-analysis clients
GeoServices VersionManagementServer (Enterprise, experimental) /rest/services/{id}/VersionManagementServer Esri branch-versioning editing workflows
Portal token issuance /sharing/rest/generateToken Esri clients using username/password tokens
OGC API Features /ogc/features QGIS, GDAL, OpenLayers, any OGC client
OGC API Maps /ogc/maps OGC map clients
OGC API Tiles /ogc/tiles QGIS, MapLibre
OGC API Coverages /ogc/coverages Science and raster tooling
OGC API Processes /ogc/processes OGC processing clients
OGC API Records /ogc/records Catalog / metadata search clients
OGC API Environmental Data Retrieval (EDR) /edr Environmental and scientific data clients
OGC API Styles /ogc/styles Style-aware map clients
OGC SensorThings v1.1 /sta/v1.1 IoT / observations clients
WMS 1.3 / 1.1.1 /ogc/services/{id}/wms, /rest/services/{id}/MapServer/WMS QGIS, legacy OGC clients
WFS 2.0 / 1.1.0 / 1.0.0 /wfs QGIS, GDAL/OGR, legacy stacks
WCS 2.0.1 /ogc/services/{id}/wcs, /rest/services/{id}/ImageServer/WCS Science, elevation, coverage clients
WMTS 1.0 /ogc/services/{id}/wmts, /rest/services/{id}/MapServer/WMTS QGIS, legacy tile clients
WPS 2.0 /wps Classic OGC processing clients
OData v4 /odata Excel, Power BI, Tableau, SAP
STAC API /stac STAC browsers, catalog/search tooling
Vector tiles (MVT) + TileJSON /tiles/{layerId}/{z}/{x}/{y}.mvt, /tiles/{layerId}/tile.json MapLibre, OpenLayers, Leaflet
Terrain-RGB + elevation API /terrain/{datasetId}/…, /elevation/{datasetId}/… MapLibre raster-dem, field apps
3D Tiles scenes /scenes/{sceneId}/tileset.json CesiumJS, 3D Tiles clients
PMTiles /api/v1/tiles/pmtiles/{artifactId} MapLibre, serverless/CDN tile hosting
MCP (JSON-RPC) /mcp AI agents, operator automation, MCP clients
gRPC (geospatial.v1) port 8081 (h2c), gRPC-Web on 8080 Honua SDKs, mobile, services

Surfaces marked (Pro) / (Enterprise) require a signed license; everything unmarked is Community. The machine-readable capability vocabulary behind this table is docs/gis/data/capability-keys.v1.json (generated from CapabilityKeyCatalog.cs) — keep the table in sync with it.

Plus operational surfaces: health probes (/healthz/live, /healthz/ready), OpenAPI documents per OGC API, an interactive API explorer at /docs (dev mode or HONUA_SERVE_API_DOCS=true), the admin API (/api/v1/admin), and a capability manifest (/api/v1/capabilities/manifest) for clients to discover what a deployment supports.

Compliance

  • OGC CITE: 1117 / 1117 passing across 13 conformance suites (OGC API Features 1.0, OGC API Tiles 1.0, GeoPackage 1.2, GML 3.2, KML 2.2, WFS 1.0/1.1/2.0 plus WFS 2.0 Transactional, WCS 2.0, WMS 1.1.1/1.3, WMTS 1.0) as of the 2026-07-27 evidence run — see docs/cite-status.md for the authoritative snapshot and OGC conformance evidence for suite-by-suite evidence.
  • Client compatibility: the supported client x protocol matrix — including known limitations — is the compatibility contract; Esri-side parity is tracked in GeoServices parity.
  • gRPC stability: versioning, deprecation, and stability guarantees for the geospatial.v1 surface are defined in the gRPC reference.
  • Control plane stability: admin/control-plane API versioning is governed by versioning and support.

Key capabilities

  • Query and edit — FeatureServer query/applyEdits/attachments/related records, OGC API Features CRUD with CQL2, WFS 2.0 transactions, OData CRUD with spatial functions (geo.distance, geo.intersects, $batch). FeatureServer applyEdits is (Pro); edits through the open protocols (OGC API Features, WFS-T, OData, gRPC) stay Community. Output as JSON, GeoJSON, PBF, FlatGeobuf, GeoParquet, and GeoArrow.
  • Esri migration and coexistence — ArcGIS Pro and Esri SDK clients connect unmodified. Import public ArcGIS REST and GeoServer services into PostGIS (service imports are (Enterprise)); scan ArcGIS Server and GeoServer for deterministic migration inventories. See Migrate from ArcGIS Server and from GeoServer.
  • No GDAL required on the server — import GeoJSON, Shapefile (zip), GeoPackage, GPX, KML, WKT, FlatGeobuf, File Geodatabase (.gdb.zip), and GeoParquet directly, with CRS auto-detection and PostGIS reprojection; the serving container ships no GDAL, while optional geoprocessing worker images bundle it separately.
  • Rendering and rasters — MapServer export/identify/legend, OGC API Maps, ImageServer, WCS, OGC API Coverages, cloud-optimized GeoTIFFs registered in place from S3/Azure, and server-generated Terrain-RGB elevation tiles.
  • Geoprocessing and workflows — one canonical async job runtime behind GPServer, OGC API Processes, gRPC, and MCP; declarative multi-step DAG workflows with retries and cron scheduling (Redis required for durable jobs).
  • AI-operable — the /mcp surface implements the open geospatial-mcp standard so agents can validate plans, dry-run, execute, and read results with the same authorization as any other client. MCP discovery/query and spec artifacts are Community; agent operations and spec-apply execution are (Pro); approval workflows are (Enterprise). See Connect AI agents.
  • Cloud-native operations — container-first and stateless; multi-layer caching with in-memory fallback (output cache and Redis caching are (Pro)); OpenTelemetry traces and metrics; API-key auth, OIDC SSO (Pro) — multi-provider OIDC, SAML 2.0, and SCIM 2.0 are (Enterprise) — and experimental mTLS client-certificate auth (off by default, not on the GA path); a server-computed operate loop for humans, Console, and agents (Operating Honua).

The admin API (/api/v1/admin) manages connections, services, layers, styles, and import jobs; the web admin UI lives in honua-console. The admin API is also the substrate for Honua's managed control-plane direction — change management and instance lifecycle workflows build on it rather than on a third-party GitOps controller.

Data providers

PostGIS is the primary read/write backend. Additional providers serve data in place, read/query-only, through the same protocol surfaces:

Provider Access
PostGIS Full read/write (default)
DuckDB Read-only, embedded — analytics and reference layers, no external database
SQL Server Read/query-only (geometry/geography tables)
Oracle Read/query-only (standard SDO_GEOMETRY)
MySQL / MariaDB Read/query-only (MySQL 8.0.11+, MariaDB 10.6+)
Amazon Redshift Read/query-only (native Redshift spatial)
Snowflake Read/query-only (GEOGRAPHY/GEOMETRY)
Databricks Read/query-only (SQL Warehouse, best-effort)

Per-provider capabilities, selection variables, and limitations are in the data sources reference.

Configuration

All settings are environment variables. Copy .env.example for a full annotated reference, or see the environment variable reference.

Required (PostgreSQL provider — default):

ConnectionStrings__DefaultConnection="Host=postgres;Database=honua;Username=postgres;Password=postgres"
HONUA_ADMIN_PASSWORD="change-me"
# Encrypts stored data-connection credentials (>=32 chars). Required outside
# Development — startup fails without it; in dev, registering a data
# connection fails until it is set.
Security__ConnectionEncryption__MasterKey="change-me-random-string-32-plus-characters"

Common options:

ConnectionStrings__Redis="localhost:6379"   # shared caches; required for durable jobs/workflows
HONUA_OBSERVABILITY=true                    # metrics endpoints (health probes are always on)
HONUA_OPENTELEMETRY=true                    # distributed tracing
Cors__AllowedOrigins__0="https://app.example.com"

Production tuning — bounded database admission is the default production posture: keep Limits__Connections__MaxConcurrentQueries aligned with the pool size and size from the shared database budget across replicas (small 4-vCPU nodes profile best in the 4–6 active-query range; larger pools can overfeed PostGIS and worsen tail latency). Adaptive admission (Limits__Connections__AdaptiveConcurrencyEnabled) is an explicit tuning profile, not the default — monitor /monitoring/metrics/connection-pool and keep fixed-cap results as the baseline. Full guidance: Scale and tune performance and admission and pooling variables.

Invalid configuration fails startup with a detailed error message.

Documentation

Full hosted documentation: honua.gitbook.io/honuaio. The in-repo table of contents is docs/README.md. Frequent destinations:

I want to… Go to
Import a dataset and see a map in 10 minutes Quickstart
Deploy to production Docker Compose · Kubernetes · Cloud deployments
Operate, monitor, back up, scale Operating Honua · Monitoring
Connect a client ArcGIS Pro · QGIS · Excel/Power BI · MapLibre · AI agents (MCP)
Migrate from Esri or GeoServer From ArcGIS Server · From GeoServer · ArcGIS apps and SDKs
Understand the architecture Architecture · Protocols · Data model
Use the admin API Control plane API
Check client compatibility Compatibility contract
Contribute code Contributing · AGENTS.md

Related repositories

Honua is a family of repos around this server — the full map is in Ecosystem:

  • honua-console — web console (Studio, Catalog, Operate, Share) over the admin API; the admin/UI home
  • honua-helm — Helm chart, the Kubernetes deploy path
  • honua-sdk-js · honua-sdk-python · honua-sdk-dotnet — client SDKs generated from the same admin contract
  • honua-mobileExperimental reusable .NET MAUI SDK and map/control foundation for offline field workflows (Apache-2.0)
  • honua-collectExperimental full end-user field-collection app built on honua-mobile (ELv2)
  • geospatial-grpc — open gRPC protocol standard the server's geospatial.v1 surface implements
  • geospatial-mcp — open geospatial MCP standard behind /mcp

Feedback

GitHub Issues are the primary feedback loop. Please use the forms so reports include enough detail for triage:

Security

See SECURITY.md for how to report a vulnerability privately, response targets, and the coordinated-disclosure policy. Do not open public issues for suspected vulnerabilities.

License

Elastic License 2.0 (ELv2) — free to use, deploy, and modify, within the ELv2 limitations: you may not provide Honua to third parties as a hosted or managed service, may not circumvent the license-key functionality, and may not remove or obscure the licensor's notices.

About

Cloud-native multi-protocol geospatial server — GeoServices REST, OGC API, WMS/WFS/WMTS/WCS, STAC, OData v4, vector tiles, MCP, and gRPC, backed by PostGIS

Topics

Resources

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages