Cloud Native GeoServer is GeoServer ready to use in the cloud through dockerized microservices.
GeoServer is an open-source server for sharing and editing geospatial data from any major spatial data source using open standards.
GeoServer Cloud builds on GeoServer to provide a Cloud Native distribution of its geospatial services and APIs.
The following diagram shows the system’s general architecture.
GeoServer Cloud is designed to achieve functional decomposition by business capability, adapting and extending GeoServer components to promote higher cohesion and lower coupling.
Each OWS service, the Web UI, and the REST API are restructured as self-contained, individually deployable, and scalable microservices.
Since GeoServer is a traditional Spring Framework monolithic servlet application, GeoServer Cloud leverages Spring Boot for microservice conversion.
Additionally, GeoServer Cloud uses Spring Cloud to provide essential capabilities for building scalable and resilient distributed systems, such as:
GeoServer Cloud integrates GeoServer ACL, and advanced authorization system based on Access Control Lists.
Only a curated selection of the extensive GeoServer extensions is supported, ensuring compatibility and optimized performance in this cloud-native environment. The current supported extensions include:
jdbcconfig
and jdbcstore
(deprecated)GeoServer Cloud licensed under the GPLv2.
Docker images for all the services are available on DockerHub, under the GeoServer Cloud organization.
A base Helm Chart for Kubernetes is available at the camptocamp/helm-geoserver-cloud Github repository.
If you’re looking for instructions to just get GeoServer Cloud up and running for a quick evaluation, consider the following documentation sources:
The Quick Start guide provides instructions on how to get up and running with docker compose
.
The Helm Chart repository provides examples of how to start deploying on Kubernetes.
v1.8.12
released on top of GeoServer 2.25.3
.
Check out the full Release Notes for a changelog.
Please read the contribution guidelines before contributing pull requests to the GeoServer Cloud project.
Follow the developer’s guide to know more about the project’s technical details.
GeoServer Cloud uses GitHub issues to track
project-specific bugs and feature requests.
The upstream GeoServer project uses JIRA for issue tracking.
If you encounter a bug, please check if it’s reported as a GeoServer bug in JIRA first.
Requirements:
This is a super quick-start guide to make your first build. For more detailed information on the build process and options, follow the Build Instructions guide.
Clone the repository, including submodules. Alternatively, replace the repository URL by your own fork’s:
git clone --recurse-submodules [email protected]:geoserver/geoserver-cloud.git
Build with:
cd geoserver-cloud/
make
The make
command will compile, test, and install all the project artifacts. It will also build the GeoServer-Cloud Docker images for your local platform. The CI/CD build will instead build milti-platform images for linux/amd64
and linux/arm64
architectures, and publish them to the docker.io
Docker registry.
The compose/
folder contains several docker compose files that are exclusively for development purposes. If you want to run a GeoServer Cloud Docker composition for
development and testing, cd compose
and run one of the following scripts. Each of them starts the composition with a different GeoServer Catalog back-end:
./pgconfig up -d
: runs GeoServer Cloud with the new and shiny PostgreSQL catalog back-end./datadir up -d
: runs GeoServer Cloud with a bind-mounted shared data directory./jdbcconfig up -d
: runs GeoServer Cloud with the older and deprecated jdbcconfig
catalog back-endVerify the services are running:
$ curl "http://localhost:9090/geoserver/cloud/ows?request=getcapabilities&service={WMS,WFS,WCS,WPS}"
$ curl -u admin:geoserver "http://localhost:9090/geoserver/cloud/rest/workspaces.json"
Browse to http://localhost:9090/geoserver/cloud/