Architecture

A typical ChirpStack deployment has the following architecture. Note that in this diagram, the gateways are connected in different ways to ChirpStack to highlight the different possible connectivity options.

Gcluster_0Cloud / server / VMcluster_1LoRa® Gatewaycluster_2LoRa® Gatewaycluster_3LoRa® Gatewaycluster_4LoRa® Gatewaycluster_5IntegrationschirpstackChirpStackpub-subMQTT brokerchirpstack->pub-subMQTThttp-intHTTPchirpstack->http-intmqtt-intMQTTchirpstack->mqtt-intother-intEtc ...chirpstack->other-intchirpstack-gateway-bridge-cloudChirpStack Gateway Bridgechirpstack-gateway-bridge-cloud->pub-subMQTTchirpstack-mqtt-forwarder-gw1UDP Packet Forwarder +ChirpStack MQTT Forwarderchirpstack-mqtt-forwarder-gw1->pub-subMQTTchirpstack-mqtt-forwarder-gw2ChirpStack Concentratord +ChirpStack MQTT Forwarderchirpstack-mqtt-forwarder-gw2->pub-subMQTTpacket-forwarder-gw2UDP Packet Forwarderpacket-forwarder-gw2->chirpstack-gateway-bridge-cloudUDPpacket-forwarder-gw3Basics Stationpacket-forwarder-gw3->chirpstack-gateway-bridge-cloudWebsocketsas-api-clientAPI clientas-api-client->chirpstackgRPC

Multi-region example 1

This example displays a multi-region ChirpStack installation (EU868 and US915) using a single MQTT broker. Please note the MQTT prefix. In this case for US915 the prefix us915_0 is used, indicating that this region uses the first 8 channels of the US915 region (the prefix is user-configurable). To keep the diagram simple, some elements of the previous diagram have been left out.

Gcluster_0Cloud / server / VMcluster_1LoRa® Gateway (EU868)cluster_2LoRa® Gateway (EU868)cluster_3LoRa® Gateway (US915)cluster_4LoRa® Gateway (US915)chirpstackChirpStackpub-subMQTT brokerchirpstack->pub-subMQTTchirpstack-gateway-bridge-cloud-eu868ChirpStack Gateway Bridge (EU868)chirpstack-gateway-bridge-cloud-eu868->pub-subMQTTeu868/gateway/...chirpstack-gateway-bridge-cloud-us915ChirpStack Gateway Bridge (US915)chirpstack-gateway-bridge-cloud-us915->pub-subMQTTus915_0/gateway/...chirpstack-gateway-bridge-gw-eu868UDP Packet Forwarder +ChirpStack MQTT Forwarderchirpstack-gateway-bridge-gw-eu868->pub-subMQTTeu868/gateway/...packet-forwarder-gw2-eu868UDP Packet Forwarderpacket-forwarder-gw2-eu868->chirpstack-gateway-bridge-cloud-eu868UDPchirpstack-gateway-bridge-gw-us915UDP Packet Forwarder +ChirpStack MQTT Forwarderchirpstack-gateway-bridge-gw-us915->pub-subMQTTus915_0/gateway/...packet-forwarder-gw2-us915UDP Packet Forwarderpacket-forwarder-gw2-us915->chirpstack-gateway-bridge-cloud-us915UDP

Multi-region example 2

As an alternative to the previous diagram, it is also possible to setup a separate MQTT broker per region. In this it is no longer a requirement to use the region prefix in the MQTT topic.

Gcluster_0Cloud / server / VMcluster_1LoRa® Gateway (EU868)cluster_2LoRa® Gateway (EU868)cluster_3LoRa® Gateway (US915)cluster_4LoRa® Gateway (US915)chirpstackChirpStackpub-sub-eu868MQTT broker EU868chirpstack->pub-sub-eu868MQTTpub-sub-us915MQTT broker US915chirpstack->pub-sub-us915MQTTchirpstack-gateway-bridge-cloud-eu868ChirpStack Gateway Bridge (EU868)chirpstack-gateway-bridge-cloud-eu868->pub-sub-eu868MQTTchirpstack-gateway-bridge-cloud-us915ChirpStack Gateway Bridge (US915)chirpstack-gateway-bridge-cloud-us915->pub-sub-us915MQTTchirpstack-gateway-bridge-gw-eu868UDP Packet Forwarder +ChirpStack MQTT Forwarderchirpstack-gateway-bridge-gw-eu868->pub-sub-eu868MQTTpacket-forwarder-gw2-eu868UDP Packet Forwarderpacket-forwarder-gw2-eu868->chirpstack-gateway-bridge-cloud-eu868UDPchirpstack-gateway-bridge-gw-us915UDP Packet Forwarder +ChirpStack MQTT Forwarderchirpstack-gateway-bridge-gw-us915->pub-sub-us915MQTTpacket-forwarder-gw2-us915UDP Packet Forwarderpacket-forwarder-gw2-us915->chirpstack-gateway-bridge-cloud-us915UDP

ChirpStack components

ChirpStack Concentratord

ChirpStack Concentratord is an open-source LoRa concentrator daemon. It exposes a ZeroMQ based API that can be used by one or multiple (forwarder) applications to interact with the gateway hardware.

ChirpStack MQTT Forwarder

ChirpStack MQTT Forwarder is an open-source Protobuf or JSON MQTT packet forwarder, which can either use the Semtech UDP Packet Forwarder or ChirpStack Concentratord as gateway backend. It is intended to be installed on each gateway.

ChirpStack Gateway Bridge

ChirpStack Gateway Bridge is an open-source bridge which converts messages received from the Semtech UDP Packet Forwarder or Semtech Basics Station into MQTT. It can be installed on the gateway, or in the cloud.

ChirpStack

ChirpStack is an open-source LoRaWAN Network Server which can be used to to setup private or public LoRaWAN networks. ChirpStack provides a web-interface for the management of gateways, devices and tenants as well to setup data integrations with the major cloud providers, databases and services commonly used for handling device data. ChirpStack provides a gRPC based API that can be used to integrate or extend ChirpStack.