Quick Installation Guide

The following is a quick guide to get GeoNode up and running in most common operating systems. This is meant to be run on a fresh machine with no previously installed packages or GeoNode versions.

Linux

Ubuntu (standard deployment)

The easiest way to get the .deb is to install it using APT, the standard installation management tool for Ubuntu. The current release, 2.8 is available only for Ubuntu 16.04.

These instructions have been tested on a fresh install of Ubuntu 16.04 64 bit server edition. Please ensure the latest packages are installed with:

sudo apt-get update; sudo apt-get upgrade

Amongst other things, this will ensure that the software-properties-common package is installed, which is required to make the add-apt-repository command used below available.

The steps to install geonode and all dependencies in Ubuntu 16.04 are as follows:

  1. Set up the GeoNode PPA repository (you only need to do this once; the repository will still be available for upgrades later):

    sudo add-apt-repository ppa:geonode/stable
    

    Note

    If you want to try latest unstable version of GeoNode, add the repository:

    sudo add-apt-repository ppa:geonode/testing

  2. Install the geonode package and dependencies:

    sudo apt-get update; sudo apt-get upgrade; sudo apt-get autoremove
    sudo apt-get install geonode
    
  3. Set the correct IP address (NB: the first command below looks up the IP address automatically):

    .. note:: If you want to run geonode on your local instance, just run::
    

    sudo geonode-updateip -p localhost

    IP_ADDRESS=$(ip route get 8.8.8.8 | awk ‘{print $NF; exit}’) sudo geonode-updateip -p $IP_ADDRESS

    Note

    If geoserver and geonode are not on the same machine then add your local geonode address:

    sudo geonode-updateip -p $IP_ADDRESS -l yourlocaladdress

    NB: The IP address must be set to enable access from another machine, e.g. the host machine if geonode is installed in a virtual machine.

  4. Access geonode from your web browser, using the IP address from step 3 above. The neonode web applicaiton should be displayed and you can log in using the superuser details entered immediately above:

Note

If you want to access geonode on your local instance, just go to:

http://localhost/

http://[IP_ADDRESS]/

NB: With this installation method you use sudo geonode xxxx in place of any python manage.py xxx command referred to in documentation. For example, try:

sudo geonode help

For further information, read the Admin Docs at http://docs.geonode.org/en/master/#for-administrators.

Ubuntu (for development)

This option installs geonode in a virtual environment. This option is very useful in case you want to develop using Ubuntu (tested on Ubuntu 16.04 LTS):

# Install Ubuntu dependencies
sudo apt-get update
sudo apt-get install python-virtualenv python-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev libjpeg-dev libpq-dev gdal libgdal-dev git default-jdk

# Install Java 8 (needed by latest GeoServer 2.9)
sudo apt-add-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

# Create and activate the virtulenv
virtualenv --no-site-packages env
source env/bin/activate

# git clone geonode
git clone https://github.com/GeoNode/geonode
cd geonode

# Install pip dependencies
pip install -r requirements.txt --upgrade
pip install -e . --upgrade --no-cache

sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
sudo apt-get install gdal-bin

# install the correct PyGDAL version
gdal-config --version | cut -c 1-5 | xargs -I % pip install 'pygdal>=%.0,<=%.999'

# if the command cannot install a suitable version, be sure to install at least the closer major one e.g. 2.1.2 -> 2.1.2.3
# gdalinfo --version
# pip install pygdal==`gdal-config --version`

You can now setup and start GeoNode:

# Paver setup
paver setup
paver sync
paver start

In case you want to be involved in static files development:

# The following lines must be run only the first time
sudo apt-get install -y nodejs, npm

Rebuild libraries through:

cd geonode/static

# The following lines must be run only the first time
npm install --save-dev
npm install bower --save-dev
npm install grunt-cli --save-dev
npm install grunt-contrib-jshint --save-dev
npm install grunt-contrib-less --save-dev
npm install grunt-contrib-concat --save-dev
npm install grunt-contrib-copy --save-dev
npm install grunt-text-replace --save-dev
npm install grunt-contrib-uglify --save-dev
npm install grunt-contrib-cssmin --save-dev
npm install grunt-contrib-watch --save-dev
npm install -g grunt-cli

# Later you can just do the following
bower cache clean
bower update
grunt production

Warning

If you get an error like /usr/bin/env: node: No such file or directory while running bower, try to execute the following command:

sudo ln -s /usr/bin/nodejs /usr/bin/node

On a production environment, remember to refresh also the “static_root” folder:

python manage.py collectstatic --clear -i site-packages* -i .components* -i node_modules* --noinput

Windows, OSX and others

Windows

It is now available an automatic installer for Windows systems which configures GeoNode with PostgreSQL DB and few sample layers on a few steps. See detailed instructions and steps of the GeoNode Windows Installer at section Windows Binary Installer.

If you have different needs or just want to configure the GeoNode environment manually, please continue reading the guide below.

To install in Windows it is assumed you’re familiar with python development and virtualenv on Windows and that you’re familiar with the windows command prompt. You will need the follow prerequisites installed:

Install and configure from the windows command prompt, if you don’t already have python virtualenv installed, then do it now:

easy_install virtualenv

Create virtualenv and activate it:

cd <Directory to install the virtualenv & geonode into>
virtualenv <name of virtualenv folder>
virtualenv <name of virtualenv folder>\scripts\activate

Clone GeoNode:

git clone https://github.com/GeoNode/geonode.git

cd geonode

Install Python native dependencies, this command will look for and install binary distributions (pip install will attempt to build and fail):

pip install paver
paver win_install_deps

Install GeoNode in the local virtualenv:

pip install -e . --upgrade --no-cache

You have two options to set up the GEOS and GDAL libraries. Either create an environment variable or add the variables to your local_settings.py file as below.

GEOS_LIBRARY_PATH=”C:/path/to/geos_c.dll” GDAL_LIBRARY_PATH=”C:/path/to/gdal111.dll”

The GEOS and GDAL libraries can be found in your <virtualenv directory>Libsite-packagesGDAL-1.11.0-py2.7-win32.eggosgeofolder.

Setup GeoServer:

paver setup

Start the servers. You have the option to set the JAVA_HOME environment variable or use the –java_path.:

paver start --java_path="C:\path\to\java\java.exe"

or if you set your JAVA_HOME environment variables (e.g. JAVA_HOME=”C:Program FilesJavajdk1.7.0_75”):

paver start

Once the package is installed, please consult Custom Installation Guide to learn how to create an account for the admin user and tweak the settings to get more performance.

OSX

The recommended install method in these platforms is to use a virtualization solution, like `Virtual Box`_, install the latest Ubuntu Linux and then proceed with the steps mentioned above. Some GeoNode developers prefer to use Vagrant - a VirtualBox wrapper, the steps for this are detailed below. The Vagrant quickstart guide shows how to get a Linux VM configured in most operating systems. However, if you would like to develop natively on Mac OS X please follow the following instructions.

You may need brew install various dependencies:

mkdir -p ~/pyenv
virtualenv ~/pyenv/geonode
source ~/pyenv/geonode/bin/activate
git clone https://github.com/GeoNode/geonode
cd geonode
pip install lxml
pip install pyproj
pip install nose
pip install httplib2
pip install shapely
pip install pillow
pip install paver

Node and tools required for static files development:

brew install node
npm install -g bower
npm install -g grunt-cli

Rebuild libraries through:

cd geonode/static
bower cache clean
bower update
grunt production

On a production environment, remember to refresh also the “static_root” folder:

python manage.py collectstatic --clear -i site-packages* -i .components* -i node_modules* --noinput

Install pip dependencies:

pip install -e . --upgrade --no-cache

Paver handles dependencies for Geonode, first setup (this will download and update your python dependencies - ensure you’re in a virtualenv):

paver setup
paver start

Optional: To generate document thumbnails for PDFs and other ghostscript file types, download ghostscript: https://www.macupdate.com/app/mac/9980/gpl-ghostscript:

sudo apt-get install imagemagick
brew install imagemagick
pip install Wand==0.3.5

Once fully started, you should see a message indicating the address of your geonode. The default username and password are admin and admin:

Development GeoNode is running at http://localhost:8000/
The GeoNode is an unstoppable machine
Press CTRL-C to shut down

Before starting GeoNode (paver start), you could test your installation by running tests:

paver test
paver test_integration

In case you want to build yourself the documentation, you need to install Sphinx and the run ‘make html’ from within the docs directory:

pip install Sphinx
cd docs
make html

You can eventually generate a pdf containing the whole documentation set. For this purpose, if using Ubuntu 12.4 you will need to install the texlive-full package:

sudo apt-get install texlive-full
make latexpdf

Note

When running virtualenv venv the --system-site-packages option is not required. If not enabled, the bootstrap script will sandbox your virtual environment from any packages that are installed in the system, useful if you have incompatible versions of libraries such as Django installed system-wide. On the other hand, most of the times it is useful to use a version of the Python Imaging Library provided by your operating system vendor, or packaged other than on PyPI. When in doubt, however, just leave this option out.

CentOS/RHEL and other *nix distros

We recommend you to download the latest release and modify the included install.sh and support/config.sh. GeoNode has been installed in CentOS/RHEL using this mechanism.

Once the package is installed, please consult the Custom Installation Guide to learn how to create the admin user and tweak the settings to get more performance.