GithubHelp home page GithubHelp logo

geonode / documentation Goto Github PK

View Code? Open in Web Editor NEW
13.0 13.0 71.0 289.07 MB

GeoNode Documentation

Home Page: https://docs.geonode.org/

License: Other

Makefile 25.77% Shell 1.99% Python 46.46% Batchfile 25.78%

documentation's Introduction

GeoNode OSGeo Project

Table of Contents

What is GeoNode?

GeoNode is a geospatial content management system, a platform for the management and publication of geospatial data. It brings together mature and stable open-source software projects under a consistent and easy-to-use interface allowing non-specialized users to share data and create interactive maps.

Data management tools built into GeoNode allow for integrated creation of data, metadata, and map visualization. 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.

It is also designed to be a flexible platform that software developers can extend, modify or integrate against to meet requirements in their own applications.

Try out GeoNode

If you just want to try out GeoNode visit our official Demo online at: https://development.demo.geonode.org. After your registration, you will be able to test all basic functionalities like uploading layers, creation of maps, editing metadata, styles, and much more. To get an overview what GeoNode can do we recommend having a look at the Users Workshop.

Quick Docker Start

  python create-envfile.py

create-envfile.py accepts the following arguments:

  • --https: Enable SSL. It's disabled by default
  • --env_type:
    • When set to prod DEBUG is disabled and the creation of a valid SSL is requested to Letsencrypt's ACME server
    • When set to test DEBUG is disabled and a test SSL certificate is generated for local testing
    • When set to dev DEBUG is enabled and no SSL certificate is generated
  • --hostname: The URL that will serve GeoNode (localhost by default)
  • --email: The administrator's email. Notice that a real email and valid SMPT configurations are required if --env_type is set to prod. Letsencrypt uses email for issuing the SSL certificate
  • --geonodepwd: GeoNode's administrator password. A random value is set if left empty
  • --geoserverpwd: GeoNode's administrator password. A random value is set if left empty
  • --pgpwd: PostgreSQL's administrator password. A random value is set if left empty
  • --dbpwd: GeoNode DB user role's password. A random value is set if left empty
  • --geodbpwd: GeoNode data DB user role's password. A random value is set if left empty
  • --clientid: Client id of Geoserver's GeoNode Oauth2 client. A random value is set if left empty
  • --clientsecret: Client secret of Geoserver's GeoNode Oauth2 client. A random value is set if left empty
  docker compose build
  docker compose up -d

Learn GeoNode

After you´ve finished the setup process make yourself familiar with the general usage and settings of your GeoNodes instance. - the User Training is going in depth into what we can do. - the Administrators Workshop will guide you to the most important parts regarding management commands and configuration settings.

Development

GeoNode is a web-based GIS tool, and as such, in order to do development on GeoNode itself or to integrate it into your own application, you should be familiar with basic web development concepts as well as with general GIS concepts.

For development, GeoNode can be run in a 'development environment'. In contrast to a 'production environment' development differs as it uses lightweight components to speed up things.

To get started visit the Developer workshop for a basic overview.

If you're planning to customize your GeoNode instance or to extend its functionalities it's not advisable to change core files in any case. In this case, it's common to setup a GeoNode Project Template.

Contributing

GeoNode is an open source project and contributors are needed to keep this project moving forward. Learn more on how to contribute on our Community Bylaws.

Roadmap

GeoNode's development roadmap is documented in a series of GeoNode Improvement Projects (GNIPS). They are documented at GeoNode Wiki.

GNIPS are considered to be large undertakings that will add a large number of features to the project. As such they are the topic of community discussion and guidance. The community discusses these on the developer mailing list: http://lists.osgeo.org/pipermail/geonode-devel/

Showcase

A handful of other Open Source projects extend GeoNode’s functionality by tapping into the re-usability of Django applications. Visit our gallery to see how the community uses GeoNode: GeoNode Showcase.

The development community is very supportive of new projects and contributes ideas and guidance for newcomers.

Most useful links

General

Related projects

Support

Licensing

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 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 http://www.gnu.org/licenses.

documentation's People

Contributors

afabiani avatar al3mon avatar b-angerer avatar bieganowski avatar capooti avatar cezio avatar dwins avatar elenagallo avatar francbartoli avatar gannebamm avatar garnertb avatar giohappy avatar iamtekson avatar ingenieroariel avatar janetraei avatar jean avatar jj0hns0n avatar jkaris avatar jondoig avatar madi avatar malteiwanicki avatar markiliffe avatar marthamareal avatar mattiagiupponi avatar mbertrand avatar mdiener21 avatar sbenthall avatar simod avatar t-book avatar tomkralidis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

documentation's Issues

pip install -r requirements.txt --upgrade --no-cache --no-cache-dir, ERROR: Command errored out with exit status 1

Following current main GeoNode Core and GeoNode Project installation instructions yields the error:
/opt/geonode$ pip install -r requirements.txt --upgrade --no-cache --no-cache-dir
Collecting Pillow==7.1.2
Downloading Pillow-7.1.2-cp36-cp36m-manylinux1_x86_64.whl (2.1 MB)
|████████████████████████████████| 2.1 MB 41.2 MB/s
Collecting lxml==4.5.1
Downloading lxml-4.5.1-cp36-cp36m-manylinux1_x86_64.whl (5.5 MB)
|████████████████████████████████| 5.5 MB 74.2 MB/s
Collecting defusedxml==0.6.0
Downloading defusedxml-0.6.0-py2.py3-none-any.whl (23 kB)
Collecting psycopg2==2.8.5
Downloading psycopg2-2.8.5.tar.gz (380 kB)
|████████████████████████████████| 380 kB 73.5 MB/s
ERROR: Command errored out with exit status 1:
command: /home/geonode/.virtualenvs/geonode/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-oywxowkj/psycopg2/setup.py'"'"'; file='"'"'/tmp/pip-install-oywxowkj/psycopg2/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(file);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, file, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-pip-egg-info-9yjp8aa7
cwd: /tmp/pip-install-oywxowkj/psycopg2/
Complete output (23 lines):
running egg_info
creating /tmp/pip-pip-egg-info-9yjp8aa7/psycopg2.egg-info
writing /tmp/pip-pip-egg-info-9yjp8aa7/psycopg2.egg-info/PKG-INFO
writing dependency_links to /tmp/pip-pip-egg-info-9yjp8aa7/psycopg2.egg-info/dependency_links.txt
writing top-level names to /tmp/pip-pip-egg-info-9yjp8aa7/psycopg2.egg-info/top_level.txt
writing manifest file '/tmp/pip-pip-egg-info-9yjp8aa7/psycopg2.egg-info/SOURCES.txt'

Error: pg_config executable not found.

pg_config is required to build psycopg2 from source.  Please add the directory
containing pg_config to the $PATH or specify the full executable path with the
option:

    python setup.py build_ext --pg-config /path/to/pg_config build ...

or with the pg_config option in 'setup.cfg'.

If you prefer to avoid building psycopg2 from source, please install the PyPI
'psycopg2-binary' package instead.

For further information please check the 'doc/src/install.rst' file (also at
<https://www.psycopg.org/docs/install.html>).

----------------------------------------

ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

I am working on Ubuntu 18.04
I have root access to the server
All dependencies have been installed
Installation fails at "Install the Python packages"
when executing pip install -r requirements.txt --upgrade --no-cache --no-cache-dir

Add keycloak setup information

From gitter https://gitter.im/GeoNode/general?at=60d32001f862a72a30cbad73

We should discuss were to put it

HOWTO Keycloak and GeoNode in Docker Compose on localhost

Goal
Starting with the docker-compose of GeoNode, add a Keycloak based authentication, with Keycloak as a container.

On the Keycloak side

You need to define the KEYCLOAK_FRONTEND_URL environment variable to http://localhost:YOURPORT/auth. If you don't do that, Keycloak will guess the URL by itself and the tokens won't work between the login form and the Django backend

For the client configuration, you can follow the instructions available here: https://github.com/GeoNode/geonode-contribs/tree/master/django-geonode-keycloak#django-allauth

On the GeoNode side
The Keycloak provider of django-allauth does not work in this case because it uses a unique URL for both the login form (which must be accessible by your browser) and the other URL used by the Django backend. I have implemented a feature with an additional setting KEYCLOAK_URL_ALT to be used by the Django backend.
A Pull Request is pending on django-allauth to integrate it: Meanwhile, you can use my fork at https://github.com/AlexGacon/django-allauth.
You need to have in the settings file the following addition to SOCIALACCOUNT_PROVIDERS:

SOCIALACCOUNT_PROVIDERS = {
   'keycloak': {
      'KEYCLOAK_URL': 'http://localhost:YOUR_PORT/auth',
      'KEYCLOAK_URL_ALT': 'http://KEY_CLOAK_DOCKER_SERVICE:8080/auth',
      'KEYCLOAK_REALM': 'YOUR_REALM'
   },
}

You also have to create in the Django administration page a Social App based on the Keycloak provider, with the client credentials configured in Keycloak.

External Frontend Framework

Hello,

I'm working on a project where I would like to use geonode only as a backend and use an external framework for frontend development. I read the part of the documentation related to Frontend Development but from what I understand I am still restricted to the django directory structure which is not interesting for project management.

"Secure your production deployment; change the admin passwords and OAUth2 keys" for "GeoNode Advanced Installation"

Hi Devs,
In "GeoNode Advanced Installation" (Ubuntu 18.04) the part relating to "Secure your production deployment; change the admin passwords and OAUth2 keys" is missing.
The same is present, but it involves a totally different procedure, on "GeoNode Basic Installation".

It would take a little, a copy&paste followed by the specific commands to be executed after the web changes.

In a system created as per your documentation, we were able to complete the procedure, modifying the access data via web admin interface and then editing /usr/geonode/geonode/local_settings.py -> "GEOSERVER_ADMIN_PASSWORD":

and executing:

python manage.py collectstatic --no-input
sudo service uwsgi restart
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

But we believe that you must be the one to validate this procedure, within the specific documentation.

Documentation about setting the database connection

The documentation at https://docs.geonode.org/en/master/devel/installation/ reports about creating a local_settings.py file, but it is not used when running the migrate command line or when starting the application.

It should be documented that, if you have your local_settings.py, you should run the commands with the
DJANGO_SETTINGS_MODULE env var set.

You can set it locally on the command line running the command, such like:

DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py migrate

and

DJANGO_SETTINGS_MODULE=geonode.local_settings paver start

Also, in the section documenting the customization of the DB, the sample snippet reports:

DATABASES = {
'default': {
    'ENGINE': 'django.db.backends.postgresql_psycopg2',
    'NAME': 'geonode_dev',
    'USER': 'geonode_dev', 

but if you replace the default

'ENGINE': 'django.contrib.gis.db.backends.postgis',

with

'ENGINE': 'django.db.backends.postgresql_psycopg2',

you'll get the error

AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type'

during the migration command.

Wrong commands to run to set python variables on GeoNode Advanced Installation -> GeoNode Installation/Create the GeoNode Virtual Environment

Hi Devs,

Building the services as your detailed indications, on GeoNode Advanced Installation -> GeoNode Installation/Create the GeoNode Virtual Environment, are present two different command, producing two different results.

The following command set Python environment to 3.6.x and not to 3.8.x:
mkvirtualenv --python=/usr/bin/python3 geonode

The right one should be:
mkvirtualenv --python=/usr/local/bin/python3.8 geonode

please check

Thanks!

Sidebar Formatting Issue on Read the Docs

I noticed the style of the left-hand sidebar on Read the Docs is a little messed up (padding, etc). I recently fixed the same issue in a different project that I am part of, and wanted to link the solution here: archesproject/arches-docs#258 (comment)

Ultimately, a new yaml configuration file in this repo would allow you to tell RTD to use a specific version of the theme that will fix the formatting issue. This is the configuration that fixed it for us: archesproject/arches-docs@22c2c15

I can't recall, but you may need to tell the RTD project settings to look for that file once its been added.

Edit I hadn't even noticed the GeoNode docs location isn't readthedocs.io, so much of what I wrote above may not be relevant. At the very least, I believe upgrading sphinx_rtd_theme>=0.5.2 may fix the formatting.

Update the Internal Monitoring Application documentation

An update of the monitoring documentation would be relevant for an intuitive installation to occur and also for being an essential functionality. All steps in Geonode Core suggest using geonode.local_settings, unlike the Internal Monitoring Application, which uses geonode.settings. In addition, in the monitoring documentation, GEOIP_PATH is set to GeoIPCities.dat as the default and the current format is GeoLite2-city.mmdb. Also MONITORING_SERVICE_NAME is defined as the default local-geonode, and in Django Administration it provides services with the name localhost-hostgeoserver, default-geoserver, localhost-hostgeonode and geonode.

Changing password PostgreSQL database for advanced installation (Ubuntu 18.04)

Hi Devs,
I'm trying to figure out how to change PostgreSQL database password, and I ask if possible to add them in the GeoNode Advanced Installation documentation.

These are the steps performed:

  1. changed /opt/geonode/geonode/local_settings.py -> 'PASSWORD' on:
# Backend
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'geonode',
        'USER': 'geonode',
        'PASSWORD': 'new-password',



per il DB di Geoserver:

    # vector datastore for uploads
    'datastore': {
        'ENGINE': 'django.contrib.gis.db.backends.postgis',
        # 'ENGINE': '', # Empty ENGINE name disables
        'NAME': 'geonode_data',
        'USER': 'geonode',
        'PASSWORD': 'new-password',
  1. Changing DB password on Postgresql:

psql -U postgres
ALTER USER geonode WITH ENCRYPTED PASSWORD 'new-password';

  1. update Geonode infrastructure:
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py collectstatic --noinput
DJANGO_SETTINGS_MODULE=geonode.local_settings python manage.py migrate_baseurl --source-address=http://localhost --target-address=http://www.example.org
  1. reload services:
sudo systemctl daemon-reload
sudo service uwsgi restart
systemctl restart tomcat
sudo systemctl restart nginx

These steps are obviously not complete, as the Oauth2 connection with Geoserver is compromised: is possible to login to Goeserver web interface, but from Geonode is still not possible to upload layer, etc..

Kindly is it possible to clarify the right steps to be performed?

Thanks!

Add docs for harvesting

The recent harvesting feature is still undocumented. Fix it by adding some cool docs about it.

Update Documentation for Async execution of management commands

Referring to #909 once the development is complete is required to add the relative documentation for GeoNode. I would place it under GeoNode Management Commands.

Both documentation for 3.3.x and master branch must be updated.

The documentation repository is this -> https://github.com/GeoNode/documentation and is written with sphinx
At this link is possible to see the available documentation.

We expect that in the docs will be explained:

  • New section named Async execution or similar
  • General description of how to run management commands in the new way (high-level description)
  • How to set up the local environment to run them
  • Description of the API available and how to invoke them (with some basic example)
  • Description of the Admin interface and how to run a command through it (maybe with some image)

Please @italogsfernandes feel free to add new points to the above one

Add DATABASE_URL and GEODATABASE_URL to minimum env variables needed in supervisord.conf

I was setting up supervisor to run celery, and began with all of the minimum env variables that are listed in the docs. However, in the celery log it was clear that my tasks were trying to connect to the wrong database, so I added DATABASE_URL and GEODATABASE_URL to supervisord.conf and everything worked properly.

I think the docs should have these two variables added to the minimum list.

It's entirely possible that only the DATABASE_URL is absolutely necessary, but it seems wise to me to pass these two settings around as a pair.

"Autoversion" external links to prevent a 404?

Some of our external links get outdated quite fast and hence will end in a 404. As an example

sudo wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.5.58/bin/apache-tomcat-8.5.58.tar.gz https://docs.geonode.org/en/master/install/advanced/core/index.html?highlight=tomcat#install-geoserver

(minor version changes)

I wonder if it would makes sense to whenever there is some directory listing with a reliable versioning to first retrieve the highest version number to use with wget.

TOMCAT_VERSION=$(wget https://downloads.apache.org/tomcat/tomcat-8 -q -O - | grep -Eo "[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}" | tail -1)
wget http://www-us.apache.org/dist/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz

While this will prevent a 404, the use of a regex might not be easy to understand for new users … What do you think?

Update Ubuntu 20 rabbitmq installation to use cloudsmith.io

I live in cuba, a USA forbidden country, so we (and other countries around the world) can't use the previously recommended site (package.io). So I used the official Installation guide, went to Cloudsmith option and it works perfectly. Then I propose use it on the installations steps only, and keep the configuration as it is.

Add installation guide for MacOS

Add installation guide for MacOS

Overview

Documentation for v2.8 offers insight on how to install GeoNode on MacOS but documentation for v3.0 at the moment doesn't have that documented.

Proposed By

Allan Guwatudde

Assigned to Release

This proposal is for GeoNode 3.0

State

  • Under Discussion
  • In Progress
  • Completed
  • Rejected
  • Deferred

Motivation

For developers that use a Mac, it would be nice to have set up guides included in the docs for the latest versions of GeoNode

Final updated manual of Installation geonode 3.1 core on Ubuntu 20.04 LTS

Hi Master..
This is maybe a silly question, but I tries this howto https://docs.geonode.org/en/3.x/install/advanced/core/index.html#ubuntu-20-04lts 4 times and no luck to up this geonode core..even in debug :(. i have follow all the step..and also stuck at the ubuntugis ppa repisitory..cannot download..I add the repo of xenial unstable ..than the uswgi issue cannot restart even follow the .ini howto.

So please help if there is any new update howto than I can follow :).. thank you very much master's...

*i'm a beginner in gis but i'm eager to try this new goenode 3.1 core..please help

ss command not found

While installing GeoNode in a clean Ubuntu 20.04, the ss -ltn shows that ss command is not found. Can the workaround be added to the documentation?

The workaround being installing iproute2 via the command sudo apt install iproute2 which workers well.

pip install pylibmc error

During the installation of the requirements.txt file, I face the issue of the installation of pylibmc package. To solve this error, we need to install the following packages,

sudo apt-get install libmemcached-dev
sudo apt-get install zlib1g-dev

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.