GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
JavaScript Python HTML CSS XSLT Shell
Switch branches/tags
debian/2.8.0+thefinal0 debian/2.8.0+rc13 debian/2.8.0+rc12 debian/2.8.0+rc11 debian/2.8.0+rc10 debian/2.8.0+rc9 debian/2.8.0+rc8 debian/2.8.0+rc7 debian/2.8.0+rc6 debian/2.8.0+rc5 debian/2.8.0+rc4 debian/2.8.0+rc3 debian/2.8.0+rc2 debian/2.8.0+rc1 debian/2.8.0+rc0 debian/2.7.5+dev20180124154147 debian/2.7.5+dev20180123112419 debian/2.7.4+dev20171114153121 debian/2.7.2+dev20171013181704 debian/2.7.1+dev20171013111656 debian/2.7.0+thefinal0 debian/2.6.3+thefinal0 debian/2.6.2+thefinal0 debian/2.6.1+thefinal0 debian/2.6.0+thefinal0 debian/2.6.0+rc1 debian/2.6.0+beta1 debian/2.6.0+alpha1 debian/2.5.15+thefinal0 debian/2.5.14+thefinal0 debian/2.5.13+thefinal0 debian/2.5.12+thefinal0 debian/2.5.11+thefinal0 debian/2.5.10+thefinal0 debian/2.5.9+thefinal5 debian/2.5.9+thefinal4 debian/2.5.9+thefinal3 debian/2.5.9+thefinal2 debian/2.5.9+thefinal1 debian/2.5.9+thefinal0 debian/2.5.9+dev20170116091118 debian/2.5.7+thefinal0 debian/2.5.6+thefinal0 debian/2.5.5+thefinal0 debian/2.5.4+thefinal0 debian/2.5.3+thefinal0 debian/2.5.2+thefinal0 debian/2.5.1+thefinal0 debian/2.5.0+thefinal0 debian/2.4.1+thefinal1 debian/2.4.0+thefinal0 debian/2.4.0+rc4 debian/2.4.0+rc3 debian/2.4.0+rc2 debian/2.4.0+rc1 debian/2.4.0+dev20141024171719 debian/2.4.0+beta28 debian/2.4.0+beta27 debian/2.4.0+beta26 debian/2.4.0+beta25 debian/2.4.0+beta24 debian/2.4.0+beta23 debian/2.4.0+beta22 debian/2.4.0+beta21 debian/2.4.0+beta20 debian/2.4.0+beta19 debian/2.4.0+beta18 debian/2.4.0+beta17 debian/2.4.0+beta16 debian/2.4.0+beta15 debian/2.4.0+beta14 debian/2.4.0+beta13 debian/2.4.0+beta12 debian/2.4.0+beta11 debian/2.4.0+beta10 debian/2.4.0+beta9 debian/2.4.0+beta8 debian/2.4.0+beta7 debian/2.4.0+beta6 debian/2.4.0+beta5 debian/2.4.0+beta4 debian/2.4.0+beta3 debian/2.4.0+beta2 debian/2.4.0+beta1 debian/2.4.0+alpha38 debian/2.4.0+alpha37 debian/2.4.0+alpha36 debian/2.4.0+alpha35 debian/2.4.0+alpha34 debian/2.4.0+alpha33 debian/2.4.0+alpha32 debian/2.4.0+alpha31 debian/2.4.0+alpha30 debian/2.4.0+alpha29 debian/2.4.0+alpha28 debian/2.4.0+alpha27 debian/2.4.0+alpha26 debian/2.4.0+alpha25 debian/2.4.0+alpha24 debian/2.4.0+alpha23
Nothing to show
Clone or download
afabiani Merge pull request #3852 from t-book/master
Added explanations regarding pygdal install #3784
Latest commit 02ae1b8 Jul 21, 2018
Failed to load latest commit information.
.tx flake8 on services/ Nov 14, 2014
docs Merge branch 'master' into master Jul 21, 2018
geonode Fix #3853 Jul 21, 2018
package - Packagin scripts updates Jul 5, 2018
scripts fix GeoNode DB name in docker env Jul 16, 2018
.dockerignore Fix QGIS Server settings sample Apr 6, 2018
.env - Backport stable fixes from master branch Mar 27, 2018
.gitignore Merge with master Apr 23, 2018
.readthedocs.yml fix READTHEDOCS Apr 11, 2018
.travis.yml - pep8 issues May 24, 2018
AUTHORS add Sasha Hart to AUTHORS per nomination Nov 30, 2016 Nov 30, 2016
CONTRIBUTING fix filename Aug 26, 2016
Dockerfile - Docker make use of GeoServer Importer Uploader Jun 25, 2018 previous adjustments to the and MANIFEST.ini were not allowi… Oct 26, 2016
Makefile - Backport stable fixes from master branch Mar 27, 2018
README - pep8 issues May 24, 2018
celerybeat-schedule Merge May 15, 2018
dev_config.yml [Closes #3711] Update GeoServer to 2.13 version Apr 6, 2018
docker-compose-geoserver-server.yml - Test GeoServer Integration Tests running with Docker Compose May 14, 2018
docker-compose-qgis-server.yml [Closes #3528] [Backport 2.9.x stable fixes to 2.7.x] - Prepare for 2… Dec 22, 2017
docker-compose.override.yml - Docker Compose improvs May 11, 2018
docker-compose.yml - Docker make use of GeoServer Importer Uploader Jun 25, 2018 - Backport stable fixes from master branch Mar 27, 2018 - Backport stable fixes from master branch Mar 27, 2018
flake8.txt - Returns referencing infos on Layers Upload Sep 4, 2017
license.txt adding GPL license (fixes #543) Jul 27, 2010 - GeoNode Stable and Updated 2.7.x Branch / NO RabbitMQ Notification… Apr 28, 2017 [Fixes #3824] Manage style page show style name instead of title Jun 6, 2018 - Fix GeoNode 2.6.3 to 2.7.x+ Migration (#3547) Jan 22, 2018
pytest.ini - Backport stable fixes from master branch Mar 27, 2018
requirements.txt - MapLoom GIS client hooksets (#3851) Jul 21, 2018
requirements_docs.txt - MapLoom GIS client hooksets (#3851) Jul 21, 2018
requirements_tests.txt test-specific requirements: twisted May 8, 2018
setup.cfg [Ready] Refactor remote services 27x (#3657) Mar 15, 2018 Merge with master Apr 23, 2018 add missing ast import Jul 4, 2018
uwsgi.ini - Tentative fix doscker-compose vars Jun 25, 2018


.. image::
    :alt: Coverage Badge

.. image::

.. image::
    :alt: Build Status

GeoNode Support

To get support, give feedback and suggestions please use the GeoNode official channels, the users mailing list: and the developers mailing list:

This repository is used to track code changes and GeoNode issues, please DON'T open new issues to ask for support.

GeoNode Installation

If you just want to try GeoNode, it is recommended to use Ubuntu 16.04 and install the latest stable release of GeoNode.::

    sudo add-apt-repository ppa:geonode/stable
    sudo apt-get update
    sudo apt-get install geonode

If instead, you are interested in doing development on the source code, here are the instructions:

Development Installations

.. warning:: Outdated instructuions. Please refer to

Docker Usage

.. warning:: Outdated instructuions. Please refer to

If you want to use Docker you can now::

    # build the docker container
    docker-compose build

    # run the docker container
    docker-compose up

    # turn it off
    docker-compose down

Or if you want to use the provided Makefile::

    # build the container
    make build

    # run the container
    make up

    # create database
    make sync

    # pull latest images
    make pull

    # complete development setup
    make develop

.. note:: For development you need to add ``geonode`` alias into ``/etc/hosts/`` file as following::

        $ sudo vim /etc/hosts
        # Host Database
        # localhost is used to configure the loopback interface
        # when the system is booting.  Do not change this entry.
        ##       localhost geonode broadcasthost
        ::1             localhost

To access GeoNode just enter the following url: http://geonode/ on your web browser.
For GeoServer: http://geonode/geoserver/web/


.. warning:: Outdated instructuions. Please refer to

Ubuntu development build instructions using an isolated virtual environment (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 libgdal-dev git default-jdk

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

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

    # git clone geonode
    git clone
    cd geonode

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

For Ubuntu 16.04 you should create your virtual-env like this instead (so with site packages)::

    virtualenv venv

Instead of installing pygdal, you should do the following::

    # Install the system python-gdal
    sudo apt-get install python-gdal
    # Create a symbolic link in your virtualenv
    ln -s /usr/lib/python2.7/dist-packages/osgeo venv/lib/python2.7/site-packages/osgeo

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::

    sudo apt-get install npm
    sudo npm install -g bower
    sudo npm install -g grunt-cli


.. warning:: Outdated instructuions. Please refer to

openSUSE Development Build Instructions::

    # Add Application:Geo and Python repositories
    zypper -ar GEO
    zypper -ar python
    zypper refresh

    # Basic build packages
    zypper install gcc gcc-c++ python-devel libgeos-devel libproj-devel

    # Python native dependencies
    zypper install python-pip python-virtualenv python-imaging python-lxml python-gdal

    # Java dependencies
    zypper install java-1_7_0_openjdk-devel ant maven

    # Supporting tools
    zypper install git gettext-runtime

    # Create virtualenv and activate it
    virtualenv venv --system-site-packages
    source venv/bin/activate
    cd venv

    # Clone GeoNode
    git clone

    # Install GeoNode in the local virtualenv
    pip install -e geonode --use-mirrors

    cd geonode

    # Compile GeoServer
    paver setup

    # Initialize database
    paver sync

    # Start the servers
    paver start


.. warning:: Outdated instructuions. Please refer to

Windows Development Build Instructions::

    # Java JDK
    # Python 2.7 (32 bit)
    # ant (bin directory must be on system PATH)
    # maven2 (bin directory must be on system PATH)
    # Python distutils (easy_install)
    # GDAL Core Libraries
    # git

    # Install and configure from the windows command prompt
    If you don't already have python virtualenv installed, then do it now:
    easy_install virtualenv

    # Download and install
    # Download and install
    # Choose your 32 bit python as your install target
    # If you create your virtualenv before doing this, you can copy the <python>\lib\site-packages\osgeo and GDAL-* directory over to your <virtual env>\lib\site-packages directory

    # Create virtualenv and activate it
    cd <Directory to install the virtualenv & geonode into>
    virtualenv venv

    # Clone GeoNode
    git clone

    # Install compiled packages for Python 2.7 Win32
    cd geonode
    pip install paver
    pip install pyyaml
    paver win_install_deps

    # Install GeoNode in the local virtualenv, if you get an error about use-mirrors, just remove the argument
    pip install -e . --use-mirrors

    # Note, you may get errors due to certain dependencies not being installable on windows with pip, such as lxml and shapely.
    # For these, you can download a whl file (use cp27 / win32 version) from and then install them via pip.
    # Ex: pip install <Download Dir>\Shapely-1.5-16-cp27-cp27m-win32.whl
    # Also note, you may have to adjust the dependencies in geonode\ to say >= instead of ==,
    # ie "Shapely>=1.5.13", instead of "Shapely==1.5.13",

    # Compile GeoServer
    paver setup

    # Set GDAL environment info
    SET GDAL_LIBRARY_PATH=<GdalPath>\gdal111.dll
    SET GDAL_HOME=<GdalPath>
    SET GEOS_LIBRARY_PATH=<GdalPath>\geos_c.dll
    SET PATH=<GdalPath>;%PATH%

    # Initialize database
    paver sync

    # Start the servers
    paver start --java_path=C:/path/to/java/bin/java.exe


.. warning:: Outdated instructuions. Please refer to

Mac OSX Development Build Instructions::

    # you may need brew install various dependencies

    mkdir -p ~/pyenv
    virtualenv ~/pyenv/geonode
    source ~/pyenv/geonode/bin/activate
    git clone
    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 development
    brew install node
    npm install -g bower
    npm install -g grunt-cli

    #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 sync
    paver start

    # Optional: To generate document thumbnails for PDFs and other ghostscripts file types
    # Then download ghostscript:
    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/
  To stop the GeoNode machine run:
  paver stop

  Or quit the server by pressing
  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
    pip install sphinx_rtd_theme
    cd docs
    make html

You can eventually generate a pdf containing the whole documentation set. For this purpose, if using Ubuntu 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.

Development Roadmap

Geonode's development roadmap is documented in a series of Geonode Improvement Projects (GNIPS).
They are documented here:
GNIPS are considered to be large undertakings which will add a large amount of features to the project.
As such they are the topic of community dicussion and guidance.
The community discusses these on the developer mailing list:
Github issues tracks features and bugs, for new developers the tag 'easy-pick' indicates an
issue that should be relatively easy for new developers to understand and complete. Once you have completed an issue
a pull request should be submitted. This will then be reviewed by the community.

GPL License

GeoNode is Copyright 2018 Open Source Geospatial Foundation (OSGeo).

GeoNode is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

GeoNode is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with GeoNode.  If not, see <>.