Descripción
Ya empezamos a tener algunos servicios en nuestro IoT Gateway y más de uno tiene interficie de gestión Web. Así pues, nada más útil que hacer una página que los liste todos y a través de un enlace nos permita acceder de forma transparente y sencilla a los mismos.
Esto también será muy práctico cuando empecemos a desarrollar soluciones y funciones para nuestros clientes. Ya que podremos referenciar los dashboards, sinópticos y otros elementos desde esta única página web.
Proxy inverso con NGINX
NGINX permitirá acceder a nuestros servicios desde un único punto de acceso.
Directorios y extracción de ficheros
Descarga el siguiente fichero y lo copiamos al directorio /docker-data de nuestro IoT Gateway:
y ejecuta los siguientes parámetros:
cd /docker-data
# asumimos que el fichero nginx.tar.gz esta en este directorio
tar xvfz nginx.tar.gz
Copy
Bash
si este proceso ha funcionado adecuadamente al entrar en el directorio nginx y ejecutar el comando tree deberíamos ver esta estructura de ficheros.
.
├── data
├── docker-compose.yml
├── etc
│ ├── conf.d
│ │ └── default.conf
│ ├── fastcgi_params
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── nginx.conf
│ ├── scgi_params
│ ├── uwsgi_params
│ └── win-utf
├── html
│ └── index.html
└── logs
Copy
YAML
Fichero /docker-data/nginx/docker-compose.yml
Modificación de los servicios web ya instalados para trabajar con el proxy inverso
Cambios en Grafana
Importante tener parado Grafana para hacer este cambio
cd /docker-data/grafana
docker-compose down
Copy
Shell
En el fichero de configuración de Grafana (/docker-data/grafana/etc/grafana.ini) hay que localizar este trozo de código:
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
;serve_from_sub_path = false
Copy
YAML
y añadimos una línia como esta
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
;root_url = %(protocol)s://%(domain)s:%(http_port)s/
root_url = %(protocol)s://%(domain)s:%(http_port)s/board
# Serve Grafana from subpath specified in `root_url` setting. By default it is set to `false` for compatibility reasons.
serve_from_sub_path = true
Copy
YAML
volver a levantar Grafana
cd /docker-data/grafana
docker-compose up -d
Copy
Shell
Cambios en Node-RED
Importante tener parado Node-RED para hacer este cambio
cd /docker-data/node-red
docker-compose down
Copy
Shell
Cambios en /docker-data/node-red/docker-compose.yml
Básicamente dejamos de usar el stack de red del host para poner NodeRED en nuestra red de contenedores privada llamada i40sys.
Cambios en el fichero de configuración
En el fichero de configuración de NodeRED (/docker-data/node-red/data/settings.js) localizamos estas líneas:
// The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot',
// to apply the same root to both parts.
//httpRoot: '/red',
Copy
JSON
y añadimos una nueva línia para que quede exactamente así:
// The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot',
// to apply the same root to both parts.
//httpRoot: '/red',
httpRoot: '/flows',
Copy
JSON
volver a levantar Node-red
cd /docker-data/node-red
docker-compose up -d
Copy
Shell
Instalación y configuración del dashboard de servicios
El dashboard que hemos creado es como este:
Y el proyecto que hemos usado para esto es:
Creamos los directorios de trabajo:
Descarga el siguiente fichero y lo copiamos al directorio /docker-data de nuestro IoT Gateway:
y ejecuta los siguientes parámetros:
cd /docker-data
# asumimos que el fichero nginx.tar.gz esta en este directorio
tar xvfz dashboard.tar.gz
Copy
Bash
si este proceso ha funcionado adecuadamente al entrar en el directorio dashboard y ejecutar el comando tree deberíamos ver esta estructura de ficheros.
.
├── assets
│ ├── additionnal-page.yml.dist
│ ├── config.yml
│ ├── config.yml.dist
│ ├── config.yml.dist.sample-sui
│ ├── custom.css
│ ├── icons
│ │ ├── favicon-16x16.png
│ │ ├── favicon-16x16.png_
│ │ ├── favicon-32x32.png
│ │ ├── favicon-32x32.png_
│ │ ├── icon-any.png
│ │ ├── icon-any.svg
│ │ ├── icon-maskable.png
│ │ └── safari-pinned-tab.svg
│ ├── logo_i40_systems_fondo_blanc.png
│ ├── manifest.json
│ └── tools
│ ├── sample2.png
│ └── sample.png
└── docker-compose.yml
Copy
JSON
Fichero /docker-data/dashboard/docker-compose.yml