Introduction to GeoServer
Learn what GeoServer is, how it works, and why it's the standard for publishing geospatial data.
What is GeoServer?
GeoServer is an open-source server written in Java that allows users to share and edit geospatial data. Built on top of standards-based services from the Open Geospatial Consortium (OGC), it is fully interoperable and designed for interoperability.
GeoServer is the industry standard for publishing spatial data and spatial data services. It is used by governments, enterprises, and researchers around the world to power maps, analytics, and location intelligence applications.
GeoServer is licensed under the
EDL (Educational Community License) and is completely free to download, use, and modify.
Key Capabilities
GeoServer provides a comprehensive suite of geospatial services and tools:
πΊοΈ WMS β Web Map Service
Serves map images in PNG, JPEG, GIF, and other formats with custom styling via SLD.
π‘ WFS β Web Feature Service
Delivers raw vector features in GML, GeoJSON, KML, and other formats.
π°οΈ WCS β Web Coverage Service
Provides access to raw raster data and scientific datasets for processing.
π WMTS β Web Map Tile Service
Pre-cached map tiles optimized for fast rendering in web and mobile apps.
Supported Data Formats
GeoServer supports a wide variety of data formats and storage backends. Here's a summary of the most commonly used ones:
| Format | Type | Read | Write | Notes |
|---|---|---|---|---|
PostGIS |
Database | β | β | Primary spatial database backend |
GeoPackage |
File | β | β | Modern OGC standard for spatial data |
Shapefile |
File | β | β | Legacy ESRI format |
GeoTIFF |
Raster | β | β | Georeferenced raster imagery |
GeoJSON |
File/Stream | β | β | Lightweight JSON-based format |
KML |
File | β | β | Google Earth format |
Oracle Spatial |
Database | β | β | Enterprise RDBMS support |
MBTiles |
Tile Store | β | β | Pre-rendered map tiles |
Quick Installation
The fastest way to get GeoServer running is via Docker. Here's a minimal setup:
Always change the default admin credentials after initial setup. See the Security Configuration Guide for details.
Architecture Overview
GeoServer follows a modular, layered architecture that separates data storage, service logic, and presentation:
- Data Layer β Connects to databases, file systems, and remote data sources via data stores and coverage stores.
- Service Layer β Implements OGC standards (WMS, WFS, WCS, WMTS) and the REST API.
- Security Layer β Handles authentication, authorization, and data-level filtering.
- Presentation Layer β The web admin console, map rendering engine, and SLD styling pipeline.
REST API Example
GeoServer exposes a comprehensive REST API for programmatic management of workspaces, stores, layers, and styles:
Use the
GeoServer REST Config plugin for enhanced API capabilities including bulk operations and advanced filtering.
System Requirements
Before deploying GeoServer in production, ensure your environment meets these requirements:
| Component | Minimum | Recommended |
|---|---|---|
| Java | OpenJDK 11 |
OpenJDK 17 or 21 |
| Memory (RAM) | 2 GB | 8 GB+ |
| Disk Space | 2 GB | 10 GB+ (with tile cache) |
| Servlet Container | Jetty 10 | Tomcat 10.x or Jetty 12 |
| Database | PostgreSQL 13 + PostGIS 3.0 | PostgreSQL 16 + PostGIS 3.4 |
Java 8 (JDK 1.8) is no longer supported in GeoServer 2.24+. Please upgrade to Java 11 or later.
Next Steps
Now that you understand the basics of GeoServer, here are some recommended next steps:
- Quick Start Guide β Get a working instance running in under 10 minutes
- Publish Your First Layer β Import data and create your first WMS/WFS layer
- SLD Styling Tutorial β Learn to style your maps with Styled Layer Descriptors
- Security Configuration β Set up authentication and data-level security
- Performance Tuning β Optimize GeoServer for production workloads