Open Source GIS Web Server
Creating a Fully Open Source Enterprise GIS Web Server
While rebuilding a spare computer at my home I was struck with the thought, could I create a fully functioning GIS webserver with this computer? Always interested in a challenge, I set out to find out!
I started out by deciding what I wanted the end product to be. I wanted a product that could server webmaps in a browser that drew maps from data held in a database that could be edited by multiple users from anywhere in the world. The maps should be viewable in a client that was attractive and had some basic GIS tools such as searching for locations, ability to turn layers on and off, display a legend and pop ups that displayed attribute data on demand. All of this should be done using open source software and hosted from my home so there was no need to pay a server fee.
The tools that I have chosen so far are:
Windows 11
Apache2
Postgresql 14
PostGIS
Php 8.1
QGIS Desktop 3.22
QGIS Server 3.22 (or Geoserver)
Lizmap Client or QGIS Client Web Client 2
Available Hardware:
Intel 11th Gen Quad Core 2.0 - 2.9Ghz N5105 Jasper Lake Processor
512GB M.2 SSD
16GB DDR4 Ram
Intel UHD Graphics 450Mhz - 800Mhz Coprocessor
Shaw XB7 Internet Modem
Netgear Nighthawk Router
Visual diagram of the architecture (docs.lizmap.com)
Perceived Issues:
Shaw modems can be a bit of a headache when trying to open port 443, so using an additional router is good work-around
QGIS’ latest release is 3.28 but the documentation for QGIS server is only current up to 3.22, so I will be working with QGIS Desktop/Server 3.22
I researched the hardware requirements for the software and determined that my current setup should be suitable as a test project. I would be concerned about the processing power for any sort of high volume traffic.
Installing Postgresql, PostGIS
Installation of Postgresql and with the Postgis extension was very smooth. I create a new master database and login with password. I added the Postgis extension through the bundled stack builder app.
I then opened QGIS and create a connection to the database through the Postgres database option on the right hand side. Then, using the load database tool, I successfully loaded some shapefiles from my local drive into the Postgres database as you can see here.
Screenshot showing the Buildings and Parcels spatial layers inside the Postgres Database
Screenshot showing that Parcels and Buildings layer are being hosted in the Postgres Database rather than the local drive
GeoCat Bridge provides an easy way to publish your project to GeoServer
Screen shot illustrating the layers in QGIS in preparation to upload via GeoCat Bridge
The layers are being served from GeoServer. The interface is clean and intuitive
This project is still under construction be sure to check back soon to see its progress