The Things Stack is composed of a number of components. The core components Network Server, Application Server and Join Server follow the LoRaWAN Network Reference Model. The Things Stack also contains an Identity Server, Gateway Server, Console and Command-line Interface.
The Identity Server provides the registries that store entities such as applications with their end devices, gateways, users, organizations and OAuth clients. It also manages access control through memberships and API keys.
The Gateway Server maintains connections with gateways supporting the Basic Station, UDP, MQTT and gRPC protocols. It forwards uplink traffic to Network Servers directly or indirectly, and schedules downlink traffic on gateways.
The Network Server handles the LoRaWAN network layer, including MAC commands, regional parameters and adaptive data rate (ADR).
The Application Server handles the LoRaWAN application layer, including uplink data decryption and decoding, downlink queuing and downlink data encoding and encryption.
It hosts an MQTT server for streaming application data, supports HTTP webhooks as well as pub/sub integrations.
The Join Server handles the LoRaWAN join flow, including Network and Application Server authentication and session key generation.
The Console is the management application of The Things Stack for LoRaWAN. It is a web application which can be used to register applications, end devices or gateways, monitor network traffic, or configure network related options, among other things. The Console uses an OAuth access token to communicate with The Things Stack.
The QR Code Generator generates QR codes for devices in various formats. These QR codes can be used for various purposes, including identification and device claiming to transfer ownership.
The Command-line Interface (CLI) provides a cross-platform interface for managing components through the command-line.
The Device Template Converter converts data to device templates for migrating networks and importing vendor-specific data.
The Gateway Configuration Server (GCS) generates configuration files for UDP gateways and manages gateway configuration and firmware updates for Basic Station and The Things Kickstarter gateways.