ChirpStackMQTT brokerDatabasesLoRaWAN servicesYour server’s stack
Installed on your own Linux server, on site or in the cloud. The gateway connects to Gateway Bridge; decoded readings reach your dashboard through MQTT, MySQL, and the telemetry API.

Sensors in the field send readings by LoRa radio to a LoRaWAN gateway. The gateway passes them over the network to a server whose LoRaWAN services RING has set up from your deployment choices.

Your LoRaWAN gatewaySends readings from the field
Basics Station

Your Linux serverLocal or cloud

Decoded readings
Readings on request

Choose a layer to look inside

Eleven services, run with Docker

Inside your setup package

LoRaWAN services

Your server. Your dashboard. Your data.

One package connects your gateway, stores every decoded sensor reading, and serves it to your site’s own RING dashboard.

Inside the package

Receives gateway traffic, manages the network, and decodes sensor payloads.

Gateway Bridge
Gateway events
MosquittoMQTT broker
ChirpStackDecodes & publishes uplinks
PostgreSQL · Redis

Gateway Bridge publishes gateway traffic to Mosquitto. ChirpStack consumes that traffic, decodes the sensor payload, and publishes the decoded uplink back to MQTT. PostgreSQL holds network records; Redis supports sessions and runtime state.

About ChirpStack

Stores decoded readings and makes them available to the dashboard.

Decoded uplinks from MQTT
Telemetry ingestion
MySQL
Telemetry API

Ingestion subscribes to decoded MQTT uplinks and stores the readings in MySQL. The telemetry API reads that database and serves sanitized sensor data. During installation, telemetry-migrate applies the database schema before ingestion and the API start.

About MySQL

Displays this deployment’s sensor readings and weather.

Dashboard requests ↔ telemetry API
Your RING dashboardServed behind Nginx

Nginx serves the dashboard and forwards its sensor-data requests to the read-only telemetry API. The dashboard uses your server’s data and site settings. Weather comes from weather services.

Where weather comes from
What the package installs

How setup works

Six guided stages take you from a bare server to your first dashboard reading. In short:

  1. 01

    Get a server ready

    Use a mini-PC on site, or create a cloud server on AWS or Google Cloud. RING guides you through Ubuntu, SSH, and Docker, then checks the server.

  2. 02

    Download your setup package

    Answer three questions about your site. RING builds a small ZIP in your browser with everything configured for your server.

  3. 03

    Install and check

    Copy the package to the server and run the installer. Confirm all eleven services, then sign in to ChirpStack and open your dashboard.

  4. 04

    Connect the field

    Connect your gateway, then add each sensor from your own dashboard and watch its first reading arrive.

Where RING fits

A LoRaWAN network has two halves: radio hardware in the field, and software on a server that receives what the hardware sends. RING sets up the server half from a few answers, so the field half has somewhere to connect.

You bring
Soil sensors, a LoRaWAN gateway, and a Linux server: a mini-PC on site, or a virtual machine in the cloud.
What RING sets up for you
Technical details: exact versions

Each installation runs these pinned versions, as Docker containers, so every server gets the same software.

ChirpStack
4.3.2
ChirpStack REST API
4.3.0
ChirpStack Gateway Bridge
4.0.10
Mosquitto
2.0.15
PostgreSQL
14.8
Redis
7.0.11
MySQL
8.4.11
Nginx (dashboard)
1.27.5
You get
A LoRaWAN server you can sign in to and your own RING dashboard, ready for your gateway and sensors.

System architecture

For technical and research readers: every service the package runs on your server, and how a reading travels between them.

In the fieldDraginoSE01-LSRAK7393gatewayLoRa(US915 sub-band 2)User’s Linux server: one Compose projectgateway-bridge(Basics Station)mosquittochirpstack+ postgres, redistelemetry-ingestmysqltelemetry-apidashboard(Nginx)decoded uplinks/api/telemetry/public/*ws://ADDRESS:PORTBrowser: SSH tunnel,LAN, or Tailscale

Scroll sideways to see the whole figure.

Figure 1. The setup package on a user’s own Linux server: one Docker Compose project, from the sensor’s radio uplink to the site’s own dashboard. Cylinders are message and data stores; labels name the protocol, topic, or path a connection uses.

In the field, a Dragino SE01-LS sensor sends LoRa radio, US915 sub-band 2, to a RAK7393 gateway. The gateway connects over WebSocket to gateway-bridge, the Basics Station listener, on the user’s Linux server. Gateway-bridge publishes to the mosquitto MQTT broker, which exchanges messages with chirpstack, backed by postgres and redis. Mosquitto passes decoded uplinks to telemetry-ingest, which stores them in mysql; telemetry-api reads mysql. The dashboard, behind Nginx, requests readings from telemetry-api at /api/telemetry/public/. People reach the dashboard in a browser through an SSH tunnel, the local network, or Tailscale.

Table 1. The package’s services by layer.
LayerServices
LoRaWANchirpstack, gateway-bridge, mosquitto, postgres, redisReceives the gateway’s packets, joins devices, decodes payloads with the device profile’s codec, and publishes uplinks on MQTT.
Telemetrymysql, telemetry-migrate, telemetry-ingest, telemetry-apiRING’s telemetry service, built on the server from its bundled source: stores each decoded uplink and serves sanitized readings.
DashboarddashboardThe site’s own RING dashboard behind Nginx, reading only the public, read-only API routes.

Built for field deployment

Research plots
Set up gateways and sensors without rebuilding the software environment at every location.
Farm and field trials
Move hardware between deployments while keeping the setup process consistent.
University research
Give students and researchers a guided workflow instead of a long terminal checklist.

See what’s happening in the field

RING runs its own small deployment at Purdue. The soil sensors report about every 20 minutes, and every reading is kept.

Soil temperature, last 24 hours

Research context

Developed within Purdue University’s Department of Agricultural and Biological Engineering as part of ongoing digital agriculture research.

The project is connected to IoT4Ag, the Internet of Things for Precision Agriculture research center. Its sensors report from the IoT4Ag laboratory and from a plot outdoors.

About the project

Ready to set up a deployment?

Setup runs in your browser and never connects to your server. You run each step yourself and check the result before moving on.

Start setup