Cómo instalar GeoNode-Core para el desarrollo¶
Resumen de la instalación¶
En esta sección se muestra un resumen de los pasos que se deben seguir para instalar GeoNode-Core para el desarrollo con Ubuntu 18.04. Los siguientes pasos se personalizarán para que se adapten tanto a GeoNode-Project como a GeoNode-Core para fines de desarrollo.
Los pasos a seguir son:¶
1- Instalar herramientas de compilación y bibliotecas
2- Instalar dependencias y herramientas de soporte
3- Configurar el entorno virtual de Python
4- Clonar e instalar GeoNode desde Github
5- Instalar e iniciar Geoserver
6- Iniciar GeoNode
Nota
Los siguientes comandos/pasos se ejecutarán en tu terminal
Advertencia
Si tienes un servicio GeoNode en ejecución, deberás detenerlo antes de comenzar con los siguientes pasos. Para detener GeoNode, deberás ejecutar:
service apache2 stop # or your installed server
service tomcat7 stop # or your version of tomcat
Instalar 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 de compilación y bibliotecas
Advertencia
Es posible que esas instrucciones no estén actualizadas. Consulta 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
Es posible que esas instrucciones no estén actualizadas. Consulta 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 entorno virtual de python
Advertencia
Es posible que esas instrucciones no estén actualizadas. Consulta 2. Instalación de GeoNode
$ sudo pip install virtualenvwrapper
Instalar postgresql y postgis
Advertencia
Es posible que esas instrucciones no estén actualizadas. Consulta 3. Configuración de la base de datos Postgis
$ sudo apt-get install postgresql-10 postgresql-10-postgis-2.4
Cambiar la fecha de 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 una función de GeoNode y una 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ázate hasta la parte inferior del archivo y edita esta línea.
# "local" is for Unix domain socket connections only
local all all peer
Para que quede de la siguiente manera
# "local" is for Unix domain socket connections only
local all all trust
Luego reinicia 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 de Python (aquí es donde se ejecutará Geonode)
Agregue virtualenvwrapper a su nuevo entorno.
Dado que estamos usando Ubuntu, puedes agregar la siguiente configuración a tu archivo .bashrc. Ten en cuenta que la cuenta de Ubuntu aquí se llama «geonode». Por lo tanto, tendrás que cambiarla 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 de geonode desde github, se utiliza el comando «git clone»
Nota
Si estás siguiendo la capacitación de GeoNode, omite el siguiente comando. Puede encontrar el repositorio clonado en /home/geonode/dev
$ git clone https://github.com/GeoNode/geonode.git -b 4.1.x
Instalar Nodejs PPA y otras herramientas necesarias para el desarrollo estático
Esto es necesario para el desarrollo estático
Nota
Si estás siguiendo el entrenamiento de GeoNode, Node.js ya está instalado en la máquina virtual. Omite los primeros tres comandos y ve directamente a cd geonode/geonode/static
$ sudo apt-get install nodejs npm
$ cd geonode/geonode/static
$ npm install --save-dev
Nota
Cada vez que desees actualizar los archivos estáticos después de realizar cambios en las fuentes, ve a geonode/static y ejecuta ‘grunt production’.
Advertencia
A partir del siguiente paso, debes asegurarte de haber instalado GDAL correctamente según la página de documentación How to Install GDAL for development
Instalar 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
Copia el archivo de muestra /home/geonode/dev/geonode/geonode/local_settings.py.geoserver.sample y cámbiale 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, agrega la siguiente línea después de las declaraciones de importación:
SITEURL = "http://localhost:8000/"
En el diccionario DATABASES bajo la clave “default”, cambia únicamente los valores de las claves NAME, USER y PASSWORD para que queden como sigue:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'geonode_dev',
'USER': 'geonode_dev',
'PASSWORD': 'geonode_dev',
.......
......
.....
....
...
}...}
En el diccionario DATABASES bajo la clave “datastore”, cambia únicamente los valores de las claves NAME, USER y PASSWORD para que sean como sigue:
# 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 CATALOGUE, bajo la clave “default”, descomente las claves USER y PASSWORD 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 debes alinear la estructura de la base de datos utilizando 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 configura GeoServer usando el siguiente comando:
$ paver setup
$ paver sync
6- Ahora podemos iniciar nuestra instancia de GeoNode
Advertencia
No olvides detener los servicios de producción de GeoNode si están habilitados
service apache2 stop
service tomcat7 stop
$ paver start
El proceso de inicio tardará unos 20 segundos (depende de tu máquina) y al finalizar muestra el siguiente mensaje:
Ahora puedes visitar el sitio de geonode escribiendo http://0.0.0.0:8000 en la ventana de tu navegador
Instalar GeoNode-Project para el desarrollo después de instalar GeoNode-Core¶
Geonode-Project ofrece al usuario la flexibilidad de personalizar la instalación de GeoNode. Geonode se instalará como requisito de tu proyecto. Dentro de la estructura del proyecto es posible extender, reemplazar o modificar todos los componentes de Geonode (por ejemplo, CSS y otros archivos estáticos, plantillas, modelos…) e incluso registrar nuevas aplicaciones de Django sin tocar el código original de Geonode. Para instalar GeoNode-Project, se deben ejecutar los siguientes pasos junto con los pasos de instalación anteriores de GeoNode-Core.
1- Utiliza 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úrate que estás trabajando actualmente en el entorno virtual y fuera del directorio geonode. El comando creará un nuevo proyecto llamado «my_geonode» que debería estar ubicado en el nivel del directorio de instalación de geonode-core «inside /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 están satisfechos «porque GeoNode-Core ya estaba instalado», se recomienda ejecutarlo ya que podría actualizar o instalar cualquier paquete faltante.
2- Instala 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 extenderlo.
Instalar GeoNode-Project directamente desde cero¶
Si no instaló GeoNode-Core anteriormente y deseas instalar GeoNode-Project directamente, sigue 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- Clona el repositorio geonode-project desde Github
$ git clone https://github.com/GeoNode/geonode-project.git -b 4.1.x
3- Instala el framework Django de la siguiente manera
$ pip install Django==3.2.13
4- Utiliza 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- Instala todos los requisitos para el GeoNode-Project e instala el GeoNode-Project usando pip
$ cd my_geonode
$ pip install -r requirements.txt --upgrade
$ pip install -e . --upgrade
6- Instala 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- Instala GeoServer y Tomcat usando paver
$ paver setup
$ paver sync
$ paver start
8- Visita http://localhost:8000/