Instalación de ChirpStack
La instalación efectuada en esta implementación es mediante el uso de contenedores. Para lo cual se ha empleado una versión modificada del repositorio sugerido por ChirpStack.
En este caso, ChirpStack provee un conjunto de imágenes de Docker para cada uno de los componentes del proyecto, los cuales se pueden encontrar en el siguiente enlace: https://hub.docker.com/u/chirpstack/.
No obstante, una mejor forma de orquestar los contenedores, se emplea Docker Compose, cuyo repositorio sugerido por ChirpStack es https://github.com/brocaar/chirpstack-docker.git.
Luego, para poder utilizar este repositorio es necesario realizar los siguientes pasos que se detallan a continuación.
Obtener el repositorio
En el presente caso, se está empleado una versión modificado del repositorio sugerido, el cual se puede encontrar en la siguiente dirección: https://gitlab.com/plataformaiot/chirpstack-docker.
Este repositorio constituye un submódulo del repositorio general para docker de este proyecto, el cual se puede apreciar también en la instalación de la plataforma.
git clone https://gitlab.com/plataformaiot/deployment-docker
cd deployment-docker
git submodule init
git submodule update
cd chirpstack-docker
Una vez que se encuentra en la carpeta del repositorio de ChirpStack puede realizar el despliegue, no obstante, primero se deberán realizar algunas configuraciones para adaptarlos a las características de los equipos.
Configurar los componentes de ChirpStack
ChirpStack cuenta con varios componentes que se deben desplegar a través de docker compose para lograr la conexión de dispositivos a través de la arquitectura de LoRaWAN.
En este caso, la configuración más importante es del servidor de red, que en el caso del repositorio que emplea este proyecto se encuentra adaptado para trabajar en la banda de frecuencias AU915, empleando los 16 primeros canales, debido a que los gateways con los que se trabaja en la institución donde se está aplicando este proyecto, operan dentro de estas bandas.
La configuración se puede encontrar en el folder
configuration/chirpstack-network-sever/
en el archivo chirpstack-network-server.toml
.
La modificación más importante se puede apreciar en la siguiente sección:
[network_server.band]
name="AU915"
[network_server.network_settings]
enabled_uplink_channels=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]
Despliegue mediante docker
Una vez que se ha configurado, es posible desplegar los contenedores mediante
Docker compose para lo cual es necesario contar con docker
y docker-compose
instalados.
Adicionalmente, se requiere contar con una red externa para poder realizar la
integración con Thingsboard, denominada nginx-proxy
.
version: "3"
services:
chirpstack-network-server:
image: chirpstack/chirpstack-network-server:3
volumes:
- ./configuration/chirpstack-network-server:/etc/chirpstack-network-server
chirpstack-application-server:
image: chirpstack/chirpstack-application-server:3
ports:
- 8080:8080
volumes:
- ./configuration/chirpstack-application-server:/etc/chirpstack-application-server
chirpstack-gateway-bridge:
image: chirpstack/chirpstack-gateway-bridge:3
ports:
- 1700:1700/udp
volumes:
- ./configuration/chirpstack-gateway-bridge:/etc/chirpstack-gateway-bridge
chirpstack-geolocation-server:
image: chirpstack/chirpstack-geolocation-server:3
volumes:
- ./configuration/chirpstack-geolocation-server:/etc/chirpstack-geolocation-server
postgresql:
image: postgres:9.6-alpine
environment:
- POSTGRES_PASSWORD=root
volumes:
- ./configuration/postgresql/initdb:/docker-entrypoint-initdb.d
- postgresqldata:/var/lib/postgresql/data
redis:
image: redis:5-alpine
volumes:
- redisdata:/data
mosquitto:
image: eclipse-mosquitto:2
ports:
- 1883:1883
volumes:
- ./configuration/eclipse-mosquitto/mosquitto.conf:/mosquitto/config/mosquitto.conf
volumes:
postgresqldata:
redisdata:
networks:
default:
external:
name: nginx-proxy
Ahora para poder desplegar estos contenedores se emplea el siguiente comando:
docker-compose up -d