GeoNode’s Documentation

Welcome to GeoNode’s Documentation.

GeoNode is an Open Source, Content Management System (CMS) for geospatial data. It is a web-based application and platform for developing geospatial information systems (GIS) and for deploying spatial data infrastructures (SDI).

Table of contents

What is GeoNode

Current Version and Features

Get in touch with the community

GeoNode Basics

Supported Browser

Online Demo

Quick Installation Guide

Introduction

OSGEO Live CD

Install via Ansible

Accounts and User Profile

In GeoNode many contents are public so unregistered users have read-only access to public maps, layers and documents. In order to create maps, add layers or documents, edit the data and share these resources with other users, you need to sign in.

GeoNode is primarily a social platform, thus a primary component of any GeoNode instance is the user account.

This section will guide you through account registration, updating your account information and preferences, connections with social networks and email addresses.

Creating a New Account

To take full advantage of all the GeoNode features you need an user account. Follow these step to create a new one.

  1. From any page in the web interface, you will see a Register link. Click that link, and the register form will appear

    Bemerkung

    The registrations in GeoNode must be open, in case you don’t see the register link then it’s not possible to register unless the administrator of the site does that for you.

    _images/register_button.png

    Sign in screen

  2. On the next page, fill out the form. Enter a user name and password in the fields. Also, enter your email address for verification.

    _images/register_form.png

    Registering for a new account

  3. You will be automatically logged in and redirected to the Profile page. An email will be sent confirming that you have signed up. If no errors occur during the registration, the following alerts will appear on the screen:

    _images/register_alerts.png

    Alerts

To logout click on the Log out link of the user menu.

_images/logout_link.png

Logout link

You have to confirm this action as described in the picture below.

_images/confirm_logout.png

Confirm Log out

Updating the Profile

Once having an account you can enrich your profile with useful information, you can also edit or delete the existing ones. You can connect the account with your social network, associate many e-mail addresses to it and manage many options such as preferences about notifications.

You can update these information anytime from your Profile page, it is accessible from the user menu.

So, click on your user name in the top right of the screen. A drop-down list will show. Click on Profile to enter the Profile settings page.

_images/profile_link.png

Link to your profile

The Profile page looks like the one shown in the picture below.

_images/user_profile_page.png

User profile page

Your personal information are shown under the username. At the bottom of the page are listed all the resources associated to your Profile, you can decide to view only layers or maps or documents by clicking on the corresponding tab.

Through the link User layers WMS GetCapabilities document you can retrieve an XML document with the list of the available layers.

On the right side of the page there are many useful links to edit personal information, to upload and create layers or maps, to update your Profile settings and to get in touch with other GeoNode users.

The Favorites link, also accessible from the user menu, drive you to the list of the resources marked as your favorites.

_images/favorites_resources.png

Favorites

Click the Delete from Favorites button to remove the resource from the list.

The My Activities link allows to see all your recent activities on GeoNode such as layers uploading and maps creation.

_images/user_activities.png

Recent activities

This link is also available in the user menu.

All other links and their functionalities will be described in depth in the following sections.

Editing Profile Information

Your Profile contains personal information such as your address, your telephone number, your organization and so on but it is empty by default at the beginning.

Through the Edit profile button of the Profile page (see Updating the Profile) you can set your details, including your avatar.

_images/user_profile_update_info.png

Updating Profile information

When finished, click Update profile. You will be redirected to the Profile page.
A message will confirm the profile has been correctly updated.
_images/profile_update_confirm.png

Updating Profile correctly finalized

Connecting your Account with Social Networks

You currently have no social network accounts connected to this account.

Associating your Account with an e-mail

Your account is automatically associated with the e-mail that you used to register yourself on the platform.

_images/associate_email.png

Accounts e-mail

By clicking on Associated e-mails of the Profile page (see Updating the Profile), you will have the possibility to fill up a new e-mail address. Type it in the E-mail input filed then click on Add E-mail to perfrom a new association.

_images/associate_new_email.png

New e-mail association

You can make it primary if necessary, in order to receive the notification on this address. To do that, select the e-mail that you want, then click on Make Primary.

_images/primary_email.png

Primary e-mail address

Managing the Password

To change your password, click on the Set/Change password link of the Profile page (see Updating the Profile). You will be asked to enter your current password and the new one (two times). Click on Change my password to perform the change.

_images/change_password.png

Change your password

If no errors occur you will see a confirmation message.

_images/change_password_confirm.png

Change password confirmation

Next time you log in you will have to use the new password.

Setting Notification Preferences

By default GeoNode sends notifications to the users for events that the users could be subscribe such as a new layer uploaded or a new rate added to a map. You can adjust your notification settings by clicking on the Notifications link of the Profile page (see Updating the Profile).

Bemerkung

Make sure to have a verified email address to which notices can be sent. If not see Associating your Account with an e-mail.

Now check/uncheck the notification types you wish to receive or not receive. It is possible to be notified for the events shown in the picture below.

_images/notifications_settings.png

Notifications settings

Interacting with Users and Groups

The GeoNode platform allows you to communicate by message with other GeoNode users and groups of users.

You can also invite external users to join your GeoNode. In order to do that, click on Invite Users in the Profile page (see Updating the Profile) or in the About menu in the Home page.
You can invite your contacts typing their email addresses in the input field as shown in the picture below. Click on Submit to perform the action.
_images/invite_users.png

Invite users to join GeoNode

A message will confirm that invitations have been correctly sent.

_images/invite_users_confirm.png

Invitations confirm message

Bemerkung

You can invite more than one user at the same time by typing the email addresses inline with a semi-colon separator.

The next sections will show you how to view information about other users and how to contact them.

Viewing other users information

Once your account is created, you can view other accounts on the system.
To see information about other users on the system, click the People link of the About menu in Home page.
_images/people_link.png

About menu - People link

You will see a list of users registered on the system.

_images/registered_users_list.png

List of the registered users

The Search tool is very useful in case of many registered users, type the name of the user you are looking for in the input text field to filter the users list.
Select a user and click on its username to access to the user details page.
_images/user_details.png

User details

In this page the main information about the user are shown: personal information (name, surname, organization and so on…) and the resources the user owns (layers, maps and documents).

Through the User Activities link, in right side of the page, it is possible to visualize all the activities the user has been done.

_images/user_activities1.png

User activities

The Message User link lets you to contact other users, see the next section to read more about that.

It is also possible, in GeoNode, to see the recent activities of all users through the Recent Activities link of the user menu.

_images/recent_activities_link.png

Recent Activities link

In the picture below an example.

_images/recent_activities.png

Recent Activities

As you can see, you can decide whether to see only the activities related to layers or those related to maps or comments by switching the tabs.

Contacting other users

GeoNode allows you to communicate by message with other registered users and groups.
To send a message to some user and/or groups you can follow the link Message User from your Profile page (see Updating the Profile) or from the Profile details page (see the previous section Viewing other users information) of that user.
_images/write_message.png

Send message to users and groups

Insert your content, type a subject and click on Send message to send the message to the users and groups you have selected.
You will be redirected to the Conversation details page related to the subject.
_images/sent_message.png

Your message

The Inbox page

You can view your conversations in your Inbox page, reachable through the Back to inbox button (see the picture above) or from the Inbox link of the user menu.

_images/inbox_link.png

Inbox link

The picture below shows how your Inbox page should look like.

_images/inbox_page.png

Inbox page

In Inbox all the unread messages are listed. You haven’t received any message yet so your Inbox is empty. If you switch to the All tab you can see all the conversations you are involved in.

_images/all_your_conversations.png

All your conversations

When some user send a reply to your message your Inbox shows it, see the picture below for an example.

_images/reply_inbox.png

A reply to your message

You can open the Conversation details by clicking on the Subject link.

_images/conversation.png

Conversation details

As you can see in the picture above, in the Conversation page you have the ability to write a quick reply. Type your message in the text box and click on Send Reply to do that.

In the Inbox page there is also the Create Message button that provides you a quick link to the message creation form.

Data

Data management tools built into GeoNode allow for integrated creation of data, documents, link to external documents, and map visualizations. Each dataset in the system can be shared publicly or restricted to allow access to only specific users. Social features like user profiles and commenting and rating systems allow for the development of communities around each platform to facilitate the use, management, and quality control of the data the GeoNode instance contains.

The following sections will explain more in depth what data can be managed in GeoNode and how to easily find that data.

Data Types

GeoNode welcome page shows a variety of information about the current GeoNode instance.
You can explore the existing data using many search tools and filters (see Finding Data) or through the links of the navigation bar at the top of the page.
There are three main types of resources that GeoNode can manage:
  1. Documents
  2. Layers
  3. Maps

Documents and layers can be accessed from the Data menu of the navigation bar.

_images/data_menu.png

Data menu

The Maps menu let you to manage maps.

_images/maps_menu.png

Maps menu

Documents
GeoNode allows to publish tabular and text data and to manage metadata and associated documents.
Documents can be uploaded directly from your disk (see Uploading Documents for further information).
The following documents types are allowed: .doc, .docx, .gif, .jpg, .jpeg, .ods, .odt, .odp, .pdf, .png, .ppt, .pptx, .rar, .sld, .tif, .tiff, .txt, .xls, .xlsx, .xml, .zip, .gz, .qml.
Through the document detailed page is possible to view, download and manage a document.
Layers
Layers are a primary component of GeoNode.
Layers are publishable resources representing a raster or vector spatial data source. Layers also can be associated with metadata, ratings, and comments.
By clicking the Layers link you will get a list of all published layers. If logged in as an administrator, you will also see the unpublished layers in the same list.
GeoNode allows the user to upload vector and raster data in their original projections using a web form.

Vector data can be uploaded in many different formats (ESRI Shapefile, KML and so on…). Satellite imagery and other kinds of raster data can be uploaded as GeoTIFFs.

Maps
Maps are a primary component of GeoNode.
Maps are comprised of various layers and their styles. Layers can be both local layers in GeoNode as well as remote layers either served from other WMS servers or by web service layers such as Google or MapQuest.

GeoNode maps also contain other information such as map zoom and extent, layer ordering, and style.

You can create a map based on uploaded layers, combine them with some existing layers and a remote web service layer, share the resulting map for public viewing. Once the data has been uploaded, GeoNode lets the user search for it geographically or via keywords and create maps. All the layers are automatically reprojected to web mercator for maps display, making it possible to use popular base maps such as OpenStreetMap.

Finding Data

This section will guide you to navigate GeoNode to find layers, maps and documents by using different routes, filters and search functions.
In Home page you can find some quick search tool.

The Search box in the navigation bar (see the picture below) let you type a text and find all the data which have to deal with that text.

_images/search_tool.png

Search tool in GeoNode welcome page

When you trigger a search you are brought to the Search page which shows you the search result through all data types.

_images/search_page.png

The Search page

This page contains a wealth of options for customizing a search for various information on GeoNode. This search form allows for much more fine-tuned searches than the simple search box is available at the top of every page.
It is possible to search for data by Text, Categories, Type, Keywords, Owners, Date, Regions or Extent.

Try to set some filter and see how the resulting data list changes accordingly. An interesting type of filter is EXTENT: you can apply a spatial filter by moving or zooming a map within a box as shown in the picture below.

_images/search_filter_by_extent.png

Search filter by EXTENT

Data can be ordered by date, name and popularity.

_images/ordering_data.png

Ordering Data

The GeoNode welcome page offers you many other options to find resources.

  • The Search for data tool allows you to search for data by name.

    _images/welcome_search_data.png

    Searching for data

    The Search page, which you will be redirected to, will have the TEXT filter already set with the name you have typed in the search box (see the picture below). If you want to reach the Search page directly, without any input text, you can click the Advanced Search link.

    _images/search_for_data_result.png

    Results of searching made by name

  • In the Home page section shown below are listed all the categories available in the GeoNode instance you are using. You can search for data by category by clicking on it.

    _images/search_datasets_by_category.png

    Searching for datasets by category

    In the Search page, data will be filtered by that category.

    _images/search_by_category_result.png

    Results of searching made by category

  • The Featured Datasets section (see the picture below) shows you aggregate data about Layers, Maps, Documents and Users. You can trigger a search on layers by clicking on the Layers icon, the same happens for Maps, Documents and Users. The Explore all datasets drive you to the Search page with no filter on data types.
    In this section there are also useful quick links to add new resources: the Add layers drives you to the layer uploading page, the Add documents to the document uploading page and the Create maps guide you to the map creation.
    _images/featured_datasets.png

    Featured Datasets

    For each data type GeoNode makes available an individual Search page, the next paragraphs will explain that in depth. For Users see Viewing other users information.

Documents

When you are searching for Documents you can:

  • use the Documents quick link of the Featured Datasets section as described above

  • click on the Documents link of the Data menu in the navigation bar

    _images/documents_link.png

    Link for Documents

The Documents search page looks like the generic one but only Document is considered as data type. You can filter documents by CATEGORIES, as in the example below, or by TEXT, KEYWORDS and so on. You can also use more than one filter at the same time.

_images/documents_filter_by_category.png

Documents filtered by categories

Layers

To find Layers you can:

  • use the Layers quick link of the Featured Datasets

  • click on the Layers link of the Data menu in the navigation bar

    _images/layers_link.png

    Link for Layers

In the Layers search page only Layer will be considered as data type. You can set one or more filter to refine the search. In the example below the layers have been filtered by EXTENT and CATEGORIES.
_images/filtering_layers.gif

Layers filtered by extent

Maps

If you are searching for Maps you can:

  • use the Maps quick link of the Featured Datasets section as described above

  • click on the Explore Maps link of the Maps menu in the navigation bar

    _images/maps_link.png

    Link for Maps

As seen for the other data types, the Maps search page allows you to filter your maps by a combination of criteria. The example below shows maps filtered by REGIONS.

_images/filtering_maps.gif

Maps filtered by regions

Managing Documents

In this section all the aspects concerning Documents will be discussed.
You will learn how to upload a document and how to inspect its metadata and details. All the editing tools will be also explained.

Uploading Documents

GeoNode allows to share reports, conceptual notes, posters, spreadsheets, etc. A wide range of documents files can be hosted on the platform, including text files (.doc, .docx, .txt, .odt), spreadsheets (.xls, .xlsx, .ods), presentations (.ppt, .pptx, .odp), images (.gif, .jpg, .png, .tif, .tiff), PDF, zip files (.rar, .zip, .gz), SLD, XML or QML files.

Warnung

Only authenticated users can upload data into GeoNode.

Documents uploading is accessible from two positions:

  • the Upload Documents button of the Documents Search page (see Documents)

    _images/upload_documents_button.png

    Documents Upload button

  • the Upload Document link of the Data menu in the navigation bar

    _images/upload_document_link.png

    Document Upload link

The Document Upload page looks like the one shown in the picture below.

_images/document_upload_page.png

Document Upload page

In order to upload a document:

  1. select a file from your disk or enter a URL address if the document is stored on the internet
  2. insert the title of the document
  3. select one or more published resources the document can be linked to (optional)
  4. click the red Upload button

At the end of the uploading process you will be driven to the Metadata page to fill out other information about the document. See the next section to know more about that.

Filling the Document Metadata

Metadata contains all the information related to the document: they are its ID card. They provide essential information for its identification and its comprehension. Metadata also make the document more easily retrievable through search by other users.

Editing a document’s metadata is done in three steps (Basic Metadata, Location and Licenses, Optional Metadata). The first two steps are mandatory (no documents will be published if the required information are not provided) whereas the last one is optional.

  1. On the Basic Metadata page, the essential information that has to be filled is:
  • The Title of the document, which should be clear and understandable;
  • The Resources the document should be linked to;
  • An Abstract on the document;
  • The Creation/Publication/Revision dates which define the time period that is covered by the document;
  • The Keywords, which should be chosen within the available list. The contributor search for available keywords by clicking on the searching bar, or on the folder logo representing, or by entering the first letters of the desired word. Key-words should be relevant to the imported document;
  • The Category in which the document belongs;
  • The Group to which the document is linked.
_images/document_basic_metadata.png

Document Basic Metadata

Once all the fields are filled, click on the blue button Next >> in the bottom right corner of the page.

  1. On the Location and Licenses page, the following information should be filled:
  • The Language of the document;
  • The Regions, which informs on the spatial extent covered by the document. Proposed extents cover the following scales: global, continental, regional, national;
  • The Data Quality statement (general explanation of the data producer’s knowledge about the lineage of a dataset);
  • Potential Restrictions to sharing the document should be provided in the Restrictions box.
_images/document_location_licenses.png

Document Location and Licenses

Click on the blue button Next >> to go ahead to the next step.

  1. On the Optional Metadata page, complementary information can be added:
  • The Edition to indicate the reference or the source of the document;
  • The Purpose of the document and its objectives;
  • Any Supplemental information that can provide a better understanding of the uploaded document;
  • The Maintenance frequency of the document;
  • The Spatial representation type used.

Responsible Parties, Owner and Permissions are listed on the right side of the page, you can edit them.

_images/document_optional_metadata.png

Document Optional Metadata

If all the mandatory information is filled out the document can be published, if not the Completeness progress bar warns you that something is missing.
Click on the blue button Update to save information on the system.

Document Information

From the Documents Search Page (see Documents) you can select the document you are interested in and see some basic information about it. You can access the document details page by clicking on its name. That page looks like the one shown in the picture below.

_images/document_info.png

Document Information page

On the page of a document, the resource is either directly displayed on the page or accessible by clicking on the link provided under the title.

Exploring the Tabs Sections

There is a tab section below the document, where you can first view Info about the document.

The Info tab section shows the document metadata such as its title, abstract, date of publication etc. The metadata also indicates the user who is responsible for uploading and managing this content, as well as the group to which it is linked.

The Share tab provides the social media links for the document to share. There is also a link to share the document through email.

_images/document_sharing.png

Document Sharing

You can Rate the document through the Ratings system.

_images/document_rating.png

Rate the Document

In the Comments tab section you can post your comment. Click on Add Comment, insert your comment and click Submit Comment to post it.

_images/document_comments.png

Document Comments

Your comment will be added next to the last already existing comment. If you want to remove it click on the red Delete button.

_images/your_comment_on_document.png

Your Comment

If you want this document in your Favorites (see Updating the Profile), open the Favorite tab and click on Add to Favorites.

_images/favorite_document.png

Your Favorite Comment

The Tools Section

On the right side of the Document Page you can see other useful information such as the links to the resources linked to the document, the document Owner, the Point of Contact and the Metadata Author.

_images/document_links_buttons.png

Document useful tool

In the same section of the Document Page you can find the following useful tool:

  • Metadata Detail to explore in detail the document metadata (see the next paragraph)

  • Download Document to download the document

  • Edit Document to change the document metadata, replace the file etc (see Document Editing)

  • Download Metadata to download the whole set of metadata in various formats

    _images/document_metadata_download.png

    Document Metadata download

  • Change Document Permissions to assign permissions on the document to users and groups (see Changing the Document Permissions).

Exploring Metadata Details

When clicking on the Metadata Detail button the Metadata Details Page will open.

_images/document_metadata_details.png

Document Metadata Details page

It displays the whole set of available metadata about the document.
Metadata are grouped in order to show the following types of information:
  • Identification to uniquely identify the document
  • Owner, the user who own the document
  • Information, the identification image, the Spatial Extent, Projection System and so on
  • Features, Restrictions, Language and so on
  • Contact Points, the user available to have a contact
  • References, various links to the resource information
  • Metadata Author, the metadata author information

Document Editing

The Document Information page makes available useful tools for document editing. Click on the Edit Document button to see what you can do to make changes. The picture below shows you the Editing Panel that will appear on the screen.

_images/document_editing_panel.png

Document Editing panel

You can Replace the document file with another one by clicking on Replace. It will drive you to the Document Upload page (see Uploading Documents) where you can upload a new file.

The Remove button allows you to delete the document. You will have to confirm that choice.

_images/confirm_document_removal.png

Document Removal confirmation

The Editing Panel shows you also some links for editing the metadata and the thumbnail. These actions will be explained more in depth in the next paragraphs.

Setting the Document Thumbnail

From the Editing Panel, it is also possible to Set the Thumbnail of the document. Click on Set to open the Thumbnail Uploading page and chose the image that will illustrate your document. You can either drag and drop it in the Drop files here box or selecting from your folders by clicking on Choose Files. Once this is done, click on the red button Upload files. If the thumbnail has been successfully uploaded you can see it by coming back to the document list. Click on the Explore Documents button to check that.

_images/document_uploading_thumbnail.png

Upload Document’s Thumbnail

If no errors occur the following message will be shown.

_images/document_uploading_thumbnail_success.png

Uploading success

Editing the Document Metadata

You can edit the metadata of your document through the buttons shown in the red rectangle in below picture.

_images/document_metadata_editing_buttons.png

Editing Metadata

The Wizard button drive you to the wizard described in the Filling the Document Metadata section. The Advanced Edit button takes you to a big form where all the available metadata of the document can be edited.
Some information are mandatory such as the Title or the Category the document belongs to, some others are optional.
_images/document_metadata_editing.png

Editing Metadata

In the example shown in the picture above, the information inside the red rectangles have been changed. To save the changes click on Update, you will be redirected to the document page.

Changing the Document Permissions

GeoNode encourages to publicly, share and make available for download information uploaded on the platform. By default, anyone can see and download a document. However, the document responsible can choose to limit access to the document to some contributors and/or groups.

Through the button shown in the picture below it is possible to manage the document permissions.

_images/changing_document_permissions_button.png

The button to change permissions

The Change Document Permissions button on the right side of the document page allows to set up who can:

  • View the document;
  • Download it;
  • Edit its metadata;
  • Manage it (update, delete, change permissions, publish/unpublish).

See an example in the picture below.

_images/changing_document_permissions.png

Changing the Document permissions

Usually that editing of metadata and the management of a document are in charge of the responsible of the document, i.e. the contributor who uploaded it and who has those permissions by default.

Once the permissions are set, click Apply changes to save them.

Managing Layers

Layers are published resources representing raster o vector spatial data sources. Layers can also be associated with metadata, ratings, and comments.
In this section, you will learn how to create a new layer by uploading a local data set, add layer info, change the style of the layer, and share the results.

Layers Uploading

The most important resource type in GeoNode is the Layer. A layer represents spatial information so it can be displayed inside a map.
To better understand what we are talking about let’s upload your first layer.

The Layer Uploading page can be reached from the Upload Layer link of the Data menu in the navigation bar.

_images/upload_layer_link.png

Link for Layers Uploading

There is also an Upload Layers button in the Layers Page.

_images/upload_layer_link_from_list.png

Button for Layers Uploading

The Layers Uploading page looks like the one in the picture below.

_images/layers_uploading_page.png

The Layers Uploading page

Through the Choose Files button you can select files from your disk, make sure they are valid raster or vector spatial data. You can also change the default Permissions settings (see Changing the Layer Permissions for further information on how to set permissions).
Select the charset, then click on Upload files to start the process or click Clear to remove all the loaded files form the page.
_images/upload_shapefile.gif

Shapefile Uploading

In this example the roads ESRI Shapefile, with all its mandatory files (.shp, .shx, .dbf and .prj), has been chosen. A progress bar shows the operation made during the layer upload and alerts you when the process is over. When the process ends click the Layer Info to check the layer has been correctly uploaded.

Bemerkung

There are lot of free spatial dataset available in the Internet. In this example, an extract of the Berlin city center roads map from the BBBike extracts OpenStreetMap dataset has been used.

In the next paragraphs you will learn how to create a layer from scratch, how to set permissions, how to explore the layer properties and how to edit them.

Creating a Layer from scratch

An interesting tool that GeoNode makes available to you is the Create Layer. It allows you to create a new vector layer from scratch. The Layer Creation Form is reachable through the Create Layer link shown in the picture below.

_images/create_layer_link.png

Create layer link

In order to create the new Layer you have to fill out the required fields:

  • Name

  • Title

  • Geometry type

    _images/geometry_types.png

    Geometry types

Usually the layers features should have some Attributes that enrich the amount of information associated with each of them. Through the Add Attribute button you can add new attributes.

_images/new_layer_from_scratch.gif

New Layer creation from scratch

At this time you can also change the default Permissions settings, see Changing the Layer Permissions to learn how.

Once the form has been filled out, click on Create. You will be redirected to the Layer Page (see Layer Information). Now your Layer is created but is still empty, no features have been added yet. See the Layer Editing section to learn how to add new features.

Using Remote Services

In GeoNode you can add new layers not only loading them from your disk but also using Remote Services. In this section you will learn how to add a new service and how to load resources in GeoNode through that.

Let’s try it!

Click on the Remote Services link of the Data menu in the navigation bar.

_images/remote_services_link.png

Remote Services link

The page that opens will contain the list of the available services.

_images/remote_services.png

Remote Services

To configure a new service:

  • click on Register a new Service

  • type the Service URL

  • select the Service Type

    _images/service_type.png

    Service Types

  • click on Create

Bemerkung

Lots of services are available on the internet, in this example we used the https://demo.geo-solutions.it/geoserver/wms.

Once the service has been configured, you can load the resources you are interested in through the Import Resources page where you will be automatically redirected to. Take a look at the gif below to see the whole process.

_images/new_remote_service.gif

A new Remote Service

From the page where the services are listed, it is possible to click on the Title of a service. It opens the Service Details page.
Each service has its own metadata such as the Service Type, the URL, an Abstract, some Keywords and the Contact user. You can edit those metadata through the form available from the Edit Service Metadata button of the Service Details page (see the picture below).
_images/remote_service_metadata.png

Remote Service metadata

Changing the Layer Permissions

When creating or uploading a new Layer you have to set who can view, download, edit and manage that Layer. By default only owners can edit and manage layers, anyone can view and download them.

In order to modify the Layer Permissions settings you have to click the Change the Layer Permissions button in the Layer page.

_images/change_layer_permissions1.png

Change Layer Permissions

Through the Permissions Settings Panel you can add or remove permissions for users and groups. The picture below shows an example.

_images/layer_permissions_settings.png

Layer Permissions settings for users and groups

You can set the following types of permissions:

  • View allows to view the layer;
  • Download allows to download the layer;
  • Change Metadata allows to change the layer metadata;
  • Edit Data allows to change attributes and properties of the layers features;
  • Edit Style allows to change the layer style;
  • Manage allows to update, delete, change permissions, publish and unpublish the layer.

Warnung

When assigning permissions to a group, all the group members will have those permissions. Be careful in case of editing permissions.

Click on Apply Changes to save these settings.

Layer Information

In this section you will learn more about layers. In the Layers section we explain how to find layers, now we want to go more in depth showing you how to explore detailed information about that.
From the layers list page, click on the layer you are interested in. The Layer Page will open.
_images/layer_info.png

Layer Information

As shown in the picture above, the Layer Page is divided into three main sections:

  1. the Layer Preview section, under the title
  2. the Tabs section, under the layer preview
  3. the Tools section, on the right side of the page
Layer Preview

The Layer Preview shows the layer in a map with very basic functionalities:

  • the Base Map Switcher that allows you to change the base map;
  • the Zoom in/out tool to enlarge and decrease the view;
  • the Zoom to max extent tool for the zoom to fit the layer size;
  • the Query Objects tool to retrieve information about the map objects by clicking on the map;
  • the Print tool to print the preview.
_images/layer_preview.gif

Layer Preview

The GeoNode map viewer is MapStore based, see the MapStore Documentation to learn more.

Tabs Sections

The Layer Page shows you some tabs sections containing different information about the layer:

  • The tab Info is active by default. This tab section shows some layer metadata such as its title, the abstract, date of publication etc. The metadata also indicates the layer owner, what are the topic categories the layer belongs to and which regions are affected.

    _images/layer_info_tab.png

    Layer Info tab

  • The Attributes tab shows the data structure behind the layer. All the attributes are listed and for each of them some statistics (e.g. the range of values) are estimated (if possible).

    _images/layer_attributes_tab.png

    Layer Attributes tab

  • The Share tab provides the links for the layer to share through social media or email.

    _images/layer_sharing.png

    Layer Sharing

  • You can Rate the layer through the Rating system.

    _images/layer_rating.png

    Rate the Layer

  • In the Comments tab section you can post your comment. Click on Add Comment, insert your comment and click Submit Comment to post it.

    _images/layer_comments.png

    Layer Comments

    Your comment will be added next to the last already existing comment. If you want to remove it click on the red Delete button.

  • If you want this layer in your Favorites (see Updating the Profile), open the Favorite tab and click on Add to Favorites.

    _images/favorite_layer.png

    Your Favorite Layer

Layer Tools

In the right side of the Layer Page there are some buttons and information that can help you to manage your layer. This paragraph will cover only those tools which show layers information. The Editing Tools will be explored in the Layer Editing section.

  • through the Download Layer button you can download your layer with some options, see Downloading Layers;

  • the Metadata Detail button to see the layer metadata, see Layers Metadata to read more;

  • the Editing Tools button allows you to access to many editing tools. Those functionalities will be explained in the Layer Editing section;

  • the View Layer button opens the layer loaded in a map, see the Map Information for more details;

  • the Download Metadata button allows you to download the layer metadata in various formats;

  • the Legend shows what the symbols and styles on the map are referring to;

  • in the Map using this layer section all the map which uses the layer are listed;

  • in the Create a map using this layer, the Create a Map button allows you to create a map from scratch using the layer;

  • the section Add the layer to an existing map shows you a dropdown menu in which all the maps the user can view are listed. The button Add to Map allows you to add the layer to the map you have selected in the previous menu;

  • the Styles section shows all the styles associated with the layer. Click on the checkbox corresponding to one of the styles listed to apply it the preview;

    _images/layer_preview_change_style.png

    Change the Layer Style in preview

  • in the Refresh Attributes and Statistics of this layer section the Refresh Attributes and Statistics allows GeoNode to refresh the list of available Layer Attributes. If the option ‚WPS_ENABLED‘ has been also set on the backend, it will recalculate their statistics too;

  • in the Clear the Server Cache of this layer section the Empty Tiled-Layer Cache allows to wipe the tile-cache of this layer;

  • the About section shows you the layer Owner, the Contact user and the Metadata Author.

Downloading Layers

At the top of the Layer Page there is the Download Layer button (see Layer Information). It provides access to the ability to extract geospatial data from within GeoNode.
You will see a list of options of the supported export formats. You can choose the Images formats PNG, PDF, JPEG if you want to save a „screenshot-like“ image of the layer.
_images/download_layer_image.png

Downloading Layers as Images

You can also download the layer data, the supported export formats will be listed in the Data tab. Click on your desired format to trigger the download.

_images/download_layer_data.png

Downloading the Layer Data

As shown in the image above, GeoNode allows you to download a subset of data. Click on Do you want to filter it? to filter the layer data before the download.

_images/download_filtered_data.gif

Downloading the Layer Data

Layer Editing

The Editing Tools button of the Layer Page (see Layer Information) opens a panel like the one shown in the picture below.

_images/layer_editing_panel.png

The Layer Editing panel

In that panel you can see many options grouped by four categories:

  1. Metadata
  2. Styles
  3. Thumbnail
  4. Layer

In this section you will learn how to edit a Layer, how to replace and edit its data. See Layers Metadata to learn how to explore the layer Metadata, how to upload and edit them. The Styles will be covered in a dedicated section, see Layer Styling.

Setting the Layer Thumbnail
The Thumbnail of the layer that will be displayed on the Layers list page can be changed by dragging and zooming on the layer preview to select which portion will be displayed, then by clicking on the Set button of the Layer Editing panel.
A message will confirm the thumbnail has been correctly changed.
_images/set_thumbnail_confirmation_message.png

The Layer Editing panel

Replacing the Layer

From the Layer Editing panel click on Replace to change the layer source dataset. You will be driven to the Replace Layer page in which Choose Files button allows you to select files from your disk.

_images/replace_layer_page.png

Replace a Layer

Once the Charset selected the upload process can be triggered by clicking on Replace Layer. If no errors occur you will see a message like the one in the picture below.

_images/replace_layer_success.png

Replace Layer success

We have replaced the roads dataset with the railways one. You can see the differences in the Layer Preview.

_images/replace_layer_result.png

Result of the Layer Replacement

Editing the Layer Data

The Edit data button of the Layer Editing panel opens the Layer within a Map.

_images/editing_layer_data.png

Editing the Layer Data

The Attribute Table panel of the Layer will automatically appear at the bottom of the Map. In that panel all the features are listed. For each feature you can zoom to its extent by clicking on the corresponding magnifying glass icon magnifying_glass_icon at the beginning of the row, you can also observe which values the feature assumes for each attribute.

Click the Edit Mode edit_mode_button button to start an editing session.

Now you can:

  • Add new Features

    Through the Add New Feature button add_new_feature_button it is possible to set up a new feature for your layer. Fill the attributes fields and click save_changes_button to save your change. Your new feature doesn’t have a shape yet, click on add_shape_to_geometry_button to draw its shape directly on the Map then click on save_changes_button to save it.

    _images/add_new_feature.gif

    Add a New Feature to the Layer

    Bemerkung

    When your new feature has a multi-vertex shape you have to double-click the last vertex to finish the drawing.

  • Delete Features

    If you want to delete a feature you have to select it on the Attribute Table and click on delete_feature_button.

    _images/delete_feature.gif

    Delete a Feature

  • Change the Feature Shape

    You can edit the shape of an existing geometry dragging its vertices with the mouse. A blue circle lets you know what vertex you are moving.

    _images/edit_feature_shape.gif

    Feature Shape Editing - Change the existing shape

    Features can have multipart shapes. You can add parts to the shape when editing it.

    _images/add_shape_to_existing_geometry.gif

    Feature Shape Editing - Add parts to the existing shape

  • Change the Feature Attributes

    When you are in Edit Mode you can also edit the attributes values changing them directly in the corresponding text fields.

    _images/edit_feature_attributes.gif

    Feature Attributes Editing

Once you have finished you can end the Editing Session by clicking on the end_editing_session_button button.

By default the GeoNode map viewer is MapStore based, see the MapStore Documentation for further information.

Layers Metadata

In GeoNode special importance is given to Metadata and their standard formats. You can explore the Metadata of a Layer by clicking the Metadata Detail button from the Layer Page.

_images/layer_metadata_detail_button.png

The Layer Metadata Detail button

The Layer Metadata page will be displayed.

_images/layer_metadata_details_page.png

The Layer Metadata Details

In that page you can see the whole set of available metadata about the layer. Metadata are grouped in order to show the following types of information:

  • Identification to uniquely identify the layer (Title, Abstract, Publication Date etc.);
  • Owner, the user who owns the layer;
  • Information, the Identification Image, the Spatial Extent, Projection System and so on;
  • Features, Language, Supplemental and other Information;
  • Contact Points, the available user to get in contact;
  • References, various links to the resource information and data;
  • Metadata Author, information about the author of the metadata.
Downloading Metadata

The Download Metadata button of the Layer Page allows you to download the layer metadata in various formats.

_images/download_metadata.png

How to Download Metadata

The available download formats are grouped in three categories:

  • Full metadata
  • Standard Metadata - XML format
  • Attribute Information

Click on the format name that you prefer to start the download.

Metadata Wizard
Metadata contains all the information related to the layer. They provide essential information for its identification and its comprehension. Metadata also make the layer more easily retrievable through search by other users.
The Metadata of a layer can be changed through a Wizard which involves four steps, one for each type of metadata considered:
  • Basic Metadata

    The first two steps are mandatory (no layers will be published if the required information are not provided) whereas the last two are optional.

    _images/basic_layer_metadata.png

    Basic Layer Metadata

    In the first step the system asks you to insert the following metadata:

    • The Thumbnail of the layer (click Edit to change it);
    • The Title of the layer, which should be clear and understandable;
    • An Abstract on the layer;
    • The Creation/Publication/Revision Dates which define the time period that is covered by the layer;
    • The Keywords, which should be chosen within the available list. The contributor search for available keywords by clicking on the searching bar, or on the folder logo representing, or by entering the first letters of the desired word;
    • The Category which the layer belongs to;
    • The Group which the layer is linked to.
  • Location and Licenses

    _images/location_licenses_layer_metadata.png

    Location and Licenses Metadata for Layers

    The following list shows what kinds of metadata you are required to enter (see also the picture below):

    • The Language of the layer;
    • The License of the dataset;
    • The Regions, which informs on the spatial extent covered by the layer. Proposed extents cover the following scales: global, continental, regional, national;
    • The Data Quality statement (general explanation of the data producer’s knowledge about the lineage of a dataset);
    • Potential Restrictions on layer sharing.
  • Optional Metadata

    _images/optional_layer_metadata.png

    Optional Layer Metadata

    Complementary information are:

    • The Edition to indicate the reference or the source of the layer;
    • The Purpose of the layer and its objectives;
    • Any Supplemental information that can provide a better understanding of the uploaded layer;
    • The Maintenance frequency of the layer;
    • The users who are Responsible for the layer, its Owner, and the Author of its metadata;
    • The Spatial representation type used.
  • Dataset Attributes

    _images/dataset_attributes_layer_metadata.png

    Dataset Attributes Metadata for Layers

    At this step you can enrich the dataset attributes with useful information like the following:

    • The Label displayed
    • A detailed Description
    • The Display Order

Use next >> or << back to navigate through those steps. Once you have finished click on Update.

Some metadata are mandatory, if you miss any of that metadata the Completeness bar shows you a red message like the one in the picture below.

_images/completeness_progress_bar.png

Completeness Progress Bar

Metadata Advanced Editing

In the Layer Editing panel the Advanced Edit is also available.

_images/advanced_edit_button.png

The Advanced Edit button

Click on it to display the Metadata Advanced Editing Page. That page allows you to edit all the layer metadata described in the previous paragraph. Once you have finished to edit them click on Update to save your changes.

Uploading Metadata

Users may also upload a metadata XML document (in ISO, FGDC, or Dublin Core format) to fill in key GeoNode metadata elements automatically. The picture below shows you how the page looks like.

_images/metadata_upload.png

The Metadata Advanced Editing page

Click on Choose Files to select the document from your disk, then click on Upload files to trigger the uploading process.

Layer Styling

Maps are helpful because they allow you gain a deeper understanding of your data by allowing you to visualize it in many different ways. So you can tell different stories depending on how the data is presented. For any given data or layer, you should explore different styling options and choose the best style for that.

In GeoNode each layer has a Default Style which is determined by the nature of the data you’re mapping. When uploading a new layer (see Layers Uploading) a new default style will be associated to it.

_images/layer_default_style.png

Default Style for Layers

Referring to the example above, dark orange lines are not very good to represent waterways so we would need to change this style. In the following paragraphs you will learn how to create a new style starting from given templates, how to edit a style, how to upload styles from file and how to manage them.

Creating new Styles

In order to create a new style, open the Layer Page (see Layer Information) and click on Editing Tools. Then click the Edit button in the Styles section of the Layer Editing panel (see the picture below).

_images/edit_style_button.png

Edit Styles button

The Layer will open in a new Map. The Styles Panel will show you all the available styles for the layer and some useful tools.

_images/styles_map_panel.png

The Styles Panel in the Map

Now follow the steps below:

  1. Click the create_new_style_button button. The Style Templates Panel will open.
_images/create_new_style_from_templates.png

Create new Styles

  1. Choose a Style Template from the list (both CSS and SLD styles are available).
_images/style_templates.png

Style Templates

  1. Click the add_style_button button to add the Style Template to the styles list.
  1. Insert a Title and an Abstract (optional), then click on Save.
_images/new_style_title.png

Title and Abstract for new Styles

The style you have created is now added to the Styles List.

_images/new_style_in_list.png

New Styles into the list

You will also see this new style in the Layer Page.

_images/new_style_in_layer_page.png

The Layer Page with the new Style

Now you can switch the style by clicking on the corresponding checkbox.

It would be nice to change the style in order to decrease the opacity of the filling color as well as to reduce the lines width. The embedded MapStore makes available a powerful Style Editor to accomplish that tasks. In the next paragraph we will explain how.

Editing the Layer Style

The following steps show you how to edit styles:

  1. From inside the map open the TOC (Table Of Content) by clicking the toc_button button
  2. Click on layer_settings_button
  3. Open the Style tab style_tab

Warnung

Styles editing is allowed only to those users who have the needed permission. See Changing the Layer Permissions to read more)

  1. Select the Style and click on style_editor_button
  2. Edit the style. The Style Editor helps you to write valid styles through the Syntax Validator which shows you a popup in case of errors (see the picture below).
_images/style_editor_syntax_validator.png

The Style Editor Syntax Validation

  1. Click on save_style_button to save your changes.

See the following gif to recap the whole process.

_images/style_editor.gif

The Style Editor

You can also decide to make your new style the Default Style of that layer. Click on set_style_as_default_button to do that.
Click on delete_style_button to delete the style.
Uploading Styles

In GeoNode it is also possible to upload an existing style from file.

Warnung

Currently only styles in SLD (Style Layer Descriptor 1.0, 1.1) format can be uploaded in GeoNode.

From the Layer Page click on Editing Tools to open the Editing Tools panel and follow the steps below:

  1. Click the Upload button of the Styles section
_images/upload_style_button.png

Upload Styles button

  1. Click on Choose Files and select your style from your disk
_images/upload_styles.png

Upload Styles

  1. Click on Upload files

Once the process has been finished the new Style will be visible in the Layer Page.

Managing Styles

Given a layer, you can manage all its styles in tha Styles Management Page accessible from the Manage button of the Layer Editing panel.

_images/manage_styles.png

Managing Styles

In that page you can:

  • See the Layer Name
  • Add/remove styles to/from the Available styles list
  • Choose the Layer Default Style from the Available styles list

Click on Update Available Styles to save your changes.

Managing Maps

Maps are a set of layers displayed together on an interactive web map. The maps can be composed in the map composer and saved as a GeoNode resource. Maps can also be associated with metadata, ratings, and comments.
In this section, you will learn how to create a new map and share the results.

Creating Maps

In this section, we’ll create a Map using some uploaded layers, combine them with some layers from remote web services, and then share the resulting map for public viewing.

In order to create new maps you can use:

  • the Create Map link of the Maps menu in the navigation bar

    _images/create_map_link.png

    The Create Map link

  • the Create Map button in the Layer Page (it creates a map using a specific layer)

    _images/create_map_button.png

    The Create Map button

  • the Create New Map button in the Explore Maps page

    _images/create_new_map_button.png

    The Create New Map button

The new Map will open in a Map Viewer like the one in the picture below.

_images/map_viewer.png

The Map Viewer

In the upper left corner the toc_button button opens the Table of Contents (TOC) of the Map. It allows to manage all the layers associated with the map and to add new ones from the Catalog.
The TOC component makes possible to manage layers overlap on the map by shifting their relative positions in the list (drag and drop them up or down in the list).
It also allows to hide/show layers ( show_button and hide_button ), to zoom to layers extents ( zoom_to_layer_extent_button ) and to manage their properties ( layer_settings_button ).
Once the map layers have been settled it is possible to save the Map by clicking on burger_menu_button and choosing Save as.
_images/new_map_creation.gif

Creating new Maps

If you followed the steps above, you have just created your first Map. Now you should see it in the Explore Maps page, see Map Information for further details.

We will take a closer look at the Map Viewer tools in the Exploring Maps section.

Map Information

As mentioned in the Maps section, in GeoNode you can see your maps and all the published maps through the Explore Maps link of the navigation bar.
Click on the title of the Map you are interested in to open its Information page, it should looks like the following.
_images/map_info.png

The Map Information page

The Map Page is divided into three main sections:

  1. the Map Preview section, under the title
  2. the Tabs section, under the layer preview
  3. the Tools section, on the right side of the page
Map Preview

The Map Preview shows the Map with very basic functionalities:

  • the Base Map Switcher that allows you to change the base map;
  • the Zoom in/out tool to enlarge and decrease the view;
  • the Zoom to max extent tool for the zoom to fit the layers extents;
  • the Query Objects tool to retrieve information about the map objects by clicking on the map;
  • the Print tool to print the preview.
_images/map_preview.gif

Map Preview

See the MapStore Documentation to learn more.

Tabs Sections

The Map Information page shows you some tabs sections containing different information about the map:

  • The tab Info is active by default. This tab section shows some metadata such as its Title, the License, the Publication Date etc. The metadata also indicates the map owner and which regions are involved. The Map Layers WMS GetCapabilities document link is also provided.

    _images/map_info_tab.png

    Maps Info tab

  • The Share tab provides the links for the map to share through social media or email.

    _images/map_sharing.png

    Map Sharing

  • You can Rate the map through the Rating system.

    _images/map_rating.png

    Map Rating

  • In the Comments tab section you can post your comment. Click on Add Comment, insert your comment and click Submit Comment to post it.

    _images/map_comments.png

    Map Comments

    Your comment will be added next to the last already existing comment. If you want to remove it click on the red Delete button.

  • If you want this map in your Favorites (see Updating the Profile), open the Favorite tab and click on Add to Favorites.

    _images/favorite_map.png

    Your Favorite Maps

Map Tools
In the right side of the Map Information page there are some tools that can help you to manage your maps. In this paragraph you will learn how to discover and retrieve information about maps.
The following is a list of actions you can take in order to accomplish this task:
  • click the Download Map button, to download the map as image;
  • click the Metadata Detail button to see the map metadata, see Maps Metadata;
  • click the Editing Tools button to access to many editing tools. Those functionalities will be explained in the Exploring Maps section;
  • click the View Map button to open the map, see the Exploring Maps section for more details;
  • see the Map Layers section to konw which layers are used by the map (you can open the Layer Page by clicking on its name, available only for local layers);
  • click the Create a Map button of the Copy this map section to duplicate the map;
  • click the Publish Map WMS of the Map WMS section to publish local map layers as WMS layer group;
  • see the About section to know the map Owner, the Contact user and the Metadata Author.

Maps Metadata

Maps Metadata can be explored by clicking the Metadata Detail button from the Map Information page.

_images/map_metadata_detail_button.png

The Map Metadata Detail button

The Map Metadata page will open.

_images/map_metadata_details_page.png

The Map Metadata Details

Lots of information are displayed in this page. Those information are grouped as follow:

  • Identification to uniquely identify the map (Title, License, Publication Date and Regions. There are also some flags which tell you the state of the map, in particular if it is Approved and/or Published);
  • the map Owner;
  • Information, the Identification Image, the Spatial Extent, the Projection System and the Extent;
  • Features, Language, Supplemental and other Information;
  • Contact Points, the available user to get in contact;
  • References, links to the map and its metadata;
  • Metadata Author, information about the author of the metadata.
Metadata Wizard
Metadata provide essential information for the identification and the comprehension of the map. They also make the map more easily retrievable through the search tools.
Those Metadata can be filled out through a three-steps Wizard in which you have to provide all mandatory information to complete the process. Those three steps are described below.
  • Basic Metadata

    _images/basic_map_metadata.png

    Basic Map Metadata

    In the first step the system asks you to insert the following metadata (required fields are highlighted with red outlines):

    • The Thumbnail of the map (click Edit to change it);
    • The Title of the map, which should be clear and understandable;
    • An Abstract;
    • The Creation/Publication/Revision Dates which define the time period that is covered by the map;
    • The Keywords, which should be chosen within the available list;
    • The Category which the map belongs to;
    • The Group which the map is linked to.

    Click Next >> to go to the next step.

  • Location and Licenses

    _images/location_licenses_map_metadata.png

    Location and Licenses Metadata for Maps

    The following list shows what kinds of metadata you are required to enter (see also the picture below):

    • The Language of the layer;
    • The License of the dataset;
    • The Regions covered by the layers extent. Proposed extents cover the following scales: global, continental, regional, national;
    • The Data Quality statement (general explanation of the data producer’s knowledge about the lineage of a dataset);
    • Potential Restrictions on layer sharing.

    No further mandatory metadata are required in the next step so, once the required fields have been filled out, a green Done button will be visible in the screen. Click Next >> to go to the next step or << Back to go back to the previous step.

  • Optional Metadata

    _images/optional_map_metadata.png

    Optional Map Metadata

    Complementary information are:

    • The Edition of the map;
    • The Purpose of the map and its objectives;
    • Any Supplemental information that can provide a better understanding of the map;
    • The Maintenance frequency of the map;
    • The Spatial representation type, the method used to represent geographic information in the dataset;
    • The users who are Responsible for the layer, its Owner, and the Author of its metadata;

If you miss some mandatory metadata the Completeness bar shows you a red message like the one in the picture below.

_images/completeness_progress_bar1.png

Completeness Progress Bar

Metadata Advanced Editing

The Advanced Edit editing tool allows to change the map metadata. You can find this button into the map Editing Tools.

_images/advanced_edit_button1.png

The Advanced Edit button

Click on it to display the Metadata Advanced Editing Page. That page allows you to edit all the layer metadata described in the previous paragraph. Once you have finished to edit them click on Update to save your changes.

Changing the Map Permissions

In the Map Information section of this guide we said that you can see your maps and all the published maps. In GeoNode the permissions management system is indeed more complex. Administrators can choose who can do what for each map. Users can manage only the maps they own or the maps which they are authorize to manage.

By default only owners can edit and manage maps, anyone can view and download them.

In order to modify the Map Permissions settings you have to click the Change the Layer Permissions button in the Map Page.

_images/change_map_permissions.png

Change Map Permissions

Through the Permissions Settings Panel you can add or remove permissions for users and groups. The picture below shows an example.

_images/map_permissions_settings.png

Map Permissions settings for users and groups

You can set the following types of permissions:

  • View allows to view the map;
  • Download allows to download the map;
  • Change Metadata allows to change the map metadata;
  • Manage allows to update, delete, change permissions, publish and unpublish the map.

Warnung

When assigning permissions to a group, all the group members will have those permissions. Be careful in case of editing permissions.

Click on Apply Changes to save these settings.

Exploring Maps

From the Explore Maps link of the navigation bar you can reach the Maps List page (see Maps). Select a map you are interested in and click on it, the Map Page will open.

_images/view_map_button.png

The View Map button

Click on the View Map button to open the Map Viewer.

_images/explore_map_viewer.png

The Map View

The Map Viewer (based on MapStore) provides the following tools:

  • the Table of Contents (TOC) to manage the map contents;
  • the Basemap Switcher to change the basemap (see the next paragraphs);
  • the Search Bar to search by location, name and coordinates (see the paragraph below);
  • the Options Menu Tools which contains the link to the Print tool, to the layers Catalog and to the Measure tool;
  • the Sidebar and its tools such as the Zoom tools and the Get Features Info tool;
  • the Footer Tools to manage the scale of the map, to track the mouse coordinates and change the CRS (Coordinates Reference System).
Table of Contents (TOC)

In the upper left corner, click on toc_button to open the Table Of Contents, briefly TOC from now on, of the map. The TOC shows all the layers involved with the Map and allows to manage their properties and representations on the map.

_images/toc_panel.png

The Table Of Contents (TOC)

From the TOC you can:

  • manage the layers Overlap;
  • filter the layers list by typing text in the Filter Layers field;
  • add new layers from the Catalog by clicking the Add Layer button;
  • manage the layers properties such as Opacity (scroll the opacity cursor), Visibility (click on hide_button to make the layer not visible, click on show_button to show it on map);
  • manage the Layer Settings, see the next paragraph.
_images/scrolling_opacity.gif

Scrolling the Layer Opacity

Select a Layer from the list and click on it, the Layer Toolbar should appear in the TOC.

_images/layer_toolbar.png

The Layer Toolbar

The Toolbar shows you many buttons:

  • zoom_to_layer_extent_button allows you to zoom to the layer extent;

  • layer_settings_button drives you through the layer settings customization (see the next paragraph);

  • attribute_table_button to explore the features of the layer and their attributes (more information at Attributes Table);

  • delete_layer_button to delete layers (click on Delete Layer to confirm your choice);

    _images/delete_layer.png

    Deleting Layers

  • create_widgets_button to create Widgets (see Creating Widgets).

Managing Layer Settings

The Layer Settings panel looks like the one below.

_images/layer_settings_panel.png

The Layer Settings Panel

The Layer Settings are divided in three groups:

  1. General settings
  2. Display settings
  3. Style settings

In the General tab of the Settings Panel you can customize the layer Title, insert a Description and change/create the Layer Group.

Click on the Display tab to see what are the layer appearance properties you can configure.

_images/display_settings.png

The Layer Display Settings Panel

The Format field allows you to change the output format of the WMS requests.
You can set a numeric value of Opacity using the corresponding input field.
You can also set the layer as Transparent, decide to Use cache options and to use Single Tile.

The third tab is the Style one. By clicking on it, an advanced Style Editor allows you to create new styles and to modify or delete an existing one. See the Layer Styling section to read more.

Attributes Table

When clicking on the attribute_table_button button of the Table of Contents (TOC), the Attributes Table panel opens at the bottom of the Map page.

_images/attributes_table.png

The Attributes Table Panel

In that panel you can navigate through the features of the layer, zoom to their geometries by clicking on the zoom_to_feature_icon icon and explore their attributes.

The Attribute Tables has a row for each feature belonging to the layer and a column for each attribute that describes the feature.
Each column has a Filter input field through which you can filter the features basing on some value or expression (depending on the data type of the field).
_images/filtering_feature_by_attributes.png

Filtering Features by Attribute

The Attributes Table panel contains a Toolbar which makes you available some useful functionalities.

_images/attributes_table_toolbar.png

The Attributes Table Toolbar

Those functionalities are:

  • Edit Mode
    By clicking on edit_mode_button you can start an editing session. It permits you to add new features, to delete or modify the existing ones, to edit geometries. See the Editing the Layer Data section for further information.
  • Advanced Search
    Click on advanced_search_button, a new panel opens. That panel allows you to filter features in many different ways. This functionality will be explained in depth in the Advanced Search section.
  • Zoom to page extent
    Click on zoom_to_page_extent_button to zoom to the page extent.
  • Hide/show columns
    When clicking on hide_show_columns_button another panel opens inside the Attributes Table. Through that panel you can choose what columns you want to see, see the picture below.
    _images/hide_show_columns.gif

    Hide/Show Columns of the Attributes Table

  • Create a chart
    Through the create_charts_button button you can open the Chart Widgets panel where many functionalities to describe and visualize the layer data are available (see Creating Widgets).
  • Sync map with filter
    Click on the sync_map_with_filter_button icon to synchronize the map with the filter.
Creating Widgets

Widgets are graphical elements that describe the layers data. They can be of different types such as Charts, Texts, Tables and Counters. Through the create_widgets_button button of the Table of Contents (TOC) you can open the Widgets panel.

_images/widgets_panel.png

Creating Widgets

Chart Widgets

Chart Widgets are graphical representations of the layer data. They can be Bar Chart, Pie Chart or Line Chart as shown in the picture below.

_images/chart_widgets.png

Chart Widgets

Let’s create a new Bar Chart.
Click on Bar Chart then select the X Attribute, the Y Attribute, the Operation and the Color do you prefer. You can also display the Legend, Hide the Y axis, Hide the grid and decide what Label display into the legend.
Now you can filter the data to be considered for the chart by clicking on advanced_search_button. We don’t need any filter so click configure_widgets_options_button to configure other widget options. Insert a Title and a Description and click on Save save_button.
_images/chart_widgets.gif

Chart Widgets Creation

The green connect_to_viewport icon means that the chart is connected to the viewport.

Expanding the options menu of the widget you can Show the plotted data, Edit the widget or Delete it, Download the data as a CSV file or Export the image of the graph.

_images/chart_widget_options.png

Chart Widgets Options

Text Widgets

If you select Text on the Widgets panel you can create Text Widgets. Add a Title and the desired descriptive text, then click on save_button.

_images/text_widgets_creation.png

Text Widgets Creation

The resulting widget looks like the following.

_images/text_widget.png

My Text Widget

Table Widgets
Through the Table Widgets you can add the Attributes Table of the layer to the map. You can decide to show a subset of the features, through filters, and you can select one or more columns/attributes.
So, choose what attributes you are interested in and click on configure_widgets_options_button.
_images/table_widget_columns.png

Table Widgets Columns

Insert Title and Description (optional) and click on save_button. The example below shows the Table Widget on the map.

_images/table_widget.png

Table Widget

Counter Widgets

Counter Widgets are numeric representations of some attributes. For example you can represent the average speed limit on a road network.

_images/counter_widget_creation.png

Counter Widget Creation

Click on configure_widgets_options_button, insert Title and Description then click on save_button.

_images/counter_widget.png

Counter Widget

The GeoNode map viewer is MapStore based, see the MapStore Documentation for further information.

Timeline
GeoNode can manage layers with a time dimension. Those vector layer may vary their data through time so it is useful to represent that variation on the map.
The MapStore based map viewer used in Geonode makes available the Timeline tool which allows you to observe the layers‘ evolution over time, to inspect the layer configuration at a specific time instant and to view different layer configurations time by time dynamically through animations (see the MapStore Documentation for further details).

Warnung

Timeline actually works only with WMTS-Multidim extension (WMS time in capabilities is not fully supported).

When loading a temporal layer into the map, the Timeline opens automatically.

_images/collapsed_timeline.png

The Timeline

On the left side of the Timeline panel you can set the time value in which you want to observe the data. You can type it directly filling out the corresponding input fields or by using the up/down arrows.

_images/time_instant_controls.png

The Time Control Buttons

On the other side there are the buttons responsible for managing the animations.
In particular you can Play the animation by clicking play_button, go back to the previous time instant through time_go_backward_button, go forward to next time step using time_go_forward_button and stop the animation by clicking stop_button.
_images/animation_buttons.png

The Animation Control Buttons

The Timeline panel can be expanded through the expand_timeline_button button.

_images/expanded_timeline.png

The Expanded Timeline

The expanded section of the Timeline panel contains the Time Layers List and an Histogram which shows you:

  • the distribution of the data over time

    _images/timeline_histogram.png

    The Timeline Histogram

  • the Time Cursor

    _images/time_cursor.png

    The Time Cursor

You can show/hide the layers list by clicking show_hide_layers_list_button (it is active by default).

Through the Time Range function you can observe the data in a finite temporal interval. Click on time_range_button and set the initial and the final times to use it.

_images/time_range.png

The Time Range Settings

Animations
The Timeline allows you to see the data configurations (one for each time in which the data are defined) through ordered sequences of steps.
As said before, you can play the resulting Animation by clicking the play button play_button. The layer data displayed on map will change accordingly to the time reach by the cursor on the Histogram.

By clicking on animation_settings_button you can manage some Animation Settings.

_images/timeline_settings.png

The Timeline Settings

You can activate the Snap to guide layer so that the time cursor will snap to the selected layer’s data. You can also set up the Frame Duration (by deafult 5 seconds).
If the Snap to guide layer option is disabled, you can force the animation step to be a fixed value.

The Animation Range option lets you to define a temporal range within which the time cursor can move. See the following gif to better understand how the Animation works or take a look at the MapStore Documentation.

_images/timeline_animation.gif

The Timeline Animation

Options Menu Tools

At the top-right corner of the Map there is a Burger Menu button burger_menu_button. Click on it to open the Map Options panel.

_images/options_menu_tools.png

The Map Options Menu

We will explain those tools more in depth in the next paragraphs.

Printing a Map
The MapStore based map viewer of GeoNode allows you to print your map with a customizable layout.
Click the PRINT option from the Map Options Menu, the Printing Window will open.
_images/printing_window.png

The Printing Window

From this window you can:

  • enter Title and Description;
  • choose the Resolution in dpi;
  • customize the Layout
    • the Sheet size (A3, A4);
    • if include the legend or not;
    • if to put the legend in a separate page;
    • the page Orientation (Landscape or Portrait);
  • customize the Legend
    • the Label Font;
    • the Font Size;
    • the Font Emphasis (bold, italic);
    • if Force Labels;
    • if use Anti Aliasing Font;
    • the Icon Size;
    • the Legend Resolution in dpi.

To print the map click on Print.

The Layers Catalog

All the layers available in GeoNode, both uploaded and remote, can be loaded on the map through the Catalog. Click on the CATALOG option of the Map Options Menu to take a look at the catalog panel.

_images/layers_catalog.png

The Layers Catalog

You can navigate through layers and look at their Thumbnail images, Title, Description and Abstract. Click on Add To Map to load a layer into the map, it will be also visible in the Table of Contents (TOC).

Performing Measurements

Click on the MEASURE option of the Map Options Menu to perform a measurement. As you can see in the picture below, this tool allows you to measure Distances, Areas and the Bearing of lines.

_images/measure_tool.png

The Measure Tool

To perform a measure draw on the map the geometry you are interested in, the result will be displayed on the left of the unit of measure select menu (this tool allows you to change the unit of measure also).
_images/measuring_areas.png

Measuring Areas

Saving a map
Once all the customizations have been carried out, you can Save your map by clicking on the SAVE AS option of the Map Options Menu.
A new popup window will open.
_images/saving_map.png

Saving Maps

You have to fill out a Title and an optional Description, then click on Save. The page will reload and your map should be visible in the Maps list.

_images/my_map.png

Your Map into the List

Basemap Switcher

By deafault, GeoNode allows to enrich maps with many world backgrounds:

  • OpenStreetMap
  • OpenTopoMap
  • Sentinel-2-cloudless
_images/basemap_switcher.png

The Basemap Switcher Tool

You can also decide to have an Empty Background.

_images/basemap_switching.gif

Switching the Basemap

Publishing Data

Using GeoNode with Other Applications

Your GeoNode project is based on core components which are interoperable and as such, it is straightforward for you to integrate with external applications and services. This section will walk you through how to connect to your GeoNode instance from other applications and how to integrate other services into your GeoNode project. When complete, you should have a good idea about the possibilities for integration, and have basic knowledge about how to accomplish it. You may find it necessary to dive deeper into how to do more complex integration in order to accomplish your goals, but you should feel comfortable with the basics, and feel confident reaching out to the wider GeoNode community for help.

GeoNode Core

Overview

The following steps will guide you to a fresh setup of GeoNode. All guides will first install and configure the system to run it in DEBUG mode (also known as DEVELOPMENT mode) and then by configuring an HTTPD server to serve GeoNode through the standard HTTP (80) port.

Those guides are not meant to be used on a production system. There will be dedicated chapters that will show you some hints to optimize GeoNode for a production-ready machine. In any case, we strongly suggest to task an experienced DevOp or System Administrator before exposing your server to the WEB.

Ubuntu 18.04

This part of the documentation describes the complete setup process for GeoNode on an Ubuntu 18.04 64-bit clean environment (Desktop or Server). All examples use shell commands that you must enter on a local terminal or a remote shell. - If you have a graphical desktop environment you can open the terminal aplication after login; - if you are working on a remote server the provider or sysadmin should has gave you access through an ssh client.

Install the dependencies

In this section, we are going to install all the basic packages and tools needed for a complete GeoNode installation. To follow this guide, a basic knowledge about Ubuntu Server configuration and working with a shell is required. This guide uses vim as the editor; fill free to use nano, gedit or others.

Upgrade system packages

Check that your system is already up-to-date with the repository running the following commands:

sudo apt update
sudo apt upgrade
Packages Installation

We will use example.com as fictitious Domain Name.

First, we are going to install all the system packages needed for the GeoNode setup. Login to the target machine and execute the following commands:

# Install packages from GeoNode core
sudo apt install -y python-gdal gdal-bin
sudo apt install -y python-pip python-dev python-virtualenv virtualenvwrapper
sudo apt install -y libxml2 libxml2-dev gettext
sudo apt install -y libxslt1-dev libjpeg-dev libpng-dev libpq-dev libgdal-dev libgdal20
sudo apt install -y software-properties-common build-essential
sudo apt install -y git unzip gcc zlib1g-dev libgeos-dev libproj-dev
sudo apt install -y sqlite3 spatialite-bin libsqlite3-mod-spatialite

# Install Openjdk
sudo -i apt update
sudo apt install openjdk-8-jdk-headless default-jdk-headless -y
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo apt purge -y
sudo apt clean -y
Create a Dedicated User

In the following steps a User named geonode is created (if needed) and used: to run installation commands the user must be in the sudo group.

Create User geonode if not present:

# Follow the prompts to set the new user's information.
# It is fine to accept the defaults to leave all of this information blank.
sudo adduser geonode

# The following command adds the user geonode to group sudo
sudo usermod -aG sudo geonode

# make sure the newly created user is allowed to login by ssh
# (out of the scope of this documentation) and switch to User geonode
su geonode
GeoNode Installation

This is the most basic installation of GeoNode. It won’t use any external server like Apache Tomcat, PostgreSQL or HTTPD.

It will run locally against a file-system based SQLite database.

First of all we need to prepare a new Python Virtual Environment

Since geonode needs a large number of different python libraries and packages, it’s recommended to use a python virtual environment to avoid conflicts on dependencies with system wide python packages and other installed softwares. See also documentation of Virtualenvwrapper. package for mode information

# Create the GeoNode Virtual Environment (first time only)
mkvirtualenv --no-site-packages geonode

At this point your command prompt shows a (geonode) prefix, this indicates that your virtualenv is active.

Bemerkung

The next time you need to access the Virtual Environment just run

workon geonode
# Let's create the GeoNode core base folder and clone it
sudo mkdir -p /opt/geonode/
sudo usermod -a -G www-data geonode
sudo chown -Rf geonode:www-data /opt/geonode/
sudo chmod -Rf 775 /opt/geonode/

# Clone the GeoNode source code on /opt/geonode
cd /opt
git clone https://github.com/GeoNode/geonode.git geonode

# Install the Python packages
cd /opt/geonode
pip install -r requirements.txt --upgrade --no-cache --no-cache-dir
pip install -e . --upgrade --no-cache --no-cache-dir

# Install GDAL Utilities for Python
GDAL_VERSION=`gdal-config --version`; \
  PYGDAL_VERSION="$(pip install pygdal==$GDAL_VERSION 2>&1 | grep -oP '(?<=: )(.*)(?=\))' | \
  grep -oh '\b'${GDAL_VERSION}'[0-9.]\+\b')"; \
  pip install pygdal==$PYGDAL_VERSION
Run GeoNode for the first time in DEBUG Mode

Warnung

Be sure you have successfully completed all the steps of the section Install the dependencies.

This command will run both GeoNode and GeoServer locally after having prepared the SQLite database. The server will start in DEBUG (or DEVELOPMENT) mode, and it will start the following services:

  1. GeoNode on http://localhost:8000/
  2. GeoServer on http://localhost:8080/geoserver/

This modality is beneficial to debug issues and/or develop new features, but it cannot be used on a production system.

# Prepare the GeoNode SQLite database (the first time only)
paver setup
paver sync

Bemerkung

In case you want to start again from a clean situation, just run

paver reset_hard

Warnung

This will blow up completely your local_settings, delete the SQLlite database and remove the GeoServer data dir.

# Run the server in DEBUG mode
paver start

Once the server has finished the initialization and prints on the console the sentence GeoNode is now available., you can open a browser and go to:

http://localhost:8000/

Sign-in with:

user: admin
password: admin
Postgis database Setup

Warnung

Be sure you have successfully completed all the steps of the section Install the dependencies.

In this section, we are going to setup users and databases for GeoNode in PostgreSQL.

Install and Configure the PostgreSQL Database System

In this section we are going to install the PostgreSQL packages along with the PostGIS extension. Those steps must be done only if you don’t have the DB already installed on your system.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'
sudo wget --no-check-certificate --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

sudo apt update
sudo apt install -y postgresql-11 postgresql-11-postgis-2.5 postgresql-11-postgis-2.5-scripts postgresql-contrib-11 postgresql-client-11

We now must create two databases, geonode and geonode_data, belonging to the role geonode.

Bemerkung

This is our default configuration. You can use any database or role you need. The connection parameters must be correctly configured on settings, as we will see later in this section.

Databases and Permissions

First, create the geonode user. GeoNode is going to use this user to access the database

sudo -u postgres createuser -P geonode

You will be prompted asked to set a password for the user. Enter geonode as password.

Warnung

This is a sample password used for the sake of simplicty. This password is very weak and should be changed in a production environment.

Create database geonode and geonode_data with owner geonode

sudo -u postgres createdb -O geonode geonode
sudo -u postgres createdb -O geonode geonode_data

Next let’s create PostGIS extensions

sudo -u postgres psql -d geonode_data -c 'CREATE EXTENSION postgis;'
sudo -u postgres psql -d geonode_data -c 'GRANT ALL ON geometry_columns TO PUBLIC;'
sudo -u postgres psql -d geonode_data -c 'GRANT ALL ON spatial_ref_sys TO PUBLIC;'
sudo -u postgres psql -d geonode_data -c 'GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO geonode;'

Final step is to change user access policies for local connections in the file pg_hba.conf

sudo vim /etc/postgresql/11/main/pg_hba.conf

Scroll down to the bottom of the document. We only need to edit one line.

# "local" is for Unix domain socket connections only
# local   all             all                                     peer
local   all             all                                     trust

Warnung

If your PostgreSQL database resides on a separate/remote machine, you’ll have to allow remote access to the databases in the /etc/postgresql/11/main/pg_hba.conf to the geonode user and tell PostgreSQL to accept non-local connections in your /etc/postgresql/11/main/postgresql.conf file

Restart PostgreSQL to make the change effective.

sudo service postgresql restart

PostgreSQL is now ready. To test the configuration, try to connect to the geonode database as geonode role.

psql -U geonode geonode
\q
Install GeoServer

When running the command paver start, as we have seen before, the script runs automatically a Jetty Servlet Java container running GeoServer with the default settings.

Warnung

Before executing the next steps, be sure GeoNode and GeoServer paver services have been stopped. In order to do that

workon geonode
cd /opt/geonode/
paver stop

This is not the optimal way to run GeoServer. This is a fundamental component of GeoNode and we must be sure it is running on a stable and reliable manner.

In this section, we are going to install the Apache Tomcat 8 Servlet Java container, which will be started by default on the internal port 8080.

We will also perform several optimizations to:

  1. Correctly setup the Java VM Options, like the available heap memory and the garbage collector options.
  2. Externalize the GeoServer and GeoWebcache catalogs in order to allow further updates without the risk of deleting our datasets.

Bemerkung

This is still a basic setup of those components. More details will be provided on sections of the documentation concerning the hardening of the system in a production environment. Nevertheless, you will need to tweak a bit those settings accordingly with your current system. As an instance, if your machine does not have enough memory, you will need to lower down the initial amount of available heap memory. Warnings and notes will be placed below the statements that will require your attention.

# Install Openjdk
sudo -i apt update
sudo apt install openjdk-8-jdk-headless default-jdk-headless -y
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

# Check Java version
java -version
  openjdk version "1.8.0_212"
  OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
  OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

# Install Apache Tomcat 8
sudo wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.41/bin/apache-tomcat-8.5.41.tar.gz
sudo tar xzf apache-tomcat-8.5.41.tar.gz
sudo mv apache-tomcat-8.5.41 /usr/local/apache-tomcat8
sudo useradd -m -U -s /bin/false tomcat
sudo usermod -a -G www-data tomcat
sudo sed -i -e 's/xom-\*\.jar/xom-\*\.jar,bcprov\*\.jar/g' /usr/local/apache-tomcat8/conf/catalina.properties

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
echo 'JAVA_HOME='$JAVA_HOME | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh

# Add Tomcat user to www-data group !important!
sudo usermod -a -G www-data tomcat

sudo sh -c 'chmod +x /usr/local/apache-tomcat8/bin/*.sh'
sudo chown -Rf tomcat:www-data /usr/local/apache-tomcat8

Let’s create a system service to manage tomcat startup

sudo vim /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 8.5 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/default-java"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_BASE=/usr/local/apache-tomcat8"
Environment="CATALINA_HOME=/usr/local/apache-tomcat8"
Environment="CATALINA_PID=/usr/local/apache-tomcat8/temp/tomcat.pid"

ExecStart=/usr/local/apache-tomcat8/bin/startup.sh
ExecStop=/usr/local/apache-tomcat8/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

To test the service:

sudo systemctl daemon-reload
sudo systemctl restart tomcat
sudo systemctl status tomcat.service

To make it enabled by default

sudo systemctl enable tomcat
GeoServer Optimizations

Let’s externalize the GEOSERVER_DATA_DIR and logs

# Create the target folders
sudo mkdir -p /opt/data
sudo chown -Rf geonode:www-data /opt/data
sudo chmod -Rf 775 /opt/data
sudo mkdir -p /opt/data/logs
sudo chown -Rf geonode:www-data /opt/data/logs
sudo chmod -Rf 775 /opt/data/logs

# Download and extract the default GEOSERVER_DATA_DIR
sudo wget --no-check-certificate https://build.geo-solutions.it/geonode/geoserver/latest/data-2.14.3.zip
sudo unzip data-2.14.3.zip -d /opt/data/

sudo mv /opt/data/data/ /opt/data/geoserver_data
sudo chown -Rf tomcat:www-data /opt/data/geoserver_data
sudo chmod -Rf 775 /opt/data/geoserver_data

sudo mkdir -p /opt/data/geoserver_logs
sudo chown -Rf tomcat:www-data /opt/data/geoserver_logs
sudo chmod -Rf 775 /opt/data/geoserver_logs

sudo mkdir -p /opt/data/gwc_cache_dir
sudo chown -Rf tomcat:www-data /opt/data/gwc_cache_dir
sudo chmod -Rf 775 /opt/data/gwc_cache_dir

# Download and install GeoServer
sudo wget --no-check-certificate https://build.geo-solutions.it/geonode/geoserver/latest/geoserver-2.14.3.war
sudo mv geoserver-2.14.3.war /usr/local/apache-tomcat8/webapps/geoserver.war

Let’s now configure the JAVA_OPTS, i.e. the parameters to run the Servlet Container, like heap memory, garbage collector and so on.

sudo sed -i -e "s/JAVA_OPTS=/#JAVA_OPTS=/g" /usr/local/apache-tomcat8/bin/setenv.sh

echo 'GEOSERVER_DATA_DIR="/opt/data/geoserver_data"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh
echo 'GEOSERVER_LOG_LOCATION="/opt/data/geoserver_logs/geoserver.log"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh
echo 'GEOWEBCACHE_CACHE_DIR="/opt/data/gwc_cache_dir"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh
echo 'GEOFENCE_DIR="$GEOSERVER_DATA_DIR/geofence"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh
echo 'TIMEZONE="UTC"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh

echo 'JAVA_OPTS="-server -Djava.awt.headless=true -Dorg.geotools.shapefile.datetime=true -XX:+UseParallelGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Duser.timezone=$TIMEZONE -Xms512m -Xmx4096m -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Dgeofence.dir=$GEOFENCE_DIR -DGEOSERVER_LOG_LOCATION=$GEOSERVER_LOG_LOCATION -DGEOWEBCACHE_CACHE_DIR=$GEOWEBCACHE_CACHE_DIR"' | sudo tee --append /usr/local/apache-tomcat8/bin/setenv.sh

Bemerkung

After the execution of the above statements, you should be able to see the new options written at the bottom of the file /usr/local/apache-tomcat8/bin/setenv.sh.

...
# If you run Tomcat on port numbers that are all higher than 1023, then you
# do not need authbind.  It is used for binding Tomcat to lower port numbers.
# (yes/no, default: no)
#AUTHBIND=no
JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
GEOSERVER_DATA_DIR="/opt/data/geoserver_data"
GEOSERVER_LOG_LOCATION="/opt/data/geoserver_logs/geoserver.log"
GEOWEBCACHE_CACHE_DIR="/opt/data/gwc_cache_dir"
GEOFENCE_DIR="$GEOSERVER_DATA_DIR/geofence"
TIMEZONE="UTC"
JAVA_OPTS="-server -Djava.awt.headless=true -Dorg.geotools.shapefile.datetime=true -XX:+UseParallelGC -XX:ParallelGCThreads=4 -Dfile.encoding=UTF8 -Duser.timezone=$TIMEZONE -Xms512m -Xmx4096m -Djavax.servlet.request.encoding=UTF-8 -Djavax.servlet.response.encoding=UTF-8 -DGEOSERVER_DATA_DIR=$GEOSERVER_DATA_DIR -Dgeofence.dir=$GEOFENCE_DIR -DGEOSERVER_LOG_LOCATION=$GEOSERVER_LOG_LOCATION -DGEOWEBCACHE_CACHE_DIR=$GEOWEBCACHE_CACHE_DIR"

Those options could be updated or changed manually at any time, accordingly to your needs.

Warnung

The default options we are going to add to the Servlet Container, assume you can reserve at least 4GB of RAM to GeoServer (see the option -Xmx4096m). You must be sure your machine has enough memory to run both GeoServer and GeoNode, which in this case means at least 4GB for GeoServer plus at least 2GB for GeoNode. A total of at least 6GB of RAM available on your machine. If you don’t have enough RAM available, you can lower down the values -Xms512m -Xmx4096m. Consider that with less RAM available, the performances of your services will be highly impacted.

In order to make the changes effective, you’ll need to restart the Servlet Container.

# Restart the server
sudo systemctl daemon-reload
sudo systemctl restart tomcat
sudo systemctl status tomcat.service

# Follow the startup logs
sudo tail -F -n 300 /opt/data/geoserver_logs/geoserver.log

If you can see on the logs something similar to this, without errors

...
2019-05-31 10:06:34,190 INFO [geoserver.wps] - Found 5 bindable processes in GeoServer specific processes
2019-05-31 10:06:34,281 INFO [geoserver.wps] - Found 89 bindable processes in Deprecated processes
2019-05-31 10:06:34,298 INFO [geoserver.wps] - Found 31 bindable processes in Vector processes
2019-05-31 10:06:34,307 INFO [geoserver.wps] - Found 48 bindable processes in Geometry processes
2019-05-31 10:06:34,307 INFO [geoserver.wps] - Found 1 bindable processes in PolygonLabelProcess
2019-05-31 10:06:34,311 INFO [geoserver.wps] - Blacklisting process ras:ConvolveCoverage as the input kernel of type class javax.media.jai.KernelJAI cannot be handled
2019-05-31 10:06:34,319 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input zones of type class java.lang.Object cannot be handled
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input nodata of type class it.geosolutions.jaiext.range.Range cannot be handled
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the input rangeData of type class java.lang.Object cannot be handled
2019-05-31 10:06:34,320 INFO [geoserver.wps] - Blacklisting process ras:RasterZonalStatistics2 as the output zonal statistics of type interface java.util.List cannot be handled
2019-05-31 10:06:34,321 INFO [geoserver.wps] - Found 18 bindable processes in Raster processes
2019-05-31 10:06:34,917 INFO [ows.OWSHandlerMapping] - Mapped URL path [/TestWfsPost] onto handler 'wfsTestServlet'
2019-05-31 10:06:34,918 INFO [ows.OWSHandlerMapping] - Mapped URL path [/wfs/*] onto handler 'dispatcher'
2019-05-31 10:06:34,918 INFO [ows.OWSHandlerMapping] - Mapped URL path [/wfs] onto handler 'dispatcher'
2019-05-31 10:06:42,237 INFO [geoserver.security] - Start reloading user/groups for service named default
2019-05-31 10:06:42,241 INFO [geoserver.security] - Reloading user/groups successful for service named default
2019-05-31 10:06:42,357 WARN [auth.GeoFenceAuthenticationProvider] - INIT FROM CONFIG
2019-05-31 10:06:42,494 INFO [geoserver.security] - AuthenticationCache Initialized with 1000 Max Entries, 300 seconds idle time, 600 seconds time to live and 3 concurrency level
2019-05-31 10:06:42,495 INFO [geoserver.security] - AuthenticationCache Eviction Task created to run every 600 seconds
2019-05-31 10:06:42,506 INFO [config.GeoserverXMLResourceProvider] - Found configuration file in /opt/data/gwc_cache_dir
2019-05-31 10:06:42,516 INFO [config.GeoserverXMLResourceProvider] - Found configuration file in /opt/data/gwc_cache_dir
2019-05-31 10:06:42,542 INFO [config.XMLConfiguration] - Wrote configuration to /opt/data/gwc_cache_dir
2019-05-31 10:06:42,547 INFO [geoserver.importer] - Enabling import store: memory

Your GeoServer should be up and running at

http://localhost:8080/geoserver/

Warnung

In case of errors or the file geoserver.log is not created, check the Catalina logs in order to try to understand what’s happened.

sudo less /usr/local/apache-tomcat8/logs/catalina.out

It is possible to test the new running GeoServer with the GeoNode paver service (DEBUG mode). To do that

workon geonode
cd /opt/geonode/
paver start_django

Warnung

The paver reset command from now on won’t clean up GeoServer and its catalog anymore. Therefore, every data uploaded during those tests will remain on GeoServer even if GeoNode will be reset.

Web Server

Until now we have seen how to start GeoNode in DEBUG mode from the command line, through the paver utilities. This is of course not the best way to start it. Moreover you will need a dedicated HTTPD server running on port 80 if you would like to expose your server to the world.

In this section we will see:

  1. How to configure NGINX HTTPD Server to host GeoNode and GeoServer. In the initial setup we will still run the services on http://localhost
  2. Update the settings in order to link GeoNode and GeoServer to the PostgreSQL Database.
  3. Update the settings in order to update GeoNode and GeoServer services running on a public IP or hostname.
  4. Install and enable HTTPS secured connection through the Let's Encrypt provider.
Install and configure NGINX

Warnung

Before executing the next steps, be sure GeoNode paver services have been stopped. To do that

workon geonode
cd /opt/geonode/
paver stop_django
# Install the services
sudo apt install -y nginx uwsgi uwsgi-plugin-python
Serving {“geonode”, “geoserver”} via NGINX
# Create the GeoNode UWSGI config
sudo vim /etc/uwsgi/apps-available/geonode.ini
[uwsgi]
socket = 0.0.0.0:8000
uid = geonode
gid = www-data

plugins = python
virtualenv = /home/geonode/.virtualenvs/geonode
env = DEBUG=False
env = DJANGO_SETTINGS_MODULE=geonode.settings
env = SECRET_KEY='RanD0m%3cr3tK3y'
env = SITE_HOST_NAME=localhost
env = SITEURL=http://localhost/
env = LOCKDOWN_GEONODE=False
env = SESSION_EXPIRED_CONTROL_ENABLED=True
env = FORCE_SCRIPT_NAME=
env = EMAIL_ENABLE=False
env = DJANGO_EMAIL_HOST_USER=
env = DJANGO_EMAIL_HOST_PASSWORD=
env = DJANGO_EMAIL_HOST=localhost
env = DJANGO_EMAIL_PORT=25
env = DJANGO_EMAIL_USE_TLS=False
env = DEFAULT_FROM_EMAIL=GeoNode <no-reply@localhost>
env = MONITORING_ENABLED=True
env = GEOSERVER_PUBLIC_HOST=localhost
env = GEOSERVER_PUBLIC_PORT=
env = GEOSERVER_ADMIN_PASSWORD=geoserver
env = GEOSERVER_LOCATION=http://localhost/geoserver/
env = GEOSERVER_PUBLIC_LOCATION=http://localhost/geoserver/
env = GEOSERVER_WEB_UI_LOCATION=http://localhost/geoserver/
env = RESOURCE_PUBLISHING=False
env = ADMIN_MODERATE_UPLOADS=False
env = GROUP_PRIVATE_RESOURCES=False
env = GROUP_MANDATORY_RESOURCES=False
env = OGC_REQUEST_TIMEOUT=60
env = OGC_REQUEST_MAX_RETRIES=3
env = OGC_REQUEST_POOL_MAXSIZE=100
env = OGC_REQUEST_POOL_CONNECTIONS=100
env = EXIF_ENABLED=True
env = CREATE_LAYER=False
env = FAVORITE_ENABLED=True

chdir = /opt/geonode
module = geonode.wsgi:application

processes = 4
threads = 2
enable-threads = true
master = true

# logging
# path to where uwsgi logs will be saved
logto = /opt/data/logs/geonode.log
daemonize = /opt/data/logs/geonode.log
touch-reload = /opt/geonode/geonode/wsgi.py
buffer-size = 32768
max-requests = 500
harakiri = 300 # respawn processes taking more than 5 minutes (300 seconds)
max-requests = 500 # respawn processes after serving 5000 requests
# limit-as = 1024 # avoid Errno 12 cannot allocate memory
harakiri-verbose = true
vacuum = true
thunder-lock = true
# Enable the GeoNode UWSGI config
sudo ln -s /etc/uwsgi/apps-available/geonode.ini /etc/uwsgi/apps-enabled/geonode.ini

# Restart UWSGI Service
sudo service uwsgi restart
# Backup the origina NGINX config
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.orig

# Create the GeoNode Default NGINX config
sudo vim /etc/nginx/nginx.conf
# Make sure your nginx.config matches the following one
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
  worker_connections 768;
  # multi_accept on;
}

http {
  ##
  # Basic Settings
  ##

  sendfile on;
  tcp_nopush on;
  tcp_nodelay on;
  keepalive_timeout 65;
  types_hash_max_size 2048;
  # server_tokens off;

  # server_names_hash_bucket_size 64;
  # server_name_in_redirect off;

  include /etc/nginx/mime.types;
  default_type application/octet-stream;

  ##
  # SSL Settings
  ##

  ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
  ssl_prefer_server_ciphers on;

  ##
  # Logging Settings
  ##

  access_log /var/log/nginx/access.log;
  error_log /var/log/nginx/error.log;

  ##
  # Gzip Settings
  ##

  gzip on;
  gzip_vary on;
  gzip_proxied any;
  gzip_http_version 1.1;
  gzip_disable "MSIE [1-6]\.";
  gzip_buffers 16 8k;
  gzip_min_length 1100;
  gzip_comp_level 6;
  gzip_proxied any;
  gzip_types video/mp4 text/plain text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg;

  ##
  # Virtual Host Configs
  ##

  include /etc/nginx/conf.d/*.conf;
  include /etc/nginx/sites-enabled/*;
}
# Remove the Default NGINX config
sudo rm /etc/nginx/sites-enabled/default

# Create the GeoNode App NGINX config
sudo vim /etc/nginx/sites-available/geonode
uwsgi_intercept_errors on;

upstream geoserver_proxy {
  server localhost:8080;
}

# Expires map
map $sent_http_content_type $expires {
  default                    off;
  text/html                  epoch;
  text/css                   max;
  application/javascript     max;
  ~image/                    max;
}

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/html;
  index index.html index.htm index.nginx-debian.html;

  server_name _;

  charset utf-8;

  etag on;
  expires $expires;
  proxy_read_timeout 600s;
  # set client body size to 2M #
  client_max_body_size 50000M;

  location / {
    etag off;
    uwsgi_pass 127.0.0.1:8000;
    uwsgi_read_timeout 600s;
    include uwsgi_params;
  }

  location /static/ {
    alias /opt/geonode/geonode/static_root/;
  }

  location /uploaded/ {
    alias /opt/geonode/geonode/uploaded/;
  }

  location /geoserver {
    proxy_pass http://geoserver_proxy;
    include proxy_params;
  }
}
# Enable GeoNode NGINX config
sudo ln -s /etc/nginx/sites-available/geonode /etc/nginx/sites-enabled/geonode

# Restart the services
sudo systemctl restart tomcat
sudo service nginx restart

Refresh GeoNode static data

workon geonode
cd /opt/geonode
python manage.py collectstatic --no-input

Refresh GeoNode and GeoServer OAuth2 settings

workon geonode
cd /opt/geonode

# This must be done the first time only
sudo cp package/support/geonode.binary /usr/bin/geonode
sudo cp package/support/geonode.updateip /usr/bin/geonode_updateip
sudo chmod +x /usr/bin/geonode
sudo chmod +x /usr/bin/geonode_updateip
pip install -e git+https://github.com/justquick/django-activity-stream.git#egg=django-activity-stream

# Update the GeoNode ip or hostname
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -p localhost

The GeoNode service should now run on http://localhost/

The GeoServer service should now run on http://localhost/geoserver/

You should be able to login with the default user admin (pwd admin) and upload your layers.

Update the settings in order to use the PostgreSQL Database

Warnung

Make sure you already installed and configured the Database as explained in the previous sections.

workon geonode
cd /opt/geonode

cp geonode/local_settings.py.geoserver.sample geonode/local_settings.py

# In case you want to change the DB password, run the following
# sudo sed -i -e "s/'PASSWORD': 'geonode',/'PASSWORD': '<your_db_role_password>',/g" geonode/local_settings.py

# Stop Tomcat
sudo systemctl restart tomcat

# Initialize GeoNode
DJANGO_SETTINGS_MODULE=geonode.local_settings paver reset
DJANGO_SETTINGS_MODULE=geonode.local_settings paver setup
DJANGO_SETTINGS_MODULE=geonode.local_settings paver sync
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py collectstatic --noinput

Before finalizing the configuration we will need to update the UWSGI settings

sudo vim /etc/uwsgi/apps-enabled/geonode.ini

Change geonode.settings to geonode.local_settings

%s/geonode.settings/geonode.local_settings/g

Restart UWSGI and update OAuth2 by using the new geonode.local_settings

Warnung

!IMPORTANT! In the statement below make sure to use DJANGO_SETTINGS_MODULE=geonode.local_settings

# Restart UWSGI
sudo service uwsgi restart

# Update the GeoNode ip or hostname
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.local_settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -p localhost
Update the settings in order to update GeoNode and GeoServer services running on a public IP or hostname

Warnung

Before exposing your services to the Internet, make sure your system is hardened and secure enough. See the specific documentation section for more details.

Let’s say you want to run your services on a public IP or domain, e.g. www.example.org. You will need to slightly update your services in order to reflect the new server name.

In particular the steps to do are:

  1. Update NGINX configuration in order to serve the new domain name.
sudo vim /etc/nginx/sites-enabled/geonode

# Update the 'server_name' directive
server_name example.org www.example.org;

# Restart the service
sudo service nginx restart
  1. Update UWSGI configuration in order to serve the new domain name.
sudo vim /etc/uwsgi/apps-enabled/geonode.ini

# Change everywhere 'localhost' to the new hostname
%s/localhost/www.example.org/g

# Restart the service
sudo service uwsgi restart
  1. Update OAuth2 configuration in order to hit the new hostname.
workon geonode
cd /opt/geonode

# Update the GeoNode ip or hostname
sudo PYTHONWARNINGS=ignore VIRTUAL_ENV=$VIRTUAL_ENV DJANGO_SETTINGS_MODULE=geonode.local_settings GEONODE_ETC=/opt/geonode GEOSERVER_DATA_DIR=/opt/data/geoserver_data TOMCAT_SERVICE="service tomcat" APACHE_SERVICE="service nginx" geonode_updateip -l localhost -p www.example.org
  1. Update the existing GeoNode links in order to hit the new hostname.
workon geonode
cd /opt/geonode

# Update the GeoNode ip or hostname
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py migrate_baseurl --source-address=http://localhost --target-address=http://www.example.org
Install and enable HTTPS secured connection through the Let’s Encrypt provider
# Install Let's Encrypt Certbot
sudo add-apt-repository ppa:certbot/certbot
sudo apt update -y; sudo apt install python-certbot-nginx -y

# Reload NGINX config and make sure the firewall denies access to HTTP
sudo systemctl reload nginx
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'

# Create and dump the Let's Encrypt Certificates
sudo certbot --nginx -d example.org -d www.example.org
# ...choose the redirect option when asked for
  1. Update the GeoNode OAuth2 Redirect URIs accordingly.

From the GeoNode Admin Dashboard goto Home Django/GeoNode OAuth Toolkit Applications GeoServer

_images/ubuntu-https-001.png

Redirect URIs

  1. Update the GeoServer Proxy Base URL accordingly.

From the GeoServer Admin GUI goto About & Status > Global

_images/ubuntu-https-002.png

Proxy Base URL

  1. Update the GeoServer Role Base URL accordingly.

From the GeoServer Admin GUI goto Security > Users, Groups, Roles > geonode REST role service

_images/ubuntu-https-003.png

Role Base URL

  1. Update the GeoServer OAuth2 Service Parameters accordingly.

From the GeoServer Admin GUI goto Security > Authentication > Authentication Filters > geonode-oauth2

_images/ubuntu-https-004.png

OAuth2 Service Parameters

  1. Update the UWSGI configuration
sudo vim /etc/uwsgi/apps-enabled/geonode.ini

# Change everywhere 'http' to 'https'
%s/http/https/g

# Add two more 'env' variables to the configruation
env = SECURE_SSL_REDIRECT=True
env = SECURE_HSTS_INCLUDE_SUBDOMAINS=True

# Restart the service
sudo service uwsgi restart
_images/ubuntu-https-005.png

UWSGI Configuration

CentOS 7.0

  • TODO

Docker

In this section we are going to list the passages needed to:

  1. Install Docker and docker-compose packages on a Ubuntu host
  2. Deploy a vanilla GeoNode 2.10 with Docker
  1. Override the ENV variables to deploy on a public IP or domain
  2. Access the django4geonode Docker image to update the code-base and/or change internal settings
  3. Access the geoserver4geonode Docker image to update the GeoServer version
  1. Passages to completely get rid of old Docker images and volumes (prune the environment completely)
Install the Docker and docker-compose packages on a Ubuntu host
Docker Setup (First time only)
sudo add-apt-repository universe
sudo apt-get update -y
sudo apt-get install -y git-core git-buildpackage debhelper devscripts
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt-get update -y
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose
sudo apt autoremove --purge

sudo usermod -aG docker geonode
su geonode
Install the Docker and docker-compose packages on a CentOS host
Docker Setup (First time only)

Warnung

The centos-extras repository must be enabled

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker

sudo usermod -aG docker geonode
su geonode
Test Docker Compose Instance

Logout and login again on shell and then execute:

docker run -it hello-world
Deploy a vanilla GeoNode 2.10 with Docker

Clone the Project

# Let's create the GeoNode core base folder and clone it
sudo mkdir -p /opt/geonode/
sudo usermod -a -G www-data geonode
sudo chown -Rf geonode:www-data /opt/geonode/
sudo chmod -Rf 775 /opt/geonode/

# Clone the GeoNode source code on /opt/geonode
cd /opt
git clone https://github.com/GeoNode/geonode.git geonode

Start the Docker instances on localhost

Warnung

The first time pulling the images will take some time. You will need a good internet connection.

cd /opt/geonode
docker-compose -f docker-compose.yml -f docker-compose.override.localhost.yml pull
docker-compose -f docker-compose.yml -f docker-compose.override.localhost.yml up -d

Bemerkung

If you want to re-build the docker images from scratch, instead of pulling them from the Docker Hub add the --build parameter to the up command, for instance:

docker-compose -f docker-compose.yml -f docker-compose.override.localhost.yml up --build

In this case you can of course skip the pull step to download the pre-built images.

Bemerkung

To startup the containers daemonized, which means they will be started in the background (and keep running if you log out from the server or close the shell) add the -d option to the up command as in the following. docker-compose will take care to restart the containers if necessary (e.g. after boot).

docker-compose -f docker-compose.yml -f docker-compose.override.localhost.yml up -d

# If you want to rebuild the images also
docker-compose -f docker-compose.yml -f docker-compose.override.localhost.yml up --build -d
Test the instance and follow the logs

If you run the containers daemonized (with the -d option), you can either run specific Docker commands to follow the startup and initialization logs or entering the image shell and check for the GeoNode logs.

In order to follow the startup and initialization logs, you will need to run the following command from the repository folder

cd /opt/geonode
docker logs -f django4geonode

Alternatively:

cd /opt/geonode
docker-compose logs -f django

You should be able to see several initialization messages. Once the container is up and running, you will see the following statements

...
789 static files copied to '/mnt/volumes/statics/static'.
static data refreshed
Executing UWSGI server uwsgi --ini /usr/src/app/uwsgi.ini for Production
[uWSGI] getting INI configuration from /usr/src/app/uwsgi.ini

To exit just hit CTRL+C.

This message means that the GeoNode containers have bee started. Browsing to http://localhost/ will show the GeoNode home page. You should be able to successfully log with the default admin user (admin / admin) and start using it right away.

With Docker it is also possible to run a shell in the container and follow the logs exactly the same as you deployed it on a physical host. To achieve this run

docker exec -it django4geonode /bin/bash

# Once logged in the GeoNode image, follow the logs by executing
tail -F -n 300 /var/log/geonode.log

Alternatively:

docker-compose exec django /bin/bash

To exit just hit CTRL+C and exit to return to the host.

Override the ENV variables to deploy on a public IP or domain

If you would like to start the containers on a public IP or domain, let’s say www.example.org, you can

cd /opt/geonode

# Stop the Containers (if running)
docker-compose stop

Edit the ENV override file in order to deploy on www.example.org

# Make a copy of docker-compose.override.localhost.yml
cp docker-compose.override.localhost.yml docker-compose.override.example-org.yml

Replace everywhere localhost with www.example.org

vim docker-compose.override.example-org.yml
# e.g.: :%s/localhost/www.example.org/g

version: '2.2'
services:

  django:
    build: .
    # Loading the app is defined here to allow for
    # autoreload on changes it is mounted on top of the
    # old copy that docker added when creating the image
    volumes:
      - '.:/usr/src/app'
    environment:
      - DEBUG=False
      - GEONODE_LB_HOST_IP=www.example.org
      - GEONODE_LB_PORT=80
      - SITEURL=http://www.example.org/
      - ALLOWED_HOSTS=['www.example.org', ]
      - GEOSERVER_PUBLIC_LOCATION=http://www.example.org/geoserver/
      - GEOSERVER_WEB_UI_LOCATION=http://www.example.org/geoserver/

  celery:
    build: .
    volumes:
      - '.:/usr/src/app'
    environment:
      - DEBUG=False
      - GEONODE_LB_HOST_IP=www.example.org
      - GEONODE_LB_PORT=80
      - SITEURL=http://www.example.org/
      - ALLOWED_HOSTS=['www.example.org', ]
      - GEOSERVER_PUBLIC_LOCATION=http://www.example.org/geoserver/
      - GEOSERVER_WEB_UI_LOCATION=http://www.example.org/geoserver/

  geoserver:
    environment:
      - GEONODE_LB_HOST_IP=www.example.org
      - GEONODE_LB_PORT=80
  #    - NGINX_BASE_URL=

Bemerkung

It is possible to override here even more variables to customize the GeoNode instance. See the GeoNode Settings section in order to get a list of the available options.

Run the containers in daemon mode

docker-compose -f docker-compose.yml -f docker-compose.override.example-org.yml up --build -d
Access the django4geonode Docker container to update the code-base and/or change internal settings

Access the container bash

docker exec -i -t django4geonode /bin/bash

You will be logged into the GeoNode instance as root. The folder is /usr/src/app/ where the GeoNode project is cloned. Here you will find the GeoNode source code as in the GitHub repository.

Bemerkung

The machine is empty by default, no Ubuntu packages installed. If you need to install text editors or something you have to run the following commands:

apt update
apt install <package name>

e.g.:
  apt install vim

Update the templates or the Django models. Once in the bash you can edit the templates or the Django models/classes. From here you can run any standard Django management command.

Whenever you change a template/CSS/Javascript remember to run later:

python manage.py collectstatic

in order to update the files into the statics Docker volume.

Warnung

This is an external volume, and a simple restart won’t update it. You have to be careful and keep it aligned with your changes.

Whenever you need to change some settings or environment variable, the easiest thing to do is to:

# Stop the container
docker-compose stop

# Restart the container in Daemon mode
docker-compose -f docker-compose.yml -f docker-compose.override.<whatever>.yml up -d

Whenever you change the model, remember to run later in the container via bash:

python manage.py makemigrations
python manage.py migrate
Access the geoserver4geonode Docker container to update the GeoServer version

This procedure allows you to access the GeoServer container.

The concept is exactly the same as above, log into the container with bash.

# Access the container bash
docker exec -it geoserver4geonode /bin/bash

You will be logged into the GeoServer instance as root.

GeoServer is deployed on an Apache Tomcat instance which can be found here

cd /usr/local/tomcat/webapps/geoserver

Warnung

The GeoServer DATA_DIR is deployed on an external Docker Volume geonode_gsdatadir. This data dir won’t be affected by changes to the GeoServer application since it is external.

Update the GeoServer instance inside the GeoServer Container

Warnung

The old configuration will be kept since it is external

docker exec -it geoserver4geonode bash
cd /usr/local/tomcat/
wget --no-check-certificate https://build.geo-solutions.it/geonode/geoserver/latest/geoserver-2.14.3.war
mkdir tmp/geoserver
cd tmp/geoserver/
unzip /usr/local/tomcat/geoserver-2.14.3.war
rm -Rf data
cp -Rf /usr/local/tomcat/webapps/geoserver/data/ .
cd /usr/local/tomcat/
mv webapps/geoserver/ .
mv tmp/geoserver/ webapps/
exit
docker restart geoserver4geonode

Warnung

GeoNode 2.8.1 is NOT compatible with GeoServer > 2.13.x

GeoNode 2.8.2 / 2.10.x are NOT compatible with GeoServer < 2.14.x

Remove all data and bring your running GeoNode deployment to the initial stage

This procedure allows you to stop all the containers and reset all the data with the deletion of all the volumes.

cd /opt/geonode

# stop containers and remove volumes
docker-compose down -v
Passages to completely get rid of old Docker images and volumes (reset the environment completely)

Bemerkung

For more details on Docker commands, please refer to the official Docker documentation.

It is possible to let docker show which containers are currently running (add -a for all containers, also stopped ones)

# Show the currently running containers
docker ps

CONTAINER ID        IMAGE                      COMMAND                  CREATED             STATUS              PORTS                NAMES
3b232931f820        geonode/nginx:geoserver    "nginx -g 'daemon of…"   26 minutes ago      Up 26 minutes       0.0.0.0:80->80/tcp   nginx4geonode
ff7002ae6e91        geonode/geonode:latest     "/usr/src/app/entryp…"   26 minutes ago      Up 26 minutes       8000/tcp             django4geonode
2f155e5043be        geonode/geoserver:2.14.3   "/usr/local/tomcat/t…"   26 minutes ago      Up 26 minutes       8080/tcp             geoserver4geonode
97f1668a01b1        geonode_celery             "/usr/src/app/entryp…"   26 minutes ago      Up 26 minutes       8000/tcp             geonode_celery_1
1b623598b1bd        geonode/postgis:10         "docker-entrypoint.s…"   About an hour ago   Up 26 minutes       5432/tcp             db4geonode

Stop all the containers by running

docker-compose stop

Force kill all containers by running

docker kill $(docker ps -q)

I you want to clean up all containers and images, without deleting the static volumes (i.e. the DB and the GeoServer catalog), issue the following commands

# Remove all containers
docker rm $(docker ps -a -q)

# Remove all docker images
docker rmi $(docker images -q)

# Prune the old images
docker system prune -a

If you want to remove a volume also

# List of the running volumes
docker volume ls

# Remove the GeoServer catalog by its name
docker volume rm -f geonode-gsdatadir

# Remove all dangling docker volumes
docker volume rm $(docker volume ls -qf dangling=true)

# update all images, should be run regularly to fetch published updates
for i in $(docker images| awk 'NR>1{print $1":"$2}'| grep -v '<none>'); do docker pull "$i" ;done

GeoNode Project

Overview

The following steps will guide you to a new setup of GeoNode Project. All guides will first install and configure the system to run it in DEBUG mode (also known as DEVELOPMENT mode) and then by configuring an HTTPD server to serve GeoNode through the standard HTTP (80) port.

Those guides are not meant to be used on a production system. There will be dedicated chapters that will show you some hints to optimize GeoNode for a production-ready machine. In any case, we strongly suggest to task an experienced DevOp or System Administrator before exposing your server to the WEB.

Ubuntu 18.04

This part of the documentation describes the complete setup process for GeoNode on an Ubuntu 18.04 64-bit clean environment (Desktop or Server). All examples use shell commands that you must enter on a local terminal or a remote shell. - If you have a graphical desktop environment you can open the terminal application after login; - if you are working on a remote server the provider or sysadmin should has given you access through an ssh client.

Install the dependencies

In this section, we are going to install all the basic packages and tools needed for a complete GeoNode installation. To follow this guide, a piece of basic knowledge about Ubuntu Server configuration and working with a shell is required. This guide uses vim as the editor; fill free to use nano, gedit or others.

Upgrade system packages

Check that your system is already up-to-date with the repository running the following commands:

sudo apt update
sudo apt upgrade
Create a Dedicated User

In the following steps a User named geonode is used: to run installation commands the user must be in the sudo group.

Create User geonode if not present:

# Follow the prompts to set the new user's information.
# It is fine to accept the defaults to leave all of this information blank.
sudo adduser geonode

# The following command adds the user geonode to group sudo
sudo usermod -aG sudo geonode

# make sure the newly created user is allowed to login by ssh
# (out of the scope of this documentation) and switch to User geonode
su geonode
Packages Installation

First, we are going to install all the system packages needed for the GeoNode setup.

# Install packages from GeoNode core
sudo apt install -y python-gdal gdal-bin
sudo apt install -y python-pip python-dev python-virtualenv
sudo apt install -y libxml2 libxml2-dev gettext
sudo apt install -y libxslt1-dev libjpeg-dev libpng-dev libpq-dev libgdal-dev libgdal20
sudo apt install -y software-properties-common build-essential
sudo apt install -y git unzip gcc zlib1g-dev libgeos-dev libproj-dev
sudo apt install -y sqlite3 spatialite-bin libsqlite3-mod-spatialite

# Install Openjdk
sudo -i apt update
sudo apt install openjdk-8-jdk-headless default-jdk-headless -y
sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

sudo apt update -y
sudo apt upgrade -y
sudo apt autoremove -y
sudo apt autoclean -y
sudo apt purge -y
sudo apt clean -y

# Install Packages for Virtual environment management
sudo apt install -y virtualenv virtualenvwrapper
Geonode Project Installation

Geonode project is the proper way to run a customized installation of Geonode. The repository of geonode-project contains a minimal set of files following the structure of a django-project. Geonode itself will be installed as a requirement of your project. Inside the project structure is possible to extend, replace or modify all geonode componentse (e.g. css and other static files, templates, models..) and even register new django apps without touching the original Geonode code.

Bemerkung

You can call your geonode project whatever you like following the naming conventions for python packages (generally lower case with underscores (_). In the examples below, replace my_geonode with whatever you would like to name your project.

See also the README <https://github.com/GeoNode/geonode-project/blob/master/README.rst> fiel on geonode-project repository

First of all we need to prepare a new Python Virtual Environment

Check that the file virtualenvwrapper.sh exists in the $HOME/.local/bin/ ($HOME is the current user home directory and in our case should be /home/geonode) and then add this line to your file ~/.bashrc

vim ~/.bashrc
# virtualenv
source $HOME/.local/bin/virtualenvwrapper.sh

Then run the .bashrc from shell

source ~/.bashrc
#create a new virtualenv called geonode
mkvirtualenv --no-site-packages geonode

At this point, your command prompt shows a (geonode) prefix, this indicates that your virtualenv is active.

Bemerkung

The next time you need to access the Virtual Environment just run

workon geonode
# Let's create the GeoNode core base folder and clone it
sudo mkdir -p /opt/geonode/
sudo usermod -a -G www-data geonode
sudo chown -Rf geonode:www-data /opt/geonode/
sudo chmod -Rf 775 /opt/geonode/

# Clone the GeoNode source code on /opt/geonode
cd /opt
git clone https://github.com/GeoNode/geonode.git geonode

# Install the Python packages
cd /opt/geonode
pip install -r requirements.txt --upgrade --no-cache --no-cache-dir
pip install -e . --upgrade --no-cache --no-cache-dir

# Install GDAL Utilities for Python
GDAL_VERSION=`gdal-config --version`; \
  PYGDAL_VERSION="$(pip install pygdal==$GDAL_VERSION 2>&1 | grep -oP '(?<=: )(.*)(?=\))' | grep -oh $GDAL_VERSION\.[0-9])"; \
  pip install pygdal==$PYGDAL_VERSION

TODO

Docker

Warnung

Before moving with this section, you should have read and clearly understood the INSTALLATION > GeoNode Core sections, and in particular the Docker one. Everything said for the GeoNode Core Vanilla applies here too, except that the Docker container names will be slightly different. As an instance if you named your project my_geonode, your containers will be called:

'django4my_geonode' instead of 'django4geonode' and so on...
Deploy an instance of a geonode-project Django template 2.10.x with Docker on localhost

Prepare the environment

sudo mkdir -p /opt/geonode_custom/
sudo usermod -a -G www-data geonode
sudo chown -Rf geonode:www-data /opt/geonode_custom/
sudo chmod -Rf 775 /opt/geonode_custom/

Clone the source code

cd /opt/geonode_custom/
git clone https://github.com/GeoNode/geonode-project.git

Make an instance out of the Django Template

Bemerkung

We will call our instance my_geonode. You can change the name at your convenience.

mkvirtualenv my_geonode
pip install Django==1.11.21
django-admin startproject --template=./geonode-project -e py,rst,json,yml,ini,env,sample -n Dockerfile my_geonode
cd /opt/geonode_custom/my_geonode

Modify the code and the templates and rebuild the Docker Containers

docker-compose -f docker-compose.yml -f docker-compose.override.yml build --no-cache

Finally, run the containers

docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d
Deploy an instance of a geonode-project Django template 2.10.x with Docker on a domain

Bemerkung

We will use www.example.org as an example. You can change the name at your convenience.

Stop the containers

cd /opt/geonode_custom/my_geonode

docker-compose -f docker-compose.yml -f docker-compose.override.yml stop

Edit the ENV override file in order to deploy on www.example.org

# Make a copy of docker-compose.override.yml
cp docker-compose.override.yml docker-compose.override.example-org.yml

Replace everywhere localhost with www.example.org

vim docker-compose.override.example-org.yml
# e.g.: :%s/localhost/www.example.org/g

version: '2.2'
services:

  django:
    build: .
    # Loading the app is defined here to allow for
    # autoreload on changes it is mounted on top of the
    # old copy that docker added when creating the image
    volumes:
      - '.:/usr/src/my_geonode'
    environment:
      - DEBUG=False
      - GEONODE_LB_HOST_IP=www.example.org
      - GEONODE_LB_PORT=80
      - SITEURL=http://www.example.org/
      - ALLOWED_HOSTS=['www.example.org', ]
      - GEOSERVER_PUBLIC_LOCATION=http://www.example.org/geoserver/
      - GEOSERVER_WEB_UI_LOCATION=http://www.example.org/geoserver/

  geoserver:
    environment:
      - GEONODE_LB_HOST_IP=localhost
      - GEONODE_LB_PORT=80
  #    - NGINX_BASE_URL=

Bemerkung

It is possible to override here even more variables to customize the GeoNode instance. See the GeoNode Settings section in order to get a list of the available options.

Run the containers in daemon mode

docker-compose -f docker-compose.yml -f docker-compose.override.example-org.yml up --build -d

SPCGeoNode

Overview

Docker

GeoNode Settings

Settings

Here’s a list of settings available in GeoNode and their default values. This includes settings for some external applications that GeoNode depends on.

For most of them, default values are good. Those should be changed only for advanced configurations in production or heavily hardened systems.

The most common ones can be set through environment variables to avoid touching the settings.py file at all. This is a good practice and also the preferred one to configure GeoNode (and Django apps in general). Whenever you need to change them, set the environment variable accordingly (where it is available) instead of overriding it through the local_settings.

A
ACCESS_TOKEN_EXPIRE_SECONDS
Default: 86400
Env: ACCESS_TOKEN_EXPIRE_SECONDS

When a user logs into GeoNode, if no ACCESS_TOKEN exists, a new one will be created with a default expiration time of ACCESS_TOKEN_EXPIRE_SECONDS seconds (1 day by default).

ACCOUNT_APPROVAL_REQUIRED
Default: False
Env: ACCOUNT_APPROVAL_REQUIRED

If ACCOUNT_APPROVAL_REQUIRED equals True, newly registered users must be activated by a superuser through the Admin gui, before they can access GeoNode.

ACCOUNT_CONFIRM_EMAIL_ON_GET
Default: True

This is a django-allauth setting It allows specifying the HTTP method used when confirming e-mail addresses.

ACCOUNT_EMAIL_REQUIRED
Default: True

This is a django-allauth setting which controls whether the user is required to provide an e-mail address upon registration.

ACCOUNT_EMAIL_VERIFICATION
Default: optional

This is a django-allauth setting

ACCOUNT_LOGIN_REDIRECT_URL
Default: SITEURL
Env: LOGIN_REDIRECT_URL

This is a django-user-accounts setting It allows specifying the default redirect URL after a successful login.

ACCOUNT_LOGOUT_REDIRECT_URL
Default: SITEURL
Env: LOGOUT_REDIRECT_URL

This is a django-user-accounts setting It allows specifying the default redirect URL after a successful logout.

ACCOUNT_NOTIFY_ON_PASSWORD_CHANGE
Default: True
Env: ACCOUNT_NOTIFY_ON_PASSWORD_CHANGE

This is a django-user-accounts setting

ACCOUNT_OPEN_SIGNUP
Default: True

This is a django-user-accounts setting Whether or not people are allowed to self-register to GeoNode or not.

ACTSTREAM_SETTINGS

Default:

{
'FETCH_RELATIONS': True,
'USE_PREFETCH': False,
'USE_JSONFIELD': True,
'GFK_FETCH_DEPTH': 1,
}

Actstream Settings.

ADMIN_MODERATE_UPLOADS
Default: False

When this variable is set to True, every uploaded resource must be approved before becoming visible to the public users.

Until a resource is in PENDING APPROVAL state, only the superusers, owner and group members can access it, unless specific edit permissions have been set for other users or groups.

A Group Manager can approve the resource, but he cannot publish it whenever the setting RESOURCE_PUBLISHING is set to True. Otherwise, if RESOURCE_PUBLISHING is set to False, the resource becomes accessible as soon as it is approved.

AGON_RATINGS_CATEGORY_CHOICES

Default:

{
    "maps.Map": {
        "map": "How good is this map?"
        },
    "layers.Layer": {
        "layer": "How good is this layer?"
        },
    "documents.Document": {
    "document": "How good is this document?"
    }
}
ALLOWED_DOCUMENT_TYPES

Default:

['doc', 'docx', 'gif', 'jpg', 'jpeg', 'ods', 'odt', 'odp', 'pdf', 'png',
'ppt', 'pptx', 'rar', 'sld', 'tif', 'tiff', 'txt', 'xls', 'xlsx', 'xml',
'zip', 'gz', 'qml']

A list of acceptable file extensions that can be uploaded to the Documents app.

ANONYMOUS_USER_ID
Default: -1
Env: ANONYMOUS_USER_ID

The id of an anonymous user. This is an django-guardian setting.

API_INCLUDE_REGIONS_COUNT
Default: False
Env: API_INCLUDE_REGIONS_COUNT

If set to True, a counter with the total number of available regions will be added to the API JSON Serializer.

API_LIMIT_PER_PAGE
Default: 200
Env: API_LIMIT_PER_PAGE

The Number of items returned by the APIs 0 equals no limit. Different from CLIENT_RESULTS_LIMIT, affecting the number of items per page in the resource list.

ASYNC_SIGNALS
Default: False
Env: ACCOUNT_NOTIFY_ON_PASSWORD_CHANGE
AUTH_EXEMPT_URLS

Default:

(r'^/?$',
'/gs/*',
'/static/*',
'/o/*',
'/api/o/*',
'/api/roles',
'/api/adminRole',
'/api/users',
'/api/layers',)

A tuple of URL patterns that the user can visit without being authenticated. This setting has no effect if LOCKDOWN_GEONODE is not True. For example, AUTH_EXEMPT_URLS = ('/maps',) will allow unauthenticated users to browse maps.

AUTO_GENERATE_AVATAR_SIZES

Default: 20, 30, 32, 40, 50, 65, 70, 80, 100, 140, 200, 240

An iterable of integers representing the sizes of avatars to generate on upload. This can save rendering time later on if you pre-generate the resized versions.

AWS_ACCESS_KEY_ID
Default: ''
Env: AWS_ACCESS_KEY_ID

This is a Django storage setting Your Amazon Web Services access key, as a string.

AWS_BUCKET_NAME
Default: ''
Env: S3_BUCKET_NAME

The name of the S3 bucket GeoNode will pull static and/or media files from. Set through the environment variable S3_BUCKET_NAME. This is a Django storage setting

AWS_QUERYSTRING_AUTH
Default: False

This is a Django storage setting Setting AWS_QUERYSTRING_AUTH to False to remove query parameter authentication from generated URLs. This can be useful if your S3 buckets are public.

AWS_S3_BUCKET_DOMAIN
https://github.com/GeoNode/geonode/blob/master/geonode/settings.py#L1661 AWS_S3_BUCKET_DOMAIN = ‚%s.s3.amazonaws.com‘ % AWS_STORAGE_BUCKET_NAME
AWS_SECRET_ACCESS_KEY
Default: ''
Env: AWS_SECRET_ACCESS_KEY

This is a Django storage setting Your Amazon Web Services secret access key, as a string.

AWS_STORAGE_BUCKET_NAME
Default: ''
Env: S3_BUCKET_NAME

This is a Django storage setting Your Amazon Web Services storage bucket name, as a string.

B
BROKER_HEARTBEAT
Default: 0

Heartbeats are used both by the client and the broker to detect if a connection was closed. This is a Celery setting.

BROKER_TRANSPORT_OPTIONS

Default:

{
'fanout_prefix': True,
'fanout_patterns': True,
'socket_timeout': 60,
'visibility_timeout': 86400
}

This is a Celery setting.

C
CACHES
A dictionary containing the settings for all caches to be used with Django. This is a Django setting
CACHE_TIME
Default: 0
Env: CACHE_TIME
CASCADE_WORKSPACE
Default: geonode
Env: CASCADE_WORKSPACE
CATALOGUE

A dict with the following keys:

ENGINE: The CSW backend (default is geonode.catalogue.backends.pycsw_local) URL: The FULLY QUALIFIED base URL to the CSW instance for this GeoNode USERNAME: login credentials (if required) PASSWORD: login credentials (if required)

pycsw is the default CSW enabled in GeoNode. pycsw configuration directives are managed in the PYCSW entry.

CELERYD_POOL_RESTARTS

Default: True

This is a Celery setting.

CELERY_ACCEPT_CONTENT

Defaul: ['json']

This is a Celery setting.

CELERY_ACKS_LATE

Default: True

This is a Celery setting

CELERY_BEAT_SCHEDULE
Here you can define your scheduled task.
CELERY_DISABLE_RATE_LIMITS

Default: False

This is a Celery setting.

CELERY_ENABLE_UTC

Default: True

This is a Celery setting.

CELERY_MAX_CACHED_RESULTS

Default: 32768

This is a Celery setting.

CELERY_MESSAGE_COMPRESSION

Default: gzip

This is a Celery setting.

CELERY_RESULT_PERSISTENT

Default: False

This is a Celery setting.

CELERY_RESULT_SERIALIZER

Default: json

This is a Celery setting.

CELERY_SEND_TASK_SENT_EVENT

Default: True

If enabled, a task-sent event will be sent for every task so tasks can be tracked before they are consumed by a worker. This is a Celery setting.

CELERY_TASK_ALWAYS_EAGER

Default: False if ASYNC_SIGNALS else True

This is a Celery setting.

CELERY_TASK_CREATE_MISSING_QUEUES

Default: True

This is a Celery setting.

CELERY_TASK_IGNORE_RESULT

Default: True

This is a Celery setting.

CELERY_TASK_QUEUES

Default:

Queue('default', GEONODE_EXCHANGE, routing_key='default'),
Queue('geonode', GEONODE_EXCHANGE, routing_key='geonode'),
Queue('update', GEONODE_EXCHANGE, routing_key='update'),
Queue('cleanup', GEONODE_EXCHANGE, routing_key='cleanup'),
Queue('email', GEONODE_EXCHANGE, routing_key='email'),

A tuple with registered Queues.

CELERY_TASK_RESULT_EXPIRES

Default: 43200

This is a Celery setting.

CELERY_TASK_SERIALIZER

Default: json

This is a Celery setting.

CELERY_TIMEZONE
Default: UTC
Env: TIME_ZONE

This is a Celery setting.

CELERY_TRACK_STARTED

Default: True

This is a Celery setting.

CELERY_WORKER_DISABLE_RATE_LIMITS

Default: False

Disable the worker rate limits (number of tasks that can be run in a given time frame).

CELERY_WORKER_SEND_TASK_EVENTS

Default: False

Send events so the worker can be monitored by other tools.

CLIENT_RESULTS_LIMIT
Default: 20
Env: CLIENT_RESULTS_LIMIT

The Number of results per page listed in the GeoNode search pages. Different from API_LIMIT_PER_PAGE, affecting the number of items returned by the APIs.

CREATE_LAYER

Default: False

Enable the create layer plugin.

CKAN_ORIGINS

Default:

CKAN_ORIGINS = [{
    "label":"Humanitarian Data Exchange (HDX)",
    "url":"https://data.hdx.rwlabs.org/dataset/new?title={name}&notes={abstract}",
    "css_class":"hdx"
}]

A list of dictionaries that are used to generate the links to CKAN instances displayed in the Share tab. For each origin, the name and abstract format parameters are replaced by the actual values of the ResourceBase object (layer, map, document). This is not enabled by default. To enable, uncomment the following line: SOCIAL_ORIGINS.extend(CKAN_ORIGINS).

D
DATA_UPLOAD_MAX_NUMBER_FIELDS

Default: 100000

Maximum value of parsed attributes.

DEBUG

Default: False

One of the main features of debug mode is the display of detailed error pages. If your app raises an exception when DEBUG is True, Django will display a detailed traceback, including a lot of metadata about your environment, such as all the currently defined Django settings (from settings.py). This is a Django Setting

DEBUG_STATIC

Default: False

Load non minified version of static files.

DEFAULT_ANONYMOUS_DOWNLOAD_PERMISSION

Default: True

Whether the uploaded resources should downloadable by default.

DEFAULT_ANONYMOUS_VIEW_PERMISSION

Default: True

Whether the uploaded resources should be public by default.

DEFAULT_LAYER_FORMAT
Default: image/png
Env: DEFAULT_LAYER_FORMAT

The default format for requested tile images.

DEFAULT_MAP_CENTER
Default: (0, 0)
Env: DEFAULT_MAP_CENTER_X DEFAULT_MAP_CENTER_Y

A 2-tuple with the latitude/longitude coordinates of the center-point to use in newly created maps.

DEFAULT_MAP_CRS
Default: EPSG:3857
Env: DEFAULT_MAP_CRS

The default map projection. Default: EPSG:3857

DEFAULT_MAP_ZOOM
Default: 0
Env: DEFAULT_MAP_ZOOM

The zoom-level to use in newly created maps. This works like the OpenLayers zoom level setting; 0 is at the world extent and each additional level cuts the viewport in half in each direction.

DEFAULT_SEARCH_SIZE
Default: 10
Env: DEFAULT_SEARCH_SIZE

An integer that specifies the default search size when using geonode.search for querying data.

DEFAULT_WORKSPACE
Default: geonode
Env: DEFAULT_WORKSPACE

The standard GeoServer workspace.

DELAYED_SECURITY_INTERVAL
Default: 60
Env: DELAYED_SECURITY_INTERVAL

This setting only works when DELAYED_SECURITY_SIGNALS has been activated and the Celery worker is running. It defines the time interval in seconds for the Celery task to check if there are resources to be synchronized.

For more details see DELAYED_SECURITY_SIGNALS

DELAYED_SECURITY_SIGNALS
Default: False
Env: DELAYED_SECURITY_SIGNALS

This setting only works when GEOFENCE_SECURITY_ENABLED has been set to True and GeoNode is making use of the GeoServer BACKEND.

By setting this to True, every time the permissions will be updated/changed for a Layer, they won’t be applied immediately but only and only if either:

  1. A Celery Worker is running and it is able to execute the geonode.security.tasks.synch_guardian periodic task; notice that the task will be executed every DELAYED_SECURITY_INTERVAL seconds.
  2. A periodic cron job runs the sync_security_rules management command, or either it is manually executed from the Django shell.
  3. The user, owner of the Layer or with rights to change its permissions, clicks on the GeoNode UI button Sync permissions immediately

Warnung

Layers won’t be accessible to public users anymore until the Security Rules are not synchronized!

DISPLAY_COMMENTS
Default: True
Env: DISPLAY_COMMENTS

If set to False comments are hidden.

DISPLAY_RATINGS
Default: True
Env: DISPLAY_RATINGS

If set to False ratings are hidden.

DISPLAY_SOCIAL
Default: True
Env: DISPLAY_SOCIAL

If set to False social sharing is hidden.

DOWNLOAD_FORMATS_METADATA

Specifies which metadata formats are available for users to download.

Default:

DOWNLOAD_FORMATS_METADATA = [
    'Atom', 'DIF', 'Dublin Core', 'ebRIM', 'FGDC', 'ISO',
]
DOWNLOAD_FORMATS_VECTOR

Specifies which formats for vector data are available for users to download.

Default:

DOWNLOAD_FORMATS_VECTOR = [
    'JPEG', 'PDF', 'PNG', 'Zipped Shapefile', 'GML 2.0', 'GML 3.1.1', 'CSV',
    'Excel', 'GeoJSON', 'KML', 'View in Google Earth', 'Tiles',
]
DOWNLOAD_FORMATS_RASTER

Specifies which formats for raster data are available for users to download.

Default:

DOWNLOAD_FORMATS_RASTER = [
    'JPEG', 'PDF', 'PNG' 'Tiles',
]
E
EMAIL_ENABLE

Default: False

Options:

  • EMAIL_BACKEND

    Default: django.core.mail.backends.smtp.EmailBackend

    Env: DJANGO_EMAIL_BACKEND

  • EMAIL_HOST

    Default: localhost

  • EMAIL_PORT

    Default: 25

  • EMAIL_HOST_USER

    Default: ''

  • EMAIL_HOST_PASSWORD

    Default: ''

  • EMAIL_USE_TLS

    Default: False

  • DEFAULT_FROM_EMAIL

    Default: GeoNode <no-reply@geonode.org>

F
FREETEXT_KEYWORDS_READONLY
Default: False
Env: FREETEXT_KEYWORDS_READONLY

Make Free-Text Keywords writable from users. Or read-only when set to False.

G
GEOFENCE_SECURITY_ENABLED
Default: True (False is Test is true)
Env: GEOFENCE_SECURITY_ENABLED

Whether the geofence security system is used.

GEOIP_PATH
Default: Path to project
Env: PROJECT_ROOT

The local path where GeoIPCities.dat is written to. Make sure your user has to have write permissions.

GEONODE_APPS
If enabled contrib apps are used.
GEONODE_CLIENT_LAYER_PREVIEW_LIBRARY

Default: "mapstore"

The library to use for display preview images of layers. The library choices are:

"leaflet" "geoext"
GEONODE_EXCHANGE

Default:: Exchange("default", type="direct", durable=True)

The definition of Exchanges published by geonode. Find more about Exchanges at celery docs.

GEOSERVER_EXCHANGE

Default:: Exchange("geonode", type="topic", durable=False)

The definition of Exchanges published by GeoServer. Find more about Exchanges at celery docs.

GEOSERVER_LOCATION
Default: http://localhost:8080/geoserver/
Env: GEOSERVER_LOCATION

Url under which GeoServer is available.

GEOSERVER_PUBLIC_HOST
Default: SITE_HOST_NAME (Variable)
Env: GEOSERVER_PUBLIC_HOST

Public hostname under which GeoServer is available.

GEOSERVER_PUBLIC_LOCATION
Default: SITE_HOST_NAME (Variable)
Env: GEOSERVER_PUBLIC_LOCATION

Public location under which GeoServer is available.

GEOSERVER_PUBLIC_PORT
Default: 8080 (Variable)
Env: GEOSERVER_PUBLIC_PORT

Public Port under which GeoServer is available.

GEOSERVER_WEB_UI_LOCATION
Default: GEOSERVER_PUBLIC_LOCATION (Variable)
Env: GEOSERVER_WEB_UI_LOCATION

Public location under which GeoServer is available.

GROUP_PRIVATE_RESOURCES
Default: False
Env: GROUP_PRIVATE_RESOURCES

If this option is enabled, Resources belonging to a Group won’t be visible by others

H
HAYSTACK_FACET_COUNTS
Default: True
Env: HAYSTACK_FACET_COUNTS

If set to True users will be presented with feedback about the number of resources which matches terms they may be interested in.

L
LEAFLET_CONFIG
A dictionary used for Leaflet configuration.
LICENSES

Default:

{
    'ENABLED': True,
    'DETAIL': 'above',
    'METADATA': 'verbose',
}

Enable Licenses User Interface

LOCAL_SIGNALS_BROKER_URL
Default: memory://
LOCKDOWN_GEONODE
Default: False
Env: LOCKDOWN_GEONODE

By default, the GeoNode application allows visitors to view most pages without being authenticated. If this is set to True users must be authenticated before accessing URL routes not included in AUTH_EXEMPT_URLS.

LOGIN_URL
Default: {}account/login/'.format(SITEURL)
Env: LOGIN_URL

The URL where requests are redirected for login.

LOGOUT_URL
Default: {}account/login/'.format(SITEURL)
Env: LOGOUT_URL

The URL where requests are redirected for logout.

M
MAP_CLIENT_USE_CROSS_ORIGIN_CREDENTIALS
Default: False
Env: MAP_CLIENT_USE_CROSS_ORIGIN_CREDENTIALS

Enables cross origin requests for geonode-client.

MAX_DOCUMENT_SIZE
Default:2
Env: MAX_DOCUMENT_SIZE

Allowed size for documents in MB.

MISSING_THUMBNAIL

Default: geonode/img/missing_thumb.png

The path to an image used as thumbnail placeholder.

MODIFY_TOPICCATEGORY

Default: False

Metadata Topic Categories list should not be modified, as it is strictly defined by ISO (See: http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml and check the <CodeListDictionary gml:id=“MD_MD_TopicCategoryCode“> element).

Some customization is still possible changing the is_choice and the GeoNode description fields.

In case it is necessary to add/delete/update categories, it is possible to set the MODIFY_TOPICCATEGORY setting to True.

MONITORING_ENABLED

Default: False

Enable internal monitoring application (geonode.monitoring). If set to True, add following code to your local settings:

MONITORING_ENABLED = True
# add following lines to your local settings to enable monitoring
if MONITORING_ENABLED:
    INSTALLED_APPS + ('geonode.monitoring',)
    MIDDLEWARE_CLASSES + ('geonode.monitoring.middleware.MonitoringMiddleware',)

See geonode_monitoring for details.

MONITORING_DATA_TTL
Default: 7
Env: MONITORING_DATA_TTL

How long monitoring data should be stored in days.

MONITORING_DISABLE_CSRF
Default: False
Env: MONITORING_DISABLE_CSRF

Set this to true to disable csrf check for notification config views, use with caution - for dev purpose only.

N
NOTIFICATIONS_MODULE

Default: pinax.notifications

App used for notifications. (pinax.notifications or notification)

NOTIFICATION_ENABLED
Default: True
Env: NOTIFICATION_ENABLED

Enable or disable the notification system.

O
OAUTH2_PROVIDER
Django OAuth Toolkit provides a support layer for Django REST Framework. For settings visit: OAuth Toolkit settings
OGC_SERVER_DEFAULT_PASSWORD
Default: geoserver
Env: GEOSERVER_ADMIN_PASSWORD

The geoserver password.

OGC_SERVER_DEFAULT_USER
Default: admin
Env: GEOSERVER_ADMIN_USER

The geoserver user.

OGC_SERVER

Default: {} (Empty dictionary)

A dictionary of OGC servers and their options. The main server should be listed in the ‚default‘ key. If there is no ‚default‘ key or if the OGC_SERVER setting does not exist, Geonode will raise an Improperly Configured exception. Below is an example of the OGC_SERVER setting:

OGC_SERVER = {
  'default' : {
      'LOCATION' : 'http://localhost:8080/geoserver/',
      'USER' : 'admin',
      'PASSWORD' : 'geoserver',
  }
}
  • BACKEND

    Default: "geonode.geoserver"

    The OGC server backend to use. The backend choices are:

    'geonode.geoserver'

  • BACKEND_WRITE_ENABLED

    Default: True

    Specifies whether the OGC server can be written to. If False, actions that modify data on the OGC server will not execute.

  • DATASTORE

    Default: '' (Empty string)

    An optional string that represents the name of a vector datastore, where Geonode uploads are imported into. To support vector datastore imports there also needs to be an entry for the datastore in the DATABASES dictionary with the same name. Example:

    OGC_SERVER = {
      'default' : {
         'LOCATION' : 'http://localhost:8080/geoserver/',
         'USER' : 'admin',
         'PASSWORD' : 'geoserver',
         'DATASTORE': 'geonode_imports'
      }
    }
    
    DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.sqlite3',
         'NAME': 'development.db',
     },
     'geonode_imports' : {
         'ENGINE': 'django.contrib.gis.db.backends.postgis',
         'NAME': 'geonode_imports',
         'USER' : 'geonode_user',
         'PASSWORD' : 'a_password',
         'HOST' : 'localhost',
         'PORT' : '5432',
      }
     }
    
  • GEONODE_SECURITY_ENABLED

    Default: True

    A boolean that represents whether GeoNode’s security application is enabled.

  • LOCATION

    Default: "http://localhost:8080/geoserver/"

    A base URL from which GeoNode can construct OGC service URLs. If using GeoServer you can determine this by visiting the GeoServer administration home page without the /web/ at the end. For example, if your GeoServer administration app is at http://example.com/geoserver/web/, your server’s location is http://example.com/geoserver.

  • MAPFISH_PRINT_ENABLED

    Default: True

    A boolean that represents whether the MapFish printing extension is enabled on the server.

  • PASSWORD

    Default: 'geoserver'

    The administrative password for the OGC server as a string.

  • PRINT_NG_ENABLED

    Default: True

    A boolean that represents whether printing of maps and layers is enabled.

  • PUBLIC_LOCATION

    Default: "http://localhost:8080/geoserver/"

    The URL used to in most public requests from Geonode. This setting allows a user to write to one OGC server (the LOCATION setting) and read from a separate server or the PUBLIC_LOCATION.

  • USER

    Default: 'admin'

    The administrative username for the OGC server as a string.

  • WMST_ENABLED

    Default: False

    Not implemented.

  • WPS_ENABLED

    Default: False

    Not implemented.

  • TIMEOUT

    Default: 10

    The maximum time, in seconds, to wait for the server to respond.

OGP_URL
Default: http://geodata.tufts.edu/solr/select
Env: OGP_URL

Endpoint of geodata.tufts.edu getCapabilities.

OPENGRAPH_ENABLED

Default:: True

A boolean that specifies whether Open Graph is enabled. Open Graph is used by Facebook and Slack.

P
PINAX_NOTIFICATIONS_BACKENDS

Default: ("email", _EMAIL_BACKEND, 0),

Used notification backend. This is a pinax notification setting:

PINAX_NOTIFICATIONS_LOCK_WAIT_TIMEOUT
Default: -1
Env: NOTIFICATIONS_LOCK_WAIT_TIMEOUT

It defines how long to wait for the lock to become available. Default of -1 means to never wait for the lock to become available. This is a pinax notification setting:

PINAX_NOTIFICATIONS_QUEUE_ALL
Default: -1
Env: NOTIFICATIONS_LOCK_WAIT_TIMEOUT

By default, calling notification.send will send the notification immediately, however, if you set this setting to True, then the default behavior of the send method will be to queue messages in the database for sending via the emit_notices command. This is a pinax notification setting:

PROXY_ALLOWED_HOSTS

Default: () (Empty tuple)

A tuple of strings representing the host/domain names that GeoNode can proxy requests to. This is a security measure to prevent an attacker from using the GeoNode proxy to render malicious code or access internal sites.

Values in this tuple can be fully qualified names (e.g. ‚www.geonode.org‘), in which case they will be matched against the request’s Host header exactly (case-insensitive, not including port). A value beginning with a period can be used as a subdomain wildcard: .geonode.org will match geonode.org, www.geonode.org, and any other subdomain of geonode.org. A value of ‚*‘ will match anything and is not recommended for production deployments.

PROXY_URL

Default /proxy/?url=

The URL to a proxy that will be used when making client-side requests in GeoNode. By default, the internal GeoNode proxy is used but administrators may favor using their own, less restrictive proxies.

PYCSW
A dict with pycsw’s configuration. Of note are the sections metadata:main to set CSW server metadata and metadata:inspire to set INSPIRE options. Setting metadata:inspire['enabled'] to true will enable INSPIRE support. Server level configurations can be overridden in the server section. See http://docs.pycsw.org/en/latest/configuration.html for full pycsw configuration details.
R
RABBITMQ_SIGNALS_BROKER_URL

Default: amqp://localhost:5672

The Rabbitmq endpoint

REDIS_SIGNALS_BROKER_URL

Default: redis://localhost:6379/0

The Redis endpoint.

REGISTRATION_OPEN

Default: False

A boolean that specifies whether users can self-register for an account on your site.

RESOURCE_PUBLISHING

Default: False

By default, the GeoNode application allows GeoNode staff members to publish/unpublish resources. By default, resources are published when created. When this setting is set to True the staff members will be able to unpublish a resource (and eventually publish it back).

S
S3_MEDIA_ENABLED
Default: False
Env: S3_MEDIA_ENABLED

Enable/disable Amazon S3 media storage.

S3_STATIC_ENABLED
Default: False
Env: S3_STATIC_ENABLED

Enable/disable Amazon S3 static storage.

SEARCH_FILTERS

Default:

'TEXT_ENABLED': True,
'TYPE_ENABLED': True,
'CATEGORIES_ENABLED': True,
'OWNERS_ENABLED': True,
'KEYWORDS_ENABLED': True,
'H_KEYWORDS_ENABLED': True,
'T_KEYWORDS_ENABLED': True,
'DATE_ENABLED': True,
'REGION_ENABLED': True,
'EXTENT_ENABLED': True,

Enabled Search Filters for filtering resources.

SECURE_BROWSER_XSS_FILTER
Default: True
Env: SECURE_BROWSER_XSS_FILTER

If True, the SecurityMiddleware sets the X-XSS-Protection: 1; mode=block header on all responses that do not already have it. This is Djangosettings.https://docs.djangoproject.com/en/2.1/ref/settings/#secure-browser-xss-filter

SECURE_CONTENT_TYPE_NOSNIFF
Default: True
Env: SECURE_CONTENT_TYPE_NOSNIFF

If True, the SecurityMiddleware sets the X-Content-Type-Options: nosniff header on all responses that do not already have it. This is Django settings:

SECURE_HSTS_INCLUDE_SUBDOMAINS
Default: True
Env: SECURE_HSTS_INCLUDE_SUBDOMAINS

This is Django settings: https://docs.djangoproject.com/en/2.1/ref/settings/#secure-hsts-include-subdomains

SECURE_HSTS_SECONDS
Default: 3600
Env: SECURE_HSTS_SECONDS

This is Django settings: If set to a non-zero integer value, the SecurityMiddleware sets the HTTP Strict Transport Security header on all responses that do not already have it.

SECURE_SSL_REDIRECT
If True, the SecurityMiddleware redirects all non-HTTPS requests to HTTPS (except for those URLs matching a regular expression listed in SECURE_REDIRECT_EXEMPT). This is Django settings:
SERVICE_UPDATE_INTERVAL
Default: 0

The Interval services are updated.

SESSION_EXPIRED_CONTROL_ENABLED
Default: False
Env: SESSION_EXPIRED_CONTROL_ENABLED

By enabling this variable, a new middleware geonode.security.middleware.SessionControlMiddleware will be added to the MIDDLEWARE_CLASSES. The class will check every request to GeoNode and it will force a log out whenever one of the following conditions occurs:

  1. The OAuth2 Access Token is not valid anymore or it is expired.

    Warnung

    The Access Token might be invalid for various reasons. Usually a misconfiguration of the OAuth2 GeoServer application. The latter is typically installed and configured automatically at GeoNode bootstrap through the default fixtures.

  2. The user has been deactivated for some reason; an Admin has disabled it or its password has expired.

Whenever the middleware terminates the session and the user forced to log out, a message will appear to the GeoNode interface.

SHOW_PROFILE_EMAIL

Default: False

A boolean which specifies whether to display the email in the user’s profile.

SITE_HOST_NAME
Default: localhost
Env: SITE_HOST_NAME

The hostname used for GeoNode.

SITE_HOST_PORT
Default: 8000
Env: SITE_HOST_PORT

The Site hostport.

SITEURL

Default: 'http://localhost:8000/'

A base URL for use in creating absolute links to Django views and generating links in metadata.

SKIP_PERMS_FILTER
Default: False
Env: SKIP_PERMS_FILTER

If set to true permissions prefiltering is avoided.

SOCIALACCOUNT_ADAPTER

Default: geonode.people.adapters.SocialAccountAdapter

This is a django-allauth setting It allows specifying a custom class to handle authentication for social accounts.

SOCIALACCOUNT_AUTO_SIGNUP

Default: True

Attempt to bypass the signup form by using fields (e.g. username, email) retrieved from the social account provider. This is a Django-allauth setting:

SOCIALACCOUNT_PROVIDERS

Default:

{
    'linkedin_oauth2': {
        'SCOPE': [
            'r_emailaddress',
            'r_basicprofile',
        ],
        'PROFILE_FIELDS': [
            'emailAddress',
            'firstName',
            'headline',
            'id',
            'industry',
            'lastName',
            'pictureUrl',
            'positions',
            'publicProfileUrl',
            'location',
            'specialties',
            'summary',
        ]
    },
    'facebook': {
        'METHOD': 'oauth2',
        'SCOPE': [
            'email',
            'public_profile',
        ],
        'FIELDS': [
            'id',
            'email',
            'name',
            'first_name',
            'last_name',
            'verified',
            'locale',
            'timezone',
            'link',
            'gender',
        ]
    },
}

This is a django-allauth setting It should be a dictionary with provider specific settings

SOCIALACCOUNT_PROFILE_EXTRACTORS

Default:

{
    "facebook": "geonode.people.profileextractors.FacebookExtractor",
    "linkedin_oauth2": "geonode.people.profileextractors.LinkedInExtractor",
}

A dictionary with provider ids as keys and path to custom profile extractor classes as values.

SOCIAL_BUTTONS

Default: True

A boolean which specifies whether the social media icons and JavaScript should be rendered in GeoNode.

SOCIAL_ORIGINS

Default:

SOCIAL_ORIGINS = [{
    "label":"Email",
    "url":"mailto:?subject={name}&body={url}",
    "css_class":"email"
}, {
    "label":"Facebook",
    "url":"http://www.facebook.com/sharer.php?u={url}",
    "css_class":"fb"
}, {
    "label":"Twitter",
    "url":"https://twitter.com/share?url={url}",
    "css_class":"tw"
}, {
    "label":"Google +",
    "url":"https://plus.google.com/share?url={url}",
    "css_class":"gp"
}]

A list of dictionaries that are used to generate the social links displayed in the Share tab. For each origin, the name and URL format parameters are replaced by the actual values of the ResourceBase object (layer, map, document).

SRID

Default:

{
'DETAIL': 'never',
}
T
TASTYPIE_DEFAULT_FORMATS

Default: json

This setting allows you to globally configure the list of allowed serialization formats for your entire site. This is a tastypie setting:

THEME_ACCOUNT_CONTACT_EMAIL

Default: 'admin@example.com'

This email address is added to the bottom of the password reset page in case users have trouble unlocking their account.

THESAURI

Default = []

A list of Keywords thesauri settings: For example THESAURI = [{‚name‘:‘inspire_themes‘, ‚required‘:True, ‚filter‘:True}, {‚name‘:‘inspire_concepts‘, ‚filter‘:True}, ]

TWITTER_CARD

Default:: True

A boolean that specifies whether Twitter cards are enabled.

TWITTER_SITE

Default:: '@GeoNode'

A string that specifies the site to for the twitter:site meta tag for Twitter Cards.

TWITTER_HASHTAGS

Default:: ['geonode']

A list that specifies the hashtags to use when sharing a resource when clicking on a social link.

U
UNOCONV_ENABLE
Default: False
Env: UNOCONV_ENABLE
UPLOADER

Default:

{
    'BACKEND' : 'geonode.rest',
    'OPTIONS' : {
        'TIME_ENABLED': False,
    }
}

A dictionary of Uploader settings and their values.

  • BACKEND

    Default: 'geonode.rest'

    The uploader backend to use. The backend choices are:

    'geonode.importer' 'geonode.rest'

    The importer backend requires the GeoServer importer extension to be enabled.

  • OPTIONS

    Default:

    'OPTIONS' : {
        'TIME_ENABLED': False,
    }
    
    • TIME_ENABLED

      Default: False

      A boolean that specifies whether the upload should allow the user to enable time support when uploading data.

USER_MESSAGES_ALLOW_MULTIPLE_RECIPIENTS
Default: True
Env: USER_MESSAGES_ALLOW_MULTIPLE_RECIPIENTS

Set to true to have multiple recipients in /message/create/

X
X_FRAME_OPTIONS

Default: 'ALLOW-FROM %s' % SITEURL

This is a Django setting

Customise the Look and Feel

GeoNode Themes

Theming your GeoNode Project

GeoNode permissions

Permissions

Permissions in GeoNode are set per resource, where a resource can be a layer, a map, a document or a service. The way the permissions are set is the same for all of them.

Warnung

GeoNode has a set of default permissions that are applied on resource creation when you don’t explicitly declare them. This is particularly relevant when creating and saving a map, where you won’t have the possibility to set the its permissions during the creation phase. GeoNode can be tuned to make sure that by default the new created resource are not public, this can be done by changing two settings, see Default view permissions and Default download permissions

Single Resource permissions
Resource permissions can be generally set from the resource detail page. The following figure shows how to open the dialog to set permissions on a layer, the same concept applies to documents and maps.
_images/change_layer_permissions.png

Change Layer Permissions

The dialog for setting the permission allow a granular selection of each permission type to be applied for users and/or groups, each permission type is grouped in tabs that are expanded on click.
The text boxes have an autosuggest feature to help the compilation of user names and groups, it starts upon typing.
_images/resource_permissions_dialogue.png

Resource Permission Dialogue

You can set the following types of permissions:

  • View allows to view the layer;
  • Download allows to download the layer;
  • Change Metadata allows to change the layer metadata;
  • Edit Data allows to change attributes and properties of the layers features;
  • Edit Style allows to change the layer style;
  • Manage allows to update, delete, change permissions, publish and unpublish the layer.

Warnung

When assigning permissions to a group, all the group members will have those permissions. Be careful in case of editing permissions.

Bulk permissions
GeoNode offers the possibility to set permissions in bulk, this can be done in any list page.
In order to set bulk permissions you have first to fill the shopping cart with the resources you are interested with by clicking the + button on the resource snippet.
_images/add_to_shopping_cart.png

Add Resource To Shopping Cart

Once happy with the selection you can click the Set Permissions button under the shopping cart to open the permissions dialogue that will apply the chosen permission to all selected resources.
_images/shopping_cart_permissions.png

Sopping Cart Permissions

Monitoring

GeoNode Backup and Restore

GeoNode Full Backup and Restore

GeoNode selectively Export/Import Layers

Viewer and Hooksets

GXP

MapStore 2

Leaflet

GeoNode Components and Architecture

Overview

Django

WebServers

Apache
NGINX

GeoServer

Databases

Security with OAuth2

Hardening GeoNode

Publish on HTTPS

OAuth2 Fixtures Update and Base URL Migration

GeoNode Security Subsystem

OAuth2 Tokens and Sessions

Social Login

Overview

Configuration

Linkedin

Facebook

LDAP Configuration

Library Dependencies

Installation

Configure

GeoNode Django Contrib Apps

GeoSites

GeoTiffio

Datastore_shards

WorldMap

GeoNode Management Commands

GeoNode Upgrade from older versions

Upgrade from 2.8.x

Upgrade from 2.7.x

Upgrade from 2.6.x

Upgrade from 2.4.x

GeoNode Async Signals

Supervisord and Systemd

Celery

Rabbitmq and Redis

Participate in the Discussion

Report Problems on the Issue Tracking System

Write Documentation

Contribute to Translations

Behind the scenes, GeoNode is using a software called GNU gettext further text-based translation files (django.po and djangojs.po) for translating content. If you’d like to know more about how all of this works you’ll find a full description at the Django Docs. Following will concentrate on what is needed for edit existing or contribute a new translation.

Download the translation File

All language files live in a specific subfolder called after their iso code within the locale folder. For example, for French, the main translation file called django.po can be downloaded from here.

Next, to download the language file, we need to install an OpenSource Editor called „poedit“ for editing from: https://poedit.net/download

Translation process

Make a copy of the file before starting the translation so that you can revert in case of errors.

After installing ‚poedit‘, you should be able to double click on the ‚.po‘ file to open it. Poedit’s interface should look similar to the one shown in the picture below:

Poedit interface
Identifying translation issues

From the ‚poedit‘ menu ‚View‘, make sure that ‚Entries with Errors first‘ is checked:

Validate translation

Next click on ‚Validate Translations‘ from the ‚Catalogue‘ menu:

Validate translation

‚Poedit‘ will place translations which may require additional consideration on top of the list. A warning mark means that the interpretation might be not entirely consistent with the original phrase. This is not necessarily an error, just a warning asking the user to double check.

Poedit warning

Following to marked phrases, ‚Poedit‘ will show untranslated sentences. When clicking on one, it can be translated through the bottom panel.

During translation pay special attention to the button saying ‚needs work‘. In case this button is checked, the phrase will be marked as ‚fuzzy‘ and ignored in GeoNode.

phrase needs work
Saving translations

As soon as the translation is complete, it must be saved and compiled. Saving is straightforward. All you have to do is clicking the ‚Save‘ button from the top menu.

As a last step we compile the file. Compiling the translation means to create a binary „.mo“ file out of the edited „.po“ file. To do so, click on „Compile to MO“

save and compile

Poedit will ask where to write the „.mo“ file to, by default, this is the same folder as the edited ‚.po‘ resides in. The ‚.mo‘ file can be overwritten if necessary.

Push translations to the repository

For sharing our updates, we must upload the files to GeoNode’s GitHub repository. Go to the correct file position which, in case for French is: https://github.com/GeoNode/geonode/tree/master/geonode/locale/fr/LC_MESSAGES

Click on „Upload Files“

upload files

Drag the updated files into the Upload form, and write a title/description of the changes

drag files

Click on „Create a new branch for this commit…“ and then click on the green button.

drag files

The last step will create a PULL REQUEST which can be reviewed and then approved by a developer.

Activate updated translation at your server

Once the files have been pushed to GitHub, it will be necessary to update your server to respect changed files.

At this time, this can be done only by an administrator. From the server ‚shell‘ following commands need to be executed:

workon geonode
cd /opt/geonode
DJANGO_SETTINGS_MODULE=geonode.settings python -W ignore manage.py collectstatic --noinput
sudo service uwsgi restart
Texts not listed in .po files

In case you find a template output without corresponding translation you can add it as follows:

Identify the corresponding template file which is responsible for outputting the text. Add a {% trans "TEXT" %} tag. Save the template file and run the following:

django-admin makemessages -l en -d django -e "html,txt,py" -i docs
django-admin makemessages -l en -d djangojs -e "js" -i docs -i node_modules -i lib

This will update the english .po file. also to update the language which should be edited by settings the -l fr parameter. Continue with updating the .po file as described above.

Provide Translations

Write Code

How to Develop