Una vez clonado el repositorio puedes instalar y ejecutar tanto backend como frontend siguiendo los pasos que se describen a continuación.
El backend de IPManager tiene algunas dependencias que tienes que instalar para que funcione correctamente, son las siguientes:
apt install sshpass
apt instal openssl
apt install libffi6
pip3 install -r requirements.txt
Asegúrate que la versión instalada del paquete werkzeug
coincide con 0.16.1
.
Para ejecutarlo puedes hacerlo mediante Flask o con Gunicorn.
-
Flask (no recomendado):
export FLASK_APP=wsgi.py flask run
-
Gunicorn:
gunicorn -b 0.0.0.0:5000 wsgi:app
El backend también está disponible en Docker, puedes descargarte la imagen de la siguiente manera:
docker pull harvestcore/ipm-backend:<tag>
Se recomienda siempre utilizar la última versión disponible de la imagen, la cual puede consultarse aquí o aquí. Revisa también las variables de entorno necesarias para ejecutar el backend.
Ejemplo de ejecución:
docker run -e MONGO_HOSTNAME=172.20.0.2 harvestcore/ipm-backend:<tag>
Si por el contrario quieres construir tú mismo la imagen, ejectuta:
cd backend
docker build . -t ipm-backend:<tag>
Para instalar el frontend primero revisa y configura las variables de entorno, tras eso solo tienes que ejecutar lo siguiente:
cd frontend
// Construir el frontend
npm build --prod
Para ejecutarlo se recomienda utilizar Nginx u otro tipo de servidor web. En la raíz del frontend se adjunta el archivo de configuración (nginx.conf
) usado para construir la imagen de Docker, y tambien puede ser usado en este caso.
Puedes ejecutar el frontend con Docker, para ello puedes bajarte la imagen del repositorio disponible o puedes construir y ejecutar tú mismo la imagen.
docker pull harvestcore/ipm-frontend:<tag>
El tag o versión lo puedes consultar aquí o aquí. Se recomienda usar siempre la última versión estable, las versiones latest pueden contener bugs.
cd frontend
// Construir imagen
docker build . -t ipm-frontend:<tag>
docker run ipm-frontend:<tag>
En el caso de utilizar el docker-compose que se encuentra en la raíz del repositorio solo es necesario ejecutar lo siguiente:
// Construir imágenes
docker-compose build
// Ejecutar imágenes
docker-compose up
Por supuesto se pueden agregar variables de entorno para configurar el backend. Un ejemplo sería:
docker-compose up -e BASE_DATABASE=ipm_root
El docker-compose tiene configurada una red bridge con la siguiente subnet:
172.20.0.0/16
Por otro lado las máquinas cuentan con las siguientes direcciones IP estáticas asignadas:
- mongo:
172.20.0.2
- ipmanager-backend:
172.20.0.3
- ipmanager-frontend:
172.20.0.4
También se fija la variable de entorno BASE_DATABASE
con valor ipm_root
.