RAK7393 WisGate Connect Outdoor Services
Docker
Docker is an open-source platform for building, deploying, and managing containerized applications. Everything you need to run an application, such as the application source code, the operating system libraries, and the dependencies, are all packed into one container.
Using Docker simplifies the development and delivery of distributed applications. Whether you are a developer or an end user, you can deploy and run applications in any environment within minutes.
Since Docker makes application containerization run easier, faster, and more secure, Docker CE (version 20.10.17, build 100c701) comes pre-installed in RAKPiOS. The default user RAK is added to the docker group, eliminating the need to preface Docker commands with sudo.
This section provides several services to help users get started. These services fall under categories such as LoRaWAN, Zigbee, Home Automation, VPN, and more.
Portainer
Portainer CE is a lightweight service management platform for containerized applications. It can manage Docker, Swarm, Kubernetes, and ACI environments, allowing users to handle orchestrator resources such as containers, images, volumes, networks, and more. Check the official Portainer website for more information. The default login credentials are:
- Username:
admin - Password:
changeme
A Portainer deployment script is created to simplify setup and management. You can specify the desired Portainer version and app template by running the following command:
rak@rakpios:~ $ portainer -h
Usage: portainer [OPTION] COMMAND
Options:
-h,--help Print this Help
-v <portainer image version> define a specific version of portainer you want to deploy
-t <portainer app template url> define a specific portainer app template to start with
Commands:
up Start portainer service
down Stop portainer service
Portainer includes a pre-built set of app templates, but you are free to modify or replace these with your own. You can also create custom templates manually or from an existing stacks.
Figure 1: Portainer platformLoRaWAN Packet Forwarder
A Packet Forwarder is a program running on a gateway that interacts with the following:
- LoRa chip: to receive and transmit LoRa packets.
- Network: to transmit them for applications.
Templates are available for two types of LoRaWAN Packet Forwarder services:
- LoRa Basics™ Station
- UDP Packet Forwarder
LoRa Basics™ Station
This service deploys a LoRaWAN gateway using the Basics™ Station Semtech Packet Forward protocol, either in a Docker container or as a Balena.io application. The Basics™ Station protocol provides reliable and secure communication between gateways and the cloud and is becoming the standard Packet Forward protocol adopted by most LoRaWAN operators.
To check the Dockfile, the environmental variables, docker-compose file, and other details, visit the Basics™ Station GitHub repository of this project.
UDP Packet Forwarder
The Semtech UDP Packet Forwarder is the original LoRaWAN packet forwarder, connecting to servers through the Semtech UDP protocol. This service deploys a LoRaWAN gateway running the UDP Packet Forwarder protocol in a Docker container on a computer, Raspberry Pi, or compatible SBC. This service has been tested with The Things Stack Community Edition (TTSCE or TTNv3).
To check the Dockfile, the environmental variables, docker-compose file, and other details, visit the UDP Packet Forwarder GitHub repository.
LoRaWAN Network Server
A LoRaWAN Network Server (LNS) connects sensors, gateways, and end-user applications, ensuring reliable and secure data routing throughout the LoRaWAN network.
The templates are provided for two network server options:
- ChirpStack Network Server
- The Things Stack LNS
ChirpStack Network Server
The ChirpStack open-source LoRaWAN Network Server stack provides open-source components for LoRaWAN networks. Together they form a ready-to-use solution, including a user-friendly web interface for device management and APIs for integration.
This service is provided in Portainer's app template and is modified based on the docker-compose.yml provided by Chirpstack. Check the official repository ChirpStack Docker example for more details about environmental variables and configuration.
The Things Stack LNS
The Things Stack (TTS) is a flexible and robust LoRaWAN Network Server suitable for a wide range of deployments, from covering the essentials to advanced security configurations to device life cycle management.
The service deploys The Things Stack LoRaWAN Network Server (Open Source Edition) on a PC, a Raspberry Pi, or an equivalent SBC using Docker.
To check the Dockfile, dock-compose.yml file, environmental variables, and other details, visit the The Things Stack Docker GitHub repository.
Grafana
Grafana is an open-source analytics and monitoring solution for every database. It allows you to query, visualize, alert on, and analyze your metrics from multiple data sources. You can create, explore, and share dashboards to encourage a data-driven workflow.
For references on running the Grafana Docker image, check the official Grafana documentation.
Figure 1: Grafana system monitoring dashboardInfluxDB
InfluxDB is an open-source time-series platform. It includes APIs for storing and querying data, processing it in the background for ETL or monitoring and alerting purposes, user dashboards, visualizing and exploring the data, and more.
If you need more details on the service's configurations, environmental variables, and references, check influxDB's Docker-hub official page for more details.
