QGIS Server publishes QGIS projects as OGC services. You design a map in QGIS Desktop, save the project, and QGIS Server serves it with the same symbology. neoserver takes a different approach: data, styles, and services are managed on the server itself, in a web console.
This comparison is based on the source code of QGIS 4.2.3, which includes QGIS Server.
At a glance
| neoserver | QGIS Server 4.2.3 | |
|---|---|---|
| Runtime | Go server, one Docker image with the console and native geospatial libraries | C++ (Qt) FastCGI program behind a web server, plus a standalone development server |
| License | MIT | GPL 2.0 or later |
| Configuration | Web console and management REST API, with an encrypted catalog | QGIS project files, authored in QGIS Desktop. No web administration interface. |
| Classic services | WMS 1.3.0, WFS 2.0.0/2.0.2, WCS 2.1/2.0.1, WMTS 1.0 | WMS 1.1.1/1.3.0 with GetPrint, WFS 1.0/1.1 with transactions, WCS 1.0, WMTS 1.0 |
| OGC API | OGC API Features, including CQL2 filters and queryables, and OGC API Tiles | OGC API Features Part 1 (core, GeoJSON, HTML, OpenAPI) |
| Styling | SLD/SE, edited in the console | QGIS symbology from the project, exported as SLD for GetStyles |
| Data sources | PostGIS, DuckDB Spatial, GeoParquet, common vector files, GeoTIFF/COG, NetCDF, GRIB2 | Anything QGIS can open, including PostGIS and all GDAL/OGR formats |
| Access control | Workspaces, roles, scoped API keys, OIDC console sign-in, and per-layer rules built in | Server plugins with access control filters, written in Python or C++ |
| Tile caching | Persistent cache on the filesystem or S3, with quotas and seeding jobs | Not built in |
Where neoserver is a good fit
- Publishing shouldn’t depend on a desktop application. In neoserver, stores, layers, and styles are managed in the browser or through the management API. Nobody needs QGIS Desktop and access to the project file to make a change.
- You need access control without writing plugins. Workspaces, roles, scoped API keys, and per-layer read rules are built in. See Authentication and access.
- You need newer protocol versions. neoserver serves WFS 2.0, WCS 2.1, CQL2 filters in OGC API Features, and OGC API Tiles.
- You serve many clients. WMTS and OGC API Tiles share a persistent cache with seeding jobs. See Vector tiles from PostGIS.
- Several teams or customers share one server. Workspaces keep their stores, layers, styles, and credentials apart.
Where QGIS Server is the better choice
- Your cartography lives in QGIS. QGIS Server renders exactly what the project shows in QGIS Desktop, including symbology that SLD can’t express.
- Printing. WMS GetPrint renders QGIS print layouts on the server.
- Older protocol versions. QGIS Server serves WMS 1.1.1, WFS 1.0/1.1, and WCS 1.0.
- Breadth of data sources. Anything QGIS can open can be published.
- Extensibility. Server plugins in Python or C++ can change requests, responses, and access rules.
- Platforms. QGIS Server builds on many platforms. neoserver’s supported platform is Linux amd64.
Using both
The two can work side by side. Keep QGIS Server for print layouts and maps whose styling depends on QGIS symbology, and use neoserver for access-controlled feature access, OGC API, raster coverages, and cached tiles from the same PostGIS databases. QGIS Desktop can also connect to neoserver as a client. See Connect a client.