Proyecto domótica PARTE 8 - Levantar sistema Smarthome

En esta sección se descargará el proyecto desde el repositorio de Github en la Raspberry Pi 2 y se realizarán las configuraciones para que el sistema de autenticación (Oauth 2) y el servidor Express NodeJS permitan acceder a nuestro sistema de administración de dispositivos.


8 Levantar proyecto

8.1 Descargar proyecto

8.1.1 Realizar el clone usando git

git clone https://github.com/pablotoledom/smart-home-alexa-and-google.git


8.2 Instalar dependencias

8.2.1 Ingrese al directorio del proyecto, ejecute los comandos para que NodeJS cree la carpeta de dependencias "node_modules", luego ejecute el comando para resolver los conflictos de vulnerabilidades.

cd smart-home-alexa-and-google
npm install

npm audit fix


8.3 Configurar conexiones

8.3.1 Actualizar la cadena de conexión a la base de datos

Abra el archivo "database-setup.js" que se encuentra en el directorio "connections".

Reemplace las cadenas de conexión a mongodb://user:password@localhost, por sus datos de conexión según los ambientes que tenga disponibles, en el paso sub-siguiente podrá definir la variable de entorno correspondiente.

8.3.2 Actualizar las rutas hacia los certificados SSL

Abra el archivo "ssl-setup.js" que se encuentra en el directorio "connections".

Reemplace las rutas hacia los archivos privkey.pem, cert.pem, chain.pem, la ruta que viene por defecto es la usada en sistemas con Ubuntu Server.

8.3.3 Agregar una variable de entorno, defina el ambiente que usará según sea el caso:

La configuración de ambiente le permite poder levantar el proyecto en diferentes máquinas y ayudarlo al desarrollo, puede modificar a gusto estas variables para que se ajusten a lo que usted busca construir.

Si solo desea levantar el servicio en su máquina local de desarrollo no es necesario definir ninguna variable.

Utilice IN_NETWORK si el servidor de base de datos se encuentra dentro de la red pero en un equipo diferente al donde levantará este proyecto, además no utiliza SSL.

export ENVIROMENT=IN_NETWORK  

Utilice REMOTE si el servidor de base de datos se encuentra fuera de su red local y deberá acceder a través de internet, además no utiliza SSL.

export ENVIROMENT=REMOTE  

Utilice PRODUCTION si el servidor de base de datos y los certificados SSL se encuentran en la misma máquina.

export ENVIROMENT=IPRODUCTION  


8.3.4 Agregar el ID y Clave Secreta para nuestro cliente web

Defina un ID y Clave Secreta, estos dos valores deben ser encriptados en Base64 y deben ser agregados en la linea 98 del archivo my-login.js.

Ejemplo: si usted define los siguientes valores "mySuperId", "mySuperSecretKey" como su id y clave respectivamente, podría utilizar el siguiente sitio web https://www.base64encode.org/ para encriptarlos en Base64. Debe usar el siguiente formato mySuperId:mySuperSecretKey resultando la siguiente cadena bXlTdXBlcklkOm15U3VwZXJTZWNyZXRLZXk=

Una vez la tenga reemplace la linea 98 del archivo my-login.js, debiendo quedar la cadena similar a esto 'Bearer bXlTdXBlcklkOm15U3VwZXJTZWNyZXRLZXk='.


8.4 Poblar base de datos 

Ejecutar el siguiente comando para insertar un set de datos de ejemplo y poder operar el proyecto con MongoDB.

node ./example-data/example-data-mongo.js


Si todo ha salido bien, deberías poder ver la pantalla de login y al iniciar la sesión ver los datos de prueba.



-> Siguiente parte ->



Indice

Parte 15) Resultados

Comentarios