Skip to content

52North/geonode-plasticops

 
 

Repository files navigation

Geonode Installation

This document will guide you through the installation of GeoNode, a spatial content management system. The needed components are available as Docker images and will be set up and run via the docker compose tool.

Component Overview

Here is a short overview of the installed components and how they are connected.

GeoNode Architecture

The components are:

  • Django: The actual GeoNode component. It exposes a pyCSW API and the GeoNode API.
  • Celery: Celery forms the asynchronuous task queue of GeoNode.
  • GeoServer: GeoServer is the backend server of GeoNode for sharing geospatial data. It exposes OGC APIs such as WMS, WFS, etc.
  • Nginx: Nginx serves as advanced load balancer, web server and reverse proxy to all GeoNode components.
  • PostgreSQL: GeoNode and GeoServer are using PostgreSQL with the geospatial extension PostGIS as the database.

Setup Project

Make sure you have installed git, Docker and docker compose.

Clone the repository containing a GeoNode Docker setup and change directory your local working copy:

git clone --recurse-submodules https://github.com/GeoNodeUserGroup-DE/geonode-blueprint-docker geonode
cd geonode

Configuration

💡 Note

Settings (e.g. geodatabase parameters) are mainly configured in the .env file. To review in-built default settings of an image, run the env command on an image. For example docker run 52north/geonode-geoserver env | sort.

For a complete set of available options take the GeoNode Settings documentation as a reference.

The containers get configured during creation via environment variables. The geonode/settings.py settings module takes further configuration of the GeoNode containers (django and celery) and aligns some names with those documented.

Copy the sample.env to .env and make your changes (.env is not versioned). For a quick start taking default values you can run docker compose up -d --env-file=sample.env.

Have a look at the Ways to set environment variables in Compose documentation.

TLS Config

If you want to configure a TLS certificate, you can mount key and cert as pems in the geonode service within the docker-compose.yml file. Uncomment the corresponding lines:

volumes:
   - nginx-confd:/etc/nginx
   - statics:/mnt/volumes/statics
   # Link to a custom certificate here
   #- <path-to-cert>.pem:/geonode-certificates/autoissued/fullchain.pem
   #- <path-to-key>.pem:/geonode-certificates/autoissued/privkey.pem

Start and Run

Docker-Compose Basics

Run docker compose up -d to start all geonode components. Review all started components by executing docker compose ps. You can follow logs via docker compose logs -f and optionally pass a service to only follow a service's log.

Stop all components via docker compose down, and pass a -v flag to clean up all volumes (CAUTION: removes all persisted data).

For more features and available commands, docker compose --help, or read the docker compose CLI documentation.

Add a Service Unit

When running GeoNode on a systemd-based Linux, you may want to add a service unit:

/etc/systemd/system/geonode.service

[Unit]
Description=GeoNode Docker Installation

[Service]
Type=oneshot
ExecStart=docker compose up -d /path/to/workingcopy

[Install]
WantedBy=multi-user.target

Then reload the systemd daemon:

systemctl daemon-reload

And enable GeoNode start on each boot:

systemctl enable geonode.service

Check the service status:

systemctl status geonode.service

About

PlasticOps+ GeoNode Installation

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 76.0%
  • Python 13.1%
  • Dockerfile 6.7%
  • Shell 4.2%