GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
Python JavaScript HTML CSS XSLT Shell Other
Switch branches/tags
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 debian/2.4.0+alpha22 debian/2.4.0+alpha21 debian/2.4.0+alpha20
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



Build Requirements

Before starting work on the GeoNode, you will need to have the following software installed and in your PATH:

  • The git command-line client, version 1.5.3 or higher: - To verify that it is available, run git --version and verify the

    version is something like git version

    • If not, you can download one of the installers from or from your operating system provider.
  • The Subversion command-line client, version 1.5 or higher. - To verify that is is available, run svn --version and verify the output

    starts with something like svn, version 1.6.9 (r901367)

  • Sun Java Development Kit 1.5 or Higher: - To verify that it is available, run

    javac -help -version and verify that it reports a list of usage flags, ending with a line like javac 1.5.0_18 (the numbers will vary with your installed version).

  • Python 2.6: - To verify that it is available, run

    python --version and verify that it reports a version number like Python 2.6

    • If not, download from
    • Python must be compiled w/ SSL support and sqlite support to support the geonode development setup. Installing the sqlite and openssl development headers before building Python will suffice.
  • Apache Maven 2.0.10 or Later: - To verify that it is available, run

    mvn -version and verify that it reports version information like:

    Maven version: 2.0.10
    Java version: 1.5.0_18
    OS name: "linux" version: "" arch: "amd64" Family: "unix"


The following steps should prepare a Python virtual environment for you:

git clone git:// geonode
cd geonode
git submodule update --init
python --no-site-packages
source bin/activate
paver build createsuperuser --settings=capra.settings
paver host

Once fully started, you should see a message indicating the address of your geonode:

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


When running python the --no-site-packages option is not required. If 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, sometimes it is useful to use a version of ReportLab or the Python Imaging Library provided by your operating system vendor, or packaged other than on PyPI. When in doubt, however, just leave this option in.

This command: createsuperuser --settings=capra.settings

can be used to create additional administrative user accounts. The administrative control panel is not linked from the main site, but can be accessed at http://localhost:8000/admin/


For JavaScript Developers

Minified Scripts

JavaScript Developers can switch to using unminified scripts and CSS styles by setting the MINIFIED_RESOURCES entry in :file:`src/geonode/` to False. If you are developing JavaScript and testing against minified builds, make sure to use:

$ paver concat_js
$ paver capra_js

to update the built script directories for the base GeoNode site and the CAPRA extensions, respectively.

VirtualBox Setup

To test the application in different browsers in VirtualBox guests, the following needs to be done before running paver host:

  • Start the guest in VirtualBox. Set the network adapter mode to "Host-only adapter". Then set it back to "NAT".

  • On the host, do ifconfig and write down the IP address of the vboxnet0 adapter.

  • Edit src/GeoNodePy/geonode/ and change the line:


    to use the IP address you have written down above:

  • To start the web server, run:

    $ paver host -b
  • Now GeoNode is available in your browser at

For Java Developers

How GeoNode Finds GeoServer

Java Developers can point the application at a particular GeoServer instance by setting the GEOSERVER_BASE_URL entry in to the context path of the GeoServer instance. This should include the trailing slash. For example, the GeoServer used for is:

The default value is http://localhost:8001/geoserver/. The GeoServer module in :file:`src/geonode-geoserver-ext/` is configured to provide a GeoServer instance at that port with the following commands:

cd src/geonode-geoserver-ext/
mvn jetty:run-war

If you want to change this service URL, edit :file:`src/geonode/` and change the line:


to indicate the GeoServer URL that you want to use.

Alternative GeoServer Data Directories

This server defaults to using :file:`gs-data/` as the data directory by default. If you need you need to use an alternative data directory, you can specify it via the command line, using a command like:

mvn jetty:run-war -DGEOSERVER_DATA_DIR=/home/me/mydata/

Directory Structure

  • docs/ - ? I think this is to help paver find our docs so whit doesn't have to maintain two checkouts to build them.

  • hazard.json - a data dump for the hazard categories

  • package - this directory is where distributable bundles of the GeoNode pieces end up (in theory? I don't think we used this for the most recent deployment)

  • - the main build script for everything

  • - a zip archive of the paver library used by

  • - a shim to make the entire GeoNode source tree look like a Python package. This probably should not be there since our Python modules have their own source tree with a now.

  • shared/ - where "build configuration" lives. This includes some dependency lists for the Python modules and stuff like the ini file with the location of the sample data archive.

  • src/ - where the source code for the actual project lives. This is divided up like so:

    • capra-client/ - the JavaScript/CSS for CAPRA-specific extensions (MyHazard) to the GeoNode core
    • geonode-client/ - the JavaScript/CSS for general apps (the Map editor, search, embedded viewer...)
    • GeoNodePy/ - the Python/Django modules. Inside, geonode/ is the "core" and capra/ contains CAPRA-specific extensions.
    • geoserver-geonode-ext/ - the GeoServer extensions used by the GeoNode. Actually, the build script for this project is set up to create a WAR that includes those extensions, not just a bundle with the extension.

GPL License

GeoNode is Copyright 2010 OpenPlans.

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 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 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 <>.