Cómo instalar GeoNode-Core para el desarrollo

Resumen de instalación

Esta sección muestra un resumen de los pasos a seguir para instalar GeoNode-Core para el desarrollo con Ubuntu 18.04.Los siguientes pasos se personalizarán para adaptarse tanto a GeoNode-Project como a GeoNode-Core con fines de desarrollo.

Los pasos a seguir son:

1- Instalar herramientas y bibliotecas de compilación

2- Instalar dependencias y herramientas de soporte.

3- Configurar el entorno virtual Python

4- Clona e instala GeoNode desde Github

5- Instalar e iniciar Geoserver

6- Iniciar GeoNode

Nota

Los siguientes comandos/pasos se ejecutarán en su terminal

Advertencia

Si tiene un servicio GeoNode en ejecución, deberá detenerlo antes de comenzar con los siguientes pasos.Para detener GeoNode necesitarás ejecutar:

service apache2 stop   # or your installed server
service tomcat7 stop  # or your version of tomcat

Instale GeoNode-Core para el desarrollo

La instalación de GeoNode-Core se considera la forma más básica de GeoNode.No requiere la instalación de ningún servidor externo y puede ejecutarse localmente en una base de datos Spatialite basada en un sistema de archivos.

Pasos de instalación

1- Instalar herramientas y bibliotecas de compilación

Advertencia

Esas instrucciones pueden estar desactualizadas.Consulte 1. Instalar las dependencias

$ sudo apt-get install -y build-essential libxml2-dev libxslt1-dev libpq-dev zlib1g-dev

2- Instalar dependencias y herramientas de soporte.

Instalar bibliotecas y herramientas nativas de Python

Advertencia

Esas instrucciones pueden estar desactualizadas.Consulte 1. Instalar las dependencias

$ sudo apt-get install -y python3-dev python3-pil python3-lxml python3-pyproj python3-shapely python3-nose python3-httplib2 python3-pip software-properties-common

Instalar el entorno virtual Python

Advertencia

Esas instrucciones pueden estar desactualizadas.Consulte 2. Instalación de GeoNode

$ sudo pip install virtualenvwrapper

Instalar postgresql y postgis

Advertencia

Esas instrucciones pueden estar desactualizadas.Consulte configure_dbs_core

$ sudo apt-get install postgresql-10 postgresql-10-postgis-2.4

Cambiar la caducidad de la contraseña de Postgres y establecer una contraseña

$ sudo passwd -u postgres # change password expiry infromation
$ sudo passwd postgres # change unix password for postgres

Crear función de geonode y base de datos

$ su postgres
$ createdb geonode_dev
$ createdb geonode_dev-imports
$ psql
$ postgres=#
$ postgres=# CREATE USER geonode_dev WITH PASSWORD 'geonode_dev'; # should be same as password in setting.py
$ postgres=# GRANT ALL PRIVILEGES ON DATABASE "geonode_dev" to geonode_dev;
$ postgres=# GRANT ALL PRIVILEGES ON DATABASE "geonode_dev-imports" to geonode_dev;
$ postgres=# \q
$ psql -d geonode_dev-imports -c 'CREATE EXTENSION postgis;'
$ psql -d geonode_dev-imports -c 'GRANT ALL ON geometry_columns TO PUBLIC;'
$ psql -d geonode_dev-imports -c 'GRANT ALL ON spatial_ref_sys TO PUBLIC;'
$ exit

Editar el archivo de configuración de PostgreSQL

sudo gedit /etc/postgresql/10/main/pg_hba.conf

Desplácese hasta el final del archivo y edite esta línea.

# "local" is for Unix domain socket connections only
local   all             all                            peer

ser como sigue

# "local" is for Unix domain socket connections only
local   all             all                                trust

Luego reinicie PostgreSQL para que los cambios sean efectivos.

sudo service postgresql restart

dependencias de java

$ sudo apt-get install -y openjdk-11-jdk --no-install-recommends

Instalar herramientas de soporte

$ sudo apt-get install -y ant maven git gettext

3- Configurar el entorno virtual Python (aquí es donde se ejecutará Geonode)

Agregue virtualenvwrapper a su nuevo entorno.

Como usamos Ubuntu, puede agregar las siguientes configuraciones a su archivo .bashrc.Tenga en cuenta que la cuenta de Ubuntu aquí se llama «geonode».Por lo tanto, deberás cambiarlo según el nombre que hayas elegido.

$ echo export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python >> ~/.bashrc
$ echo export WORKON_HOME=/home/geonode/dev/.venvs >> ~/.bashrc
$ echo source /usr/local/bin/virtualenvwrapper.sh >> ~/.bashrc
$ echo export PIP_DOWNLOAD_CACHE=$HOME/.pip-downloads >> ~/.bashrc

And reload the settings by running
$ source ~/.bashrc

Configurar el entorno virtual local para Geonode

$ vim ~/.bashrc
# add the following line to the bottom
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
$ mkvirtualenv --python=/usr/bin/python3 geonode
$ workon geonode # or $ source /home/geonode/dev/.venvs/geonode/bin/activate
This creates a new directory where you want your project to be and creates a new virtualenvironment

Alterantively you can also create the virtual env like below
$ python3.8 -m venv /home/geonode/dev/.venvs/geonode
$ source /home/geonode/dev/.venvs/geonode/bin/activate

4- Descargar/Clonar GeoNode desde Github

Para descargar la última versión del geonode desde github, se utiliza el comando «git clone»

Nota

Si está siguiendo la capacitación de GeoNode, omita el siguiente comando.Puede encontrar el repositorio clonado en /home/geonode/dev

$ git clone https://github.com/GeoNode/geonode.git -b 4.1.x

Instale Nodejs PPA y otras herramientas necesarias para el desarrollo estático

Esto es necesario para el desarrollo estático.

Nota

Si está siguiendo la capacitación de GeoNode, nodejs ya está instalado en la máquina virtual, omita los primeros tres comandos y vaya a cd geonode/geonode/static

$ sudo apt-get install nodejs npm
$ cd geonode/geonode/static
$ npm install --save-dev

Nota

Cada vez que desee actualizar los archivos estáticos después de realizar cambios en las fuentes, vaya a geonode/estático y ejecute «producción gruñida».

Advertencia

A partir del siguiente paso, debe asegurarse de haber instalado GDAL correctamente de acuerdo con la página de documentación «Instalar GDAL para desarrollo».

Instale GeoNode en el nuevo entorno virtual local activo

$ cd /home/geonode/dev  # or to the directory containing your cloned GeoNode
$ pip install -e geonode
$ cd geonode/geonode

Crear local_settings.py

Copie el archivo de muestra /home/geonode/dev/geonode/geonode/local_settings.py.geoserver.sample y cámbiele el nombre a local_settings.py

$ cd /home/geonode/dev/geonode
$ cp geonode/local_settings.py.geoserver.sample geonode/local_settings.py
$ gedit geonode/local_settings.py

En el archivo local_settings.py, agregue la siguiente línea después de las declaraciones de importación:

SITEURL = "http://localhost:8000/"

En el diccionario BASES DE DATOS bajo la clave “predeterminada”, cambie solo los valores de las claves NOMBRE, USUARIO y CONTRASEÑA para que sean los siguientes:

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

En el diccionario BASES DE DATOS bajo la clave “almacén de datos”, cambie solo los valores de las claves NOMBRE, USUARIO y CONTRASEÑA para que sean los siguientes:

# vector datastore for uploads
'datastore' : {
    'ENGINE': 'django.contrib.gis.db.backends.postgis',
    #'ENGINE': '', # Empty ENGINE name disables
    'NAME': 'geonode_dev-imports',
    'USER' : 'geonode_dev',
    'PASSWORD' : 'geonode_dev',
    .......
    ......
    .....
    ....
    ...
}

En el diccionario CATÁLOGO, bajo la clave “predeterminada”, descomente las claves USUARIO y CONTRASEÑA para activar las credenciales para GeoNetwork de la siguiente manera:

CATALOGUE = {
'default': {
    # The underlying CSW implementation
    # default is pycsw in local mode (tied directly to GeoNode Django DB)
    'ENGINE': 'geonode.catalogue.backends.pycsw_local',
    # pycsw in non-local mode
    # 'ENGINE': 'geonode.catalogue.backends.pycsw_http',
    # GeoNetwork opensource
    # 'ENGINE': 'geonode.catalogue.backends.geonetwork',
    # deegree and others
    # 'ENGINE': 'geonode.catalogue.backends.generic',
    # The FULLY QUALIFIED base url to the CSW instance for this GeoNode
    'URL': urljoin(SITEURL, '/catalogue/csw'),
    # 'URL': 'http://localhost:8080/geonetwork/srv/en/csw',
    # 'URL': 'http://localhost:8080/deegree-csw-demo-3.0.4/services',
    # login credentials (for GeoNetwork)
    'USER': 'admin',
    'PASSWORD': 'admin',
    # 'ALTERNATES_ONLY': True,
    }}

5- Instalar e iniciar Geoserver

Desde el entorno virtual, primero debe alinear la estructura de la base de datos usando el siguiente comando:

$ cd /home/geonode/dev/geonode
$ python manage.py migrate

Advertencia

Si el inicio falla debido a un error de importación relacionado con osgeo o libgeos, consulte Instalar GDAL para desarrollo

luego configure GeoServer usando el siguiente comando:

$ paver setup

$ paver sync

6- Ahora podemos iniciar nuestra instancia de geonode.

Advertencia

No olvide detener los servicios de producción de GeoNode si están habilitados

service apache2 stop
service tomcat7 stop
$ paver start

El proceso de inicio tomará alrededor de 20 segundos (depende de su máquina) y al final muestra el siguiente mensaje:

../../_images/server-is-ready.png

Ahora puede visitar el sitio del geonode escribiendo http://0.0.0.0:8000 en la ventana de su navegador.

../../_images/geonode-gui.png

Instale GeoNode-Project para el desarrollo después de instalar GeoNode-Core

Geonode-Project brinda al usuario flexibilidad para personalizar la instalación de GeoNode.El propio Geonode se instalará como requisito de su proyecto.Dentro de la estructura del proyecto es posible ampliar, reemplazar o modificar todos los componentes del geonode (por ejemplo, css y otros archivos estáticos, plantillas, modelos…) e incluso registrar nuevas aplicaciones de Django sin tocar el código original del Geonode.Para instalar GeoNode-Project, se deben ejecutar los siguientes pasos junto con los pasos de instalación anteriores de GeoNode-Core.

1- Utilice django-admin.py para crear un proyecto «my_geonode» a partir de una plantilla GeoNode-Project de la siguiente manera:

Nota

Antes de ejecutar el siguiente comando, asegúrese de estar trabajando actualmente en el entorno virtual y justo fuera del directorio de geonode.El comando creará un nuevo proyecto llamado «my_geonode» que debe ubicarse en el nivel del directorio de instalación de geonode-core «dentro de /home/geonode/dev».

$ django-admin.py startproject my_geonode --template=https://github.com/GeoNode/geonode-project/archive/master.zip -e py,rst,json,yml,ini,env,sample -n Dockerfile

$ ls /home/geonode/dev  # should output:  geonode  my_geonode

Nota

Aunque el siguiente comando puede mostrar que la mayoría de los requisitos ya se cumplen «porque GeoNode-Core ya estaba instalado», se recomienda ejecutarlo de todos modos, ya que podría actualizar o instalar cualquier paquete faltante.

2- Instale todos los paquetes/herramientas necesarios para GeoNode-Project de la siguiente manera:

$ pip install -e my_geonode

Nota

Como se mencionó anteriormente, GeoNode se instalará como requisito para el proyecto GeoNode para poder ampliarlo.

Instale GeoNode-Project directamente desde cero

Si no instaló GeoNode-Core anteriormente y desea instalar GeoNode-Project directamente, siga estos pasos

1- Crea un entorno virtual de la siguiente manera:

$ vim ~/.bashrc
# add the following line to the bottom
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
$ source /usr/share/virtualenvwrapper/virtualenvwrapper.sh
$ mkvirtualenv --python=/usr/bin/python3 my_geonode

Alterantively you can also create the virtual env like below
$ python3.8 -m venv /home/geonode/dev/.venvs/my_geonode
$ source /home/geonode/dev/.venvs/my_geonode/bin/activate

2- Clonar el repositorio del proyecto geonode de Github

$ git clone https://github.com/GeoNode/geonode-project.git -b 4.1.x

3- Instale el marco Django de la siguiente manera

$ pip install Django==3.2.13

4- Utilice django-admin.py para crear un proyecto «my_geonode» a partir de una plantilla GeoNode-Project de la siguiente manera:

$ django-admin startproject --template=./geonode-project -e py,sh,md,rst,json,yml,ini,env,sample,properties -n monitoring-cron -n Dockerfile my_geonode

5- Instale todos los requisitos para GeoNode-Project e instale GeoNode-Project usando pip

$ cd my_geonode
$ pip install -r requirements.txt --upgrade
$ pip install -e . --upgrade

6- Instalar las utilidades GDAL para Python

$ pip install pygdal=="`gdal-config --version`.*"  # or refer to the link <Install GDAL for Development <https://training.geonode.geo-solutions.it/005_dev_workshop/004_devel_env/gdal_install.html>

7- Instale GeoServer y Tomcat usando paver

$ paver setup

$ paver sync

$ paver start

8- Visita http://localhost:8000/