Overview
Welcome to GeoServer. This documentation covers everything from initial installation to advanced clustering configurations.
What is GeoServer?
GeoServer is a Java-based open source server that allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards.
As an OGC-compliant server, GeoServer supports:
- WMS β Web Map Service for rendering map images
- WFS β Web Feature Service for feature-level data access
- WCS β Web Coverage Service for raw coverage data
- WMTS β Web Map Tile Service for tiled map delivery
- CSW β Catalog Service for the Web
- REST API β Full configuration management via HTTP
Architecture
GeoServer follows a layered architecture with core components interacting through well-defined interfaces.
Quick Start
Get up and running with GeoServer in four steps:
Install Java
JDK 17+ required
Download
Get the latest WAR or binary
Deploy
Run with java -jar
Publish
Configure via web UI
Installation
Download the Windows .exe installer from the downloads page. The installer includes a bundled JRE and will set up a Windows service automatically.
- Download the Windows installer (.exe) from the downloads page
- Run the installer and follow the wizard
- GeoServer will start automatically as a Windows service
- Open
http://localhost:8080/geoserverin your browser
admin and password is geoserver. Change these immediately in Production deployments.
Configuration
GeoServer is configured through a combination of the web Admin Console, the REST API, and configuration files on the filesystem.
Key Configuration Paths
| File / Path | Purpose | Status |
|---|---|---|
web.xml |
Jetty / Servlet container configuration | Required |
userstores.xml |
Store definitions for data sources | Required |
global.xml |
Global GeoServer settings (metadata, timeouts) | Required |
security/ |
Auth, filters, and permission rules | Active |
styles/ |
SLD style files (.sld, .xml) | Active |
coveragestore/ |
Raster data store configurations | Active |
REST API Reference
GeoServer's REST API provides full CRUD access to all configuration objects. The base URL is http://host:8080/geoserver/rest.
List all workspaces
Create a workspace
List data stores in a workspace
Supported Data Formats
GeoServer supports a wide range of data sources out of the box. Below is a summary of the most commonly used stores:
| Format | Type | Store Plugin | Status |
|---|---|---|---|
| PostGIS | Vector / Raster | postgis |
Supported |
| GeoPackage | Vector / Raster | gpkg |
Supported |
| GeoTIFF | Raster | gtiff |
Supported |
| Shapefile | Vector | shp |
Supported |
| PostgreSQL Raster | Raster | postgresqlraster |
Supported |
| WFS (Remote) | Vector | wfs |
Supported |
| Oracle Spatial | Vector / Raster | oracle |
Beta |
| MongoDB | Vector | mongodb |
Beta |
Publishing a Layer
Once your workspace and data store are configured, you can publish layers through the web UI or the REST API.
- Navigate to Layers → Add a new layered in the Admin Console
- Select the data store you configured (e.g.,
neorgis_osm_roads_free_1) - Configure the layer name, title, and abstract
- Set the SRS/CRS (e.g.,
EPSG:4326,EPSG:3857) - Click Save β GeoServer will compute bounding boxes automatically
- Configure styling (default SLA or custom SLD)
- Publish and test with the Layer Preview
Plugins & Extensions
GeoServer's plugin architecture extends functionality beyond the core. Key plugins include:
Charting
Render dynamic charts (bar, pie, line) from vector data on-the-fly with WMS GetMap requests.
View Plugin βSecurity
Advanced authentication with LDAP, OAuth2, JWT, and fine-grained resource-level permissions.
View Plugin βVector Tiles
Generate MBTiles and vector tile sets for high-performance client-side rendering.
View Plugin βPublishing (WPS)
Web Processing Service for server-side geoprocessing: buffering, clipping, overlays, and more.
View Plugin βCaching
Multiple cache backends: Disk, Redis, Memcached, and cloud-native tile caching with GeoWebCache.
View Plugin βWPS (Web Processing)
Run spatial processing workflows server-side with customizable Groovy/JS scripts.
View Plugin βDeployment Patterns
GeoServer supports multiple deployment architectures depending on your scale and reliability requirements.
Standalone
Run GeoServer as a standalone JVM process. Ideal for development, testing, and small deployments.
Setup Guide βDocker / Kubernetes
Containerized deployment with horizontal scaling. Use GeoServer's clustering mode for high availability.
K8s Guide βClustered
Multiple GeoServer nodes sharing a centralized data store with replicated configuration. Supports load balancing.
Clustering Docs βGetting Help
GeoServer has a vibrant open-source community. Here's how to get support:
- Geoserver Users Mailing List β Primary forum for questions and discussions
- Stack Overflow β Tag questions with
geoserver - GitHub Issues β Report bugs and request features
- Discord Community β Real-time chat with maintainers
- Commercial Support β Enterprise support plans available from the core team