Jetty 9.4.12 with pre-installed/configured Oskari

After this you will have Oskari running including


Setting up Jetty

  1. Download the Jetty Bundle

  2. Unpack the zip file to selected location

The zip includes, jetty-distribution-9.4.12.v20180830 (referred as {jetty.home}) and oskari-server folder (referred as {jetty.base})

  1. Configure the database properties (host/credentials) by editing {jetty.base}/resources/

    db.url=jdbc:postgresql://[host]:[port]/[dbname] db.username=[user] db.password=[passwd]

  2. Startup the Jetty by running (in {jetty.base})

    java -jar ../jetty-distribution-9.4.12.v20180830/start.jar

Note that for folder references like the GeoServer datadir it's important where you run the command/what is the working directory so run the command in oskari-server folder and refer to start.jar under the {jetty.home}:

  1. After Jetty is up and running open a browser with URL


You can login as:

  • user with username "user" and password "user"
  • admin with username "admin" and password "oskari"


The preconfigured Jetty uses these defaults. These can be changed by modifying {jetty.base}/resources/


  • redis running on localhost at default port (6379)

Database (Postgres with postgis extension)

  • db URL: localhost in default port (5432)
  • db name: oskaridb
  • db user: oskari/oskari

GeoServer (provided in Jetty bundle)

  • url: http://localhost:8080/geoserver
  • user: admin/geoserver
  • datadir: {jetty.base}/geoserver_data (configurable in {jetty.base}/start.d/oskari.ini)
  • if local GeoServer content doesn't seem to work correctly (log shows "feature not on screen" or SRID errors) -> try logging into GeoServer and reload the feature type under layers (my_places_categories, user_layer_data_style, analysis_data_style). This is probably due to GeoServer starting before Oskari has created the database. We are exploring the option to configure GeoServer through it's REST API to workaround this and preconfigured datadir.

Oskari (provided in Jetty bundle)

Custom configurations

Removing the unnecessary parts

Oskari-server can run with just the oskari-map webapp. If you don't need all the features, you can remove them from under {jetty.base}/webapps:

  • user content functionalities: you can remove geoserver folder

You will also need to remove the corresponding parts of the UI so users don't have access to them. This is done by removing "bundles" from "appsetups" (these are Oskari concepts: bundles provide functionalities and appsetup defines which bundles are used in your app) and currently it needs to be done by modifying the database content. Bundles are linked to appsetups in the database table portti_view_bundle_seq and functionalities are removed from the UI by deleting rows from the table.

Editing article content

  • User guide: edit the file in {jetty.base}/resources/articlesByTag/userguide.html
  • Publisher terms of use: edit the file in {jetty.base}/resources/articlesByTag/termsofuse__mappublication__en.html

Changing the default port

  • provide port in command line:

    java -jar ${jetty.home}/start.jar jetty.http.port=8080

  • change {jetty.base}/resources/ where ever 8080 is referenced

  • check the "Using external Geoserver" below (also refers to localhost:8080 port)

Proxy settings

If you need a proxy to access internet you can configure it in {jetty.base}/start.d/oskari.ini


Database url/name/user/pass are changed

{jetty.base}/resources/ needs to be updated


Stores in GeoServer needs to be updated and re-enabled for myplaces/analysis/userlayers to work

Using external GeoServer

  • {jetty.base}/resources/ needs to be updated (multiple geoserver references)
  • layers pointing to local GeoServer in database needs to be updated (table: oskari_maplayer - columns: url, username and password)

Using external Redis

{jetty.base}/resources/ needs to be updated


How the Jetty bundle was built

See the inside the zip-file for details

Last modified: Mon Nov 06 2023 17:46:05 GMT+0200 (Eastern European Standard Time)