From desktop GIS to team collaboration: setting up a shared QGIS workspace
Modern organizations accumulate enormous amounts of geospatial data. Satellite imagery, field surveys, infrastructure inventories, environmental observations, cadastral layers... All of it eventually ends up inside QGIS projects. Over time, these projects become increasingly sophisticated: hundreds of layers, complex symbology, multi-scale rendering, forms, editing constraints.
At the same time, this data rarely belongs to a single person anymore. Analysts, field teams, cartographers, researchers, and decision-makers all need access to the same datasets and maps. Some users edit data continuously, others only consume published results, while administrators must ensure that everything remains organized, secure, and manageable.
In many teams, dozens of people contribute edits simultaneously using QGIS as the primary desktop GIS interface. New information constantly flows into the database from satellite imagery interpretation, aerial surveys, field collection, and operational updates. The challenge is building a sustainable collaborative environment where multiple users can work together without losing the advantages of QGIS itself.
Even smaller teams face similar problems. A single specialist working from multiple locations, or a distributed group collaborating remotely, still needs a reliable way to access projects, synchronize edits, preserve styles and settings, and continue working from any computer without manually copying files between machines.
Shared QGIS workspace becomes essential.
In this article, we will build such an environment using QGIS and the open-source GIS server NextGIS Web. We will go through the full workflow: deploying a self-hosted collaborative GIS platform, managing users and permissions, publishing QGIS projects, organizing shared access to data, enabling simultaneous editing, and exploring advanced capabilities such as version history and conflict resolution.
NextGIS Web deployment and setup
We will use NextGIS Web, a mature open-source Web GIS solution designed to work closely with QGIS. It fully supports QGIS styles for data symbology and includes a QGIS plugin, NextGIS Connect, which integrates web and desktop environments.
Why NextGIS Web
The open-source GIS ecosystem offers a wide range of proven components for building geospatial infrastructure, for example PostGIS for spatial storage, GeoServer and MapServer for publishing services, or MapStore for web interfaces. In many deployments, these tools are combined into a custom GIS stack, where each component is responsible for a separate part of the workflow.
NextGIS Web (NGW) follows a different philosophy. Instead of assembling multiple independent services, it provides a unified Web GIS platform that combines spatial data storage, user and permission management, service publishing, and an integrated web map engine within a single system.
Developed as an open-source project for more than 12 years, NGW is designed with strong native integration with QGIS, enabling seamless collaboration between desktop and web environments. It also fully supports QGIS styles for vector and raster datasets, ensuring visual consistency between QGIS and the web interface.
Deployment is simplified through the official Docker-based distribution, allowing teams to launch a fully functional Web GIS instance in minutes.
Source code and prerequisites
An easily deployable NGW build is available in the repository:
https://github.com/nextgis/nextgisweb_ce
You can deploy it on any machine with x86–64 architecture and an operating system with Docker support. For this tutorial, I will use a simple low-cost VPS server with a public IP address for public access. Alternatively, you can deploy it locally or on a dedicated server.
The VPS server I use has the following configuration:
- 2 CPU cores
- 4 GB RAM
- 50 GB SSD
- Ubuntu 24.04
I assume you have root SSH access to the host.
Prepare the server
SSH into the server:
ssh root@your-server-ipUpdate the packages:
apt update && apt upgrade -yInstall Docker:
curl -fsSL https://get.docker.com | shInstall the Docker Compose plugin:
apt install docker-compose-plugin -yCheck that you have Docker Compose version 2.x:
docker --version
docker compose versionRun the NextGIS Web stack
Create a folder for NextGIS Web and navigate to it:
mkdir /srv/ngw_ce
cd /srv/ngw_ceCreate a /srv/ngw_ce/.env file:
IMAGE_VERSION=26.04.0The version should match the one available in the repository.
Create the Docker Compose file /srv/ngw_ce/docker-compose.yaml:
services:
app:
image: nextgis/nextgisweb-ce:$IMAGE_VERSION
command: server
environment:
NEXTGISWEB__CORE__LOCALE__DEFAULT: "en"
ports:
- 8080:8080
volumes:
- data:/opt/crater/data
- backup:/opt/crater/backup
restart: unless-stopped
volumes:
data:
backup:Pay attention to the environment section. General configuration of NextGIS Web is managed through environment variables.
Finally, run the stack:
docker compose up -dOpen:
http://YOUR_IP:8080You should see the NextGIS Web authorization screen.
Now we will use it as-is. You can find a more comprehensive example of sustainable deployment with HTTPS encryption and domain configuration in the article: Deploy your own open-source Web GIS server instance on a VPS in 15 minutes with Docker.
Setting up NextGIS Web
The first thing to do after NGW deployment is to change the password and configure the basics.
Authenticate using the default credentials:
- login:
administrator - password:
admin
You will find yourself in the NGW administrative interface.
Pay attention to the current URL (1):
http://YOUR_IP:8080/resource/0In NGW, everything is a resource, and currently you are viewing resource 0.
This is a Resource Group (folder) owned by Administrator. Here we can see:
- The current resource metadata (2);
- a list of resources located inside the current resource (3), by default only the “Main web map” resource exists;
- the “Create resource” button (4);
- available actions for the current resource (5);
- the user menu and side menu in the top-right corner (6).
Open the side menu and access the Control Panel.
Inside the Control Panel, we can manage all aspects of the Web GIS. Let’s first change the administrator password.
Go to the Users section, open the Administrator account, and switch to edit mode.
Here we can assign a new password:
Other users will be managed through the same interface, so we’ll return to it later.
We can also customize the Web GIS name and logo using:
- Settings -> Web GIS name
- Settings -> Custom logo
After these changes, the main page of the Web GIS administrative interface looks like this:
If we click the Create resource button, we can see the capabilities of NextGIS Web and the types of resources it supports:
- vector and raster layers;
- web maps;
- S3 raster storages;
- external service connections;
- OGC services;
- PostGIS connections;
- and more.
It is possible to manage everything directly from the web interface, but in this article we focus primarily on QGIS workflows.
Publish a QGIS project to the Web
Project overview
We will work with a QGIS project containing data for the city of Płock in Poland.
You can download it here:
https://ekazakov.me/content/files/2026/05/Plock.zip
The project is relatively compact, but it includes complex multi-scale symbology, including:
- clustered point rendering;
- expression-based colors and symbol sizes;
- rule-based labeling.
It also contains several raster layers:
- a Sentinel-2 RGB image;
- a georeferenced raster with Płock districts.
One of the layers (crossroads) also uses custom field forms. We want to preserve all these settings for collaborative work.
Installing NextGIS Connect
To publish the project to our Web GIS, we need to install the NextGIS Connect plugin. It is available in the QGIS Plugin Repository:
Get Eduard Kazakov’s stories in your inbox
Join Medium for free to get updates from this writer.
Plugins -> Manage and Install Plugins -> All
After installation, the plugin becomes available in the Web menu. Open the NextGIS Connect panel.
Establish a connection and publish the project
Now we need to establish a connection with our deployed Web GIS instance. Press the Create a connection (1) button in the NextGIS Connect panel, specify your Web GIS domain or IP address (2), and create a new authentication record (3) using your Web GIS credentials (4).
After that, you will see the resource tree of your Web GIS inside the NextGIS Connect panel.
Select the Main Resource Group (the folder where we want to publish the project), open the Add to Web GIS menu, and choose Upload all.
Specify the project name, Plock.
Project export starts immediately. Layer by layer and style by style, everything is imported into the internal storage of your Web GIS.
Once the export is complete, a web map is created automatically, and all project components appear as Web GIS resources.
We can publish as many projects as needed this way.
The web map can be opened either by double-clicking it in NextGIS Connect or through the Web GIS interface.
Explore the published web map
The web map has its own shareable URL and displays the data exactly as configured in QGIS.
Web maps provide many tools for working with data:
- feature identification;
- filtering using complex expressions;
- attribute inspection;
- coordinate retrieval;
- measurement tools;
- printing layouts.
An unlimited number of files can be attached to each feature, while photos and panoramas can be viewed directly inside the web map.
Web maps are an excellent way to share projects with people who do not use QGIS but still need to monitor activity and make simple edits through a browser.
For now, however, web maps are not our primary focus. We will mainly use them to reconstruct the original QGIS project for our team members.
Before proceeding further, we need to create a team.
Create users and configure permissions
We already saw the Users and Groups management section in the Web GIS Control Panel. Let’s return there and create several users.
In the user creation interface, I configure Full name, Login and Password. Optionally, I can also add the user to groups, specify the default language and add a description.
I created two users:
- Gregory Watson (
gregory), collaborator with editing permissions; - Claudio Nevez (
claudio), read-only manager.
Users can be modified at any time.
The next step is configuring permissions. The permission system in NextGIS Web is highly flexible. Permissions are rule-based and can be applied to any individual resource (maps, layers, services, connections, folders…)
Return to the Main Resource Group and open its editing mode.
In the resource editing interface, open the Permissions tab.
This tab is available for every resource and allows creation of Allow/Deny rules. For simplicity, we will configure permissions directly at the root level.
I create one rule allowing Gregory full access to the root folder and all subresources; and several rules granting Claudio read-only access.
Now we have a small collaborative team and a published project.
Let’s start working together.
Connect to the published project from QGIS
Gregory opens QGIS on his computer. He installs NextGIS Connect and creates a connection to our Web GIS using the credentials we prepared for him.
He then browses the Web GIS contents, finds the published web map, and adds it to QGIS.
Based on the web map, the original QGIS project is reconstructed automatically and becomes ready for work.
Vector layers are connected in bridge mode and display synchronization indicators.
Changes on the server side are tracked automatically, while edits made from the desktop client are synchronized back to the server storage.
Raster layers are connected as Cloud Optimized GeoTIFFs (COGs), enabling fast access even for large datasets.
With a single click, Gregory receives a fully configured collaborative QGIS project and can immediately start working.
All contributions are synchronized with the server.
Edit data simultaneously
Gregory creates a new building feature in one of the project layers using standard QGIS editing tools.
After saving the layer, the changes are automatically committed to the server. The new object becomes immediately visible on the web map, even without refreshing the page.
If several people connect to the same project, they can edit it simultaneously. NextGIS Web is designed to support safe multi-user editing workflows across multiple QGIS instances.
Importantly, QGIS styles and forms are preserved completely. For example, when Gregory edits the Road Crossings layer, he still sees dropdown menus, checkboxes, editing constraints and custom forms.
Everything behaves exactly as in the original project.
Inspect layer history and roll changes back
Every edit is recorded in the layer history. Vector feature versioning is enabled by default, meaning that at any moment you can inspect:
- who changed the data;
- when it was changed;
- what exactly was modified.
To access layer history, open the layer page in the NextGIS Web interface, either manually in the browser or directly through NextGIS Connect.
On the vector layer resource page, numerous actions are available, including the Version history table.
Each row represents a layer version, showing author, timestamp and performed actions.
Each version provides a context menu with two options:
- revert the layer to the selected state;
- create a copy of the selected layer state.
This makes it easy to roll back accidental edits or recover from data corruption. Importantly, rolling back changes creates a new version instead of erasing history.
For example, here we reverted the layer to the initial version before Gregory added the building.
The building immediately disappeared from all connected QGIS instances and from the web map.
This mechanism becomes extremely valuable when many people contribute to the same dataset.
Resolve editing conflicts
When many people work on the same data, conflicts are inevitable. Eventually, two users will modify the same feature simultaneously.
When using NextGIS Web together with QGIS, a built-in conflict resolution system handles these situations. For example, Gregory and Administrator modify the same vegetation area.
A conflict resolution window appears automatically, showing which elements are in conflict, both competing versions and suggested resolution options.
The system analyzes both geometry and attribute conflicts.
This makes the editing workflow significantly more transparent and prevents silent data loss.
Final thoughts
Using the open-source server NextGIS Web as centralized geospatial storage makes QGIS collaboration remarkably straightforward.
An administrator publishes projects and configures permissions once, while collaborators simply connect to the shared environment and continue working in QGIS as usual, but now inside a synchronized collaborative infrastructure.
Version history and conflict resolution mechanisms help keep this process safe and sustainable.
Try it yourself using the public Docker image demonstrated in this article. It is fully functional and allows teams to build a powerful collaborative QGIS environment.
There are also cloud SaaS and supported on-premise options from the developers that provide additional advanced features.
I would be very interested to hear your thoughts and ideas!







