Secuencia de comandos en mac:
brew install postgres postgres -D /usr/local/var/postgres create database django_xdata; create user postgres with password '1'; GRANT ALL PRIVILEGES ON DATABASE django_xdata to postgres;
Habilitar dynamic scripting. Editar el archivo config/eliasticsearch.yml agregando las siguientes lineas
script.inline: true
script.indexed: true
http.port: 9400
Ejecutar el servidor de elasticSearch
./bin/elasticsearch -d
Django es el framework web utilizado en el proyecto. La versión elegida es: 1.8.11
Se siguieron los estándares de Django con lo cual haciendo el tutorial oficial de Django es fácil entender la estructura del proyecto. Dentro de la carpeta principal existen múltiples directorios.
Estos directorios contienen scripts para utilizar en desarrollo y en producción. Los archivos enter.sh contienen las definiciones de variables de entorno utilizadas en el entorno virtual.
El directorio env es creada con el comando del entorno virtual y no es parte del repositorio. Allí se instalarán todas las dependencias.
Los demás directorios api, core, docs y web corresponden a aplicaciones de Django. Dentro de cada una de ellas existen los siguientes archivos:
Además cada app cuenta con los siguientes directorios:
Esta app contiene la definición de modelos más importantes del proyecto que se persistirán en postgres e indexarán en elastic search
Esta app contiene todoas las vistas web. Consumirán los modelos de Core y rendeará las vistas web con las visualizaciones
Es la app responsable de atender los pedidos que se envían al API consumiento los modelos de Core
Contiene las vistas web con la documentación del proyecto
Crear el entorno virtual ingresando al directorio del repositorio y ejecutar
virtualenv –distribute env
Entrar al entorno virtual
source dev/enter.sh
Instalar el archivo con los requisitos
pip install -r requirements.txt
Ejecutar el servidor de desarrollo con el comando (Nunca utilizar este servidor para producción)
m runserver
Dentro del directorio /prod existen múltiples scripts de utilidad que pueden ser ejecutados desde un cron o manualmente. Cada script incluye el comando para ingresar en el entorno virtual de producción automáticamente
El script start_django_server.sh inicia el servidor de producción con Gunicorn en el puerto 8000
El script kill_django_server.sh detiene el servidor de producción
El script start_elasticsearch.sh inicia la ejecución de elastic search
El script rebuild_index.sh reconstruye el índice de elastic search utilizando los datos en la base de postgres
El script get_rss.sh buscá las noticias de los medios cargados y los guarda en la base de datos