How to Install GeoServer Server on Ubuntu 20.04 Tutorial (Step by Step)

How to Install GeoServer Server on Ubuntu 20.04 Tutorial (Step by Step). Geoserver is a JAVA based app developed to aid sharing the geospatial data via opensource technology.  Thanks to that technology servers can handle large set of mapped data that users can share, process and edit the geospatial data, as required.  It helps to display the information to the world.  Follow this article to learn how to Install GeoServer Server on Ubuntu.

What is Geoserver

GeoServer is an open source mapping web server based on Java that allows editing and sharing of various geospatial data available on the net through open standards. The data can be published, shared and visualized in many different formats, like maps. 

It uses open standards for publishing data from any major spatial data source and is created for interoperability. If data is prepared properly, it is capable of handling large data sets, both vector and raster. It can render maps of high quality and it’s capable of handling hundreds or thousands of map layers easily.

Furthermore, a GeoServer based web application is included in the GeoServer project, so users don’t need to download raw data in order to view and interact with it.

It implements the Web Mapping Service (WMS), Open Geospatial Consortium (OGC), Web Coverage Service (WCS), and Web Feature Service (WFS) standards. In addition, it has the ability to serve data to common client mapping applications like Google Maps, ArcMap, Google Earth, Microsoft Virtual Earth and Yahoo Maps but also to open source applications like MapServer and OpenLayers.

With GeoServer, you are able to manage datasets that are much larger than what can be easily handled through a browser.

Benefits of Geoserver

Data from various sources is served by the server

GeoServer supports a variety of proprietary and open data formats such as:

  • Vector: External WFS, Shapefiles, ArcSDE, PostGIS, Oracle Spatial, DB2, SQL Server, MySql, and more.
  • Raster: JPG, GeoTiff, and PNG (includes world file), GDAL formats, image pyramid, Oracle GeoRaster, Image Mosaic and NetCDF.

Using WMS and WMTS protocols, data is delivered as safe and fast images

You can be completely certain that your data is secure since it is served as an image. No one can steal your information unless they re digitize it. Using the SLD standard, it is possible to customize the appearance of each map layer, allowing features to be colored and labelled. Using the OGC Filters and these rules, we can implement scale dependent styling that makes details available as the user zooms in. Grouping, priority and label collision management are also implemented.

The WFS protocol can be used to send full vector data to a client

WFS clients are able to download vector data, which can then be used for spatial analysis, mapping and other applications. Furthermore, the user can make changes to the data and then send it back to the server via the WFS-T protocol to update the stored data. You can send data using GML (compressed) and other common formats including JSON and shapefile.

Clients can receive raster data values via the WCS protocol

The raster data can be requested by the GIS client for use in spatial analysis. By doing so, you can create applications that can model the processes described in your data.

Reprojection on the fly

Data from a source can be transformed on the fly by GeoServer. Various EPSG projections are supported by GeoServer, and any of them can be reprojected on request for allowing clients with limited reprojection support to transfer file load to the server.

Tiling Cache

Using GeoWebCache, an integrated component of GeoServer, map images can be tiled and cached from a range of sources, including WMS. It implements a wide range of capabilities (such as WMTS, WMS-C, Google Maps KML, TMS and Virtual Earth) to optimize the delivery of map images. In addition, it is capable of combining tiles to be used with standard WMS clients.

Services related to web processing

GeoServer’s WPS interface can be used to call geospatial algorithms including those from JTS. This results in powerful visualizations using the WMS interface via a chain of processes and rendering transformations.

Follow this post to explain How to Install GeoServer Server on Ubuntu 20.04 Tutorial (Step by Step). 

Install GeoServer on Ubuntu 20.04

Install Java

GeoServer is written in Java language. So Java must be installed on your server. If not installed, you can install it by running the following command:

					apt install default-jdk -y

Once Java installation is complete, verify the Java installation using the following command:

					java --version

You will get the Java version in the following output:

					openjdk 11.0.15 2022-04-19
OpenJDK Runtime Environment (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1)
OpenJDK 64-Bit Server VM (build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1, mixed mode, sharing)

Deploy GeoServer

First, visit the GeoServer download page on sourceforge, copy the URL of the latest GeoServer file and download it with the following command:


Once the download is completed, you will get the following command:

					Connecting to (||:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 110376595 (105M) [application/octet-stream]
Saving to: ‘’            100%[=================================================================>] 105.26M  37.5MB/s    in 2.8s    

2022-06-01 11:23:43 (37.5 MB/s) - ‘’ saved [110376595/110376595]


Next, create a directory for GeoServer and unzip the downloaded file to the geoserver directory with the following command:

					mkdir /usr/share/geoserver
unzip -d /usr/share/geoserver/

Please create a dedicated user for GeoServer using the following command:

					useradd -m -U -s /bin/false geoserver

Next change the ownership of the GeoServer directory:

					chown -R geoserver:geoserver /usr/share/geoserver

Create a Systemd Service File for GeoServer

Next, you will need to create a systemd service file to manage the GeoServer. You can create it with the following command:

					nano /usr/lib/systemd/system/geoserver.service

Add the following lines:

Description=GeoServer Service







Save and close the file when you are finished. Next, run the following command to reload the systemd daemon:

					systemctl daemon-reload

Next, start the GeoServer and enable it to start at system reboot with the following command:

					systemctl enable --now geoserver

You can now check the status of the GeoServer using the following command:

					systemctl status geoserver

You will get the GeoServer status in the following output:

					● geoserver.service - GeoServer Service
     Loaded: loaded (/lib/systemd/system/geoserver.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-06-01 11:26:27 UTC; 7s ago
   Main PID: 4425 (java)
      Tasks: 29 (limit: 4686)
     Memory: 267.7M
     CGroup: /system.slice/geoserver.service
             └─4425 java -DNoJavaOpts -Xbootclasspath/a:/usr/share/geoserver/webapps/geoserver/WEB-INF/lib/marlin-0.9.3.jar -Dsun.java2d.rend>

Jun 01 11:26:27 ubuntu2004[4425]: 2022-06-01 11:26:27.741:INFO::main: Logging initialized @504ms to org.eclipse.jetty.util.log.Std>
Jun 01 11:26:28 ubuntu2004[4425]: 2022-06-01 11:26:28.210:INFO:oejs.Server:main: jetty-9.4.44.v20210927; built: 2021-09-27T23:02:4>
Jun 01 11:26:28 ubuntu2004[4425]: 2022-06-01 11:26:28.251:INFO:oejdp.ScanningAppProvider:main: Deployment monitor [file:///usr/sha>
Jun 01 11:26:29 ubuntu2004[4425]: 2022-06-01 11:26:29.024:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /geoserve>
Jun 01 11:26:29 ubuntu2004[4425]: 2022-06-01 11:26:29.139:INFO:oejs.session:main: DefaultSessionIdManager workerName=node0
Jun 01 11:26:29 ubuntu2004[4425]: 2022-06-01 11:26:29.140:INFO:oejs.session:main: No SessionScavenger set, using defaults
Jun 01 11:26:29 ubuntu2004[4425]: 2022-06-01 11:26:29.141:INFO:oejs.session:main: node0 Scavenging every 600000ms
Jun 01 11:26:30 ubuntu2004[4425]: 11:26:30 INFO   [geoserver.logging] - Logging policy: Log4J2
Jun 01 11:26:31 ubuntu2004[4425]: 01 026 11:26:31 INFO   [geoserver.logging] - Log4j 2 configuration set to DEFAULT_LOGGING.xml
Jun 01 11:26:31 ubuntu2004[4425]: 2022-06-01 11:26:31.353:INFO:oejshC.geoserver:main: Initializing Spring root WebApplicationConte>
lines 1-19/19 (END)


By default, GeoServer listens on port 8080. You can check it with the following command:

					ss -antpl | grep 8080

You will get the following output:

					LISTEN   0        50                           *:8080                  *:*       users:(("java",pid=4425,fd=311))                                               

Access GeoServer Web Interface

1. At this point, GeoServer is installed and running. You can now access it using the URL http://your-server-ip:8080/geoserver. You should see the GeoServer log in page:

2. Provide default username and password as admin/geoserver then click on the Login button. You should see the GeoServer dashboard on the following page:

3. Click on the Server Status in the left panel, you should see the GeoServer status on the following page:

Great effort! We have just learned how to Install GeoServer Server on Ubuntu 20.04 Tutorial (Step by Step). 

How to install GeoServer on Ubuntu 20.04. Conclusion

In this post, we explained how to install GeoServer on Ubuntu 20.04 server. You can now deploy the GeoServer in your organization to view and edit Geospatial data.

Avatar for Hitesh Jethva
Hitesh Jethva

I am a fan of open source technology and have more than 10 years of experience working with Linux and Open Source technologies. I am one of the Linux technical writers for Cloud Infrastructure Services.

4.3 6 votes
Article Rating
Notify of
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x