GeoServer 3.0-RC Release
GeoServer 3.0-RC is now available, with downloads for
( bin,
war
), along with
docs and
extensions.
We are working with OSGeo for the windows installer download, and will update this post when it is available. Windows users are asked to test out the bin download while we wait.
Release available as docker image docker.osgeo.org/geoserver:3.0-RC .
This is a release candidate intended for public review and feedback. GeoServer 3.0-RC is made in conjunction with GeoTools 35-RC, and GeoWebCache 2.0-RC.
Thanks to Jody Garnett (GeoCat), Andrea Aime (GeoSolutions), and Peter Smythe (AfriGIS) for making this release.
Please Test GeoServer 3.0-RC
We encourage everyone to try GeoServer 3.0-RC in their own environment, especially for upgrade workflows, the new user interface, and deployment on Tomcat 11 and Jetty 12. Real-world testing is the best way to catch regressions and compatibility issues before the final 3.0 release.
You may also quickly test the docker image using:
docker run -p 8080:8080 docker.osgeo.org/geoserver:3.0-RC
Please share your feedback, questions, and any issues you encounter on the GeoServer user forum.
Welcome to GeoServer 3
We are overjoyed to share this update with our community, this is the final stretch of a long road, a year of development, and a lot of planning and support to make it all happen.
There will be more technical details in the final release announcement - but for now we wish to say thank you.
Straightforward upgrade
We have taken great pains to make the upgrade process seamless from GeoServer 2.28.x.
-
Important: We have made no changes to the GeoServer Data Directory.
Download and try GeoServer 3.0-RC today!
-
A few modules have migrated from core to extensions:
- WCS 1.0 and WCS 1.1
- World Image and ArcGRID raster data sources.
The pure Java
H2database is no longer provided. -
The log file location setting is now managed using the
GEOSERVER_LOG_LOCATIONapplication property. -
The NetCDF index support has been simplified and is now self-contained. With this improvement, NetCDF no longer needs a database or local
.idxfiles to operate.Instructions are provided for how to clean up these now unused files.
Please see the upgrade instructions for details.
New Context-Driven User Experience
GeoServer 3 features a new “context-driven” user experience, which we really hope you enjoy.
-
Search: Using the left hand side search field to find information. Autocomplete results are shown as you type, and results are listed in a tree which can be navigated below.
-
Context: Clicking on a search item establishes the context which is shown as breadcrumbs along the top of the page. A drop-down context menu provides quick access to actions that can be performed.
-
Page: Page content adjusts to the current context. The welcome page adjusts to showing the layer tile and description, along with preview links, sample data downloads, metadata and data links configured.
-
Menu: The menu bar at the top of the page provides login on the right hand side, and access to the familiar GeoServer top-level menus. Many of these pages now adjust their content to reflect the current context.
-
Feedback: Admins are provided additional context-menu commands, and per-layer feedback and shortcuts, making the application easier and faster to use.
For more information see the user guide.
Thanks to Stefano Bovio (GeoSolutions), Jody Garnett (GeoCat), and others for this major improvement.
New User Interface Responsive Design Theme
GeoServer now provides a responsive-design theme:
-
Navigation: Navigation is reduced to a hamburger menu when using a narrow width display.
-
Forms: Forms have adopted a two-column layout adapting to page width.
Details coming soon to the developers guide!
Thanks to Stefano Bovio (GeoSolutions) for leading this frequently requested improvement, the entire GeoServer 3 team for implementing and checking, and testers at AfriGIS and GeoCat for verifying and updating screenshots.
New Layer Preview
A new full-screen layer preview is provided using the latest OpenLayers library.
Thanks to Stefano Bovio (GeoSolutions) for welcome improvement.
Updated Environment
GeoServer 3 is overjoyed to support Tomcat 11.0.x and Jetty 12.1 application servers after completing our transition to Spring Framework 7 and Jakarta EE Servlet API 6.1.
We have been extensively testing GeoServer 3 with Java 17 and Java 21, maintaining the same Java runtime baseline as GeoServer 2.28.x. Java 25 is subject to automated testing, but we are going to hold off recommending it until the user community has had an opportunity to try it out and report back.
If you are wondering about the compatibility between the Java web stack and GeoServer, here is a table showing the various supported options:
| GeoServer | Java | Tomcat | Jetty | Java EE | Jakarta EE |
|---|---|---|---|---|---|
| GeoServer 3.0 | 17, 21 | Tomcat 11.0.x | Jetty 12.1 | Servlet API 6.1 | |
| Not supported | Tomcat 10.1.x | Jetty 12.0 | Servlet API 6.0 | ||
| Not supported | Tomcat 10.0.x | Jetty 11.0 | Servlet API 5.0 | ||
| GeoServer 2.28.x | 17, 21 | Tomcat 9.x | Servlet API 4 | ||
| GeoServer 2.28.x | 17, 21 | Jetty 9.4 | Servlet API 3.1 |
For more information see container considerations.
Thanks to the entire GeoServer 3 team and crowdfunding campaign for this major accomplishment, representing the completion of Milestone 3.
New Documentation
The long-awaited transition to Markdown documentation has finally arrived. Welcome to our new User Manual. The older GeoServer 2.x documentation is available at Docs Archive or via the version switcher. Please help out by fixing any remaining small issues or log an issue for Peter to address.
Thanks to Peter Smythe (AfriGIS) and Jody Garnett (GeoCat) for working on this activity which ended up being an incredible amount of work.
Thanks to the GeoServer 3 Sponsors
GeoServer 3 would not exist without the organizations and individuals who supported the GeoServer 3 crowdfunding campaign. Their sponsorship made this work possible.
GeoServer 3 is supported by the following organisations:
Individual donations: Abhijit Gujar, Hennessy Becerra, Ivana Ivanova, John Bryant, Jason Horning, Jose Macchi, Peter Smythe, Sajjadul Islam, Sebastiano Meier, Stefan Overkamp.
Release notes
New features:
- GEOS-12063 [GSIP-238] GeoServer 3 UI / UX Refresh
Improvements:
- GEOS-11886 Sort entries in all .properties files alphabetically
- GEOS-12015 Switch tests using H2 to GeoPackage
- GEOS-12023 Improve developer logging during catalog resources loading and WMS capabilities requests
- GEOS-12024 Add Git branch name in GEOSERVER_NODE_OPTS
- GEOS-12072 Remove deprecated REST endpoint on the DataStoreFileController
- GEOS-12077 Remove H2/DB based index and binary index from CoverageMultidim/NetCDF stores
- GEOS-12081 Update MapML.js (
custom element suite) to v0.17.0 - GEOS-12082 CoverageStore - quick fail for incorrect files
- GEOS-12083 Skip brute force login delays when checking for default administrator password
Bugs:
- GEOS-10509 WFS Request fails when XML POST body is larger than 8kB
- GEOS-11903 WPS does not respect raw response output selection when there are multiple outputs
- GEOS-11916 Data directory migration performed on built-in default security configuration
- GEOS-11926 ogcapi plugin makes WFS advertising an outputFormat which is actually unavailable
- GEOS-11930 OGC-API extension breaks security REST API
- GEOS-11942 ImagePPIO does not run any longer
- GEOS-11964 Metadata Bulk Operations: wicket error
- GEOS-11965 KMZ export incorrectly references remote icon URLs instead of embedding them in the KMZ archive
-
GEOS-11981 POST /security/authproviders 400: Unsupported className - GEOS-11988 Fix bug: preserve metaTilingThreads=0 in saneConfig()
- GEOS-11999 The version of Jetty (12) no longer supports web.xml CORS configuration
- GEOS-12065 WMS Layer REST PUT always returns 500 due to Collections.emptySet() in getRemoteStyleInfos()
- GEOS-12073 Remove log location configuration from Admin Console and REST API
- GEOS-12084 TemplateController REST endpoints accept non-existent workspace, store, and resource names
- GEOS-12085 LocalSettingsController does not validate workspace existence
Tasks:
- GEOS-11987 ImageN 0.9.1 migration requires renaming of registryFile.jai to registryFile.imagen
- GEOS-12004 Make WMS independent of WFS
- GEOS-12005 Remove GeoServer H2 extension
- GEOS-12006 GWC, removal of leftover H2 references
- GEOS-12011 Move KML module to extension
- GEOS-12016 Move WCS 1.1 module to extension
- GEOS-12017 Move WCS 1.0 to extension
- GEOS-12018 Switch GeoServer tests away from H2
- GEOS-12019 Turn arcgrid and worldimage formats into plugins
- GEOS-12025 Split WMS 1.1 and 1.3
- GEOS-12040 Updating BouncyCatle libraries to LTS 2.73.10
- GEOS-12041 Update Spring LDAP to 4.0.1
- GEOS-12071 Remove the WPS remote module
- GEOS-12064 CSS: add documentation for localized @title and @abstract metadata
Sub-tasks:
- GEOS-12066 Present keywords as a table
- GEOS-12067 Add Full Screen OpenLayers 10.8.0 layer preview
- GEOS-12086 Keyboard navigation for file browser
For the complete list see 3.0-RC release notes.
Community Updates
Community module development:
- GEOS-11904 OGC API Processes: add support for envelope input/output
- GEOS-11905 OGC API processes status response lacks jobid and links to self
- GEOS-11906 OGC API Processes: use correct error code for access to results when execution is not complete
- GEOS-11907 OGC API Processes: support multiple raw responses
- GEOS-11908 OGC API Processes page should be pageable
- GEOS-11909 Add support for OGC API Echo process
- GEOS-11915 OGC API Processes: improve support for binary input and output
- GEOS-11972 GSIP 233 - Community Pending Release Profile
- GEOS-11980 Add support for uploading a single parquet file to GeoServer via REST
- GEOS-11983 GSR /query fails with HTTP 500 when where parameter is empty
- GEOS-12000 Ignore DescribeFeatureType requests without typeName in Features Templating schemas override
- GEOS-12002 hz-cluster: homepage pop-up fails
- GEOS-12007 Add AWS credential chain authentication UI and documentation for GeoParquet
- GEOS-12013 Support vector datasets ingestion in VectorMosaic via REST
- GEOS-12044 STAC search endpoint should report invalid collection names as invalid parameters instead of internal errors
- GEOS-12061 New Community Module for PNG-WIND output format for wind datasets
- GEOS-12062 Add DuckDB datastore community extension (gs-duckdb)
- GEOS-12069 Align the hazelcast version in hz-cluster to the rest of GeoServer
- GEOS-12074 Remove activeMQ-broker community module
- GEOS-12089 GWC sqlite community module breaks legend preview in style page
Community modules are shared as source code to encourage collaboration. If a topic being explored is of interest to you, please contact the module developer to offer assistance.
About GeoServer 3.0.x Series
Additional information on the GeoServer 3.0.x series:
Release notes: ( 3.0-RC )
Behind The Scenes
- GeoServer 3 First public release date
- GeoServer 3 Sprint Update
- GeoServer 2025 Q4 Developer Update
- GeoServer 3 Crowdfunding Goal Surpassed!
- GeoServer 2025 Q2 Developer Update
- GeoServer 3 Crowdfunding – Last Call!
- GeoServer 3 Crowdfunding Campaign Reaches Major Step: 80% Funding Completion
- GeoServer 2025 Roadmap
- GeoServer 2024 Q4 Developer Update
- GeoServer 3 Call for Crowdfunding