// the find
brocaar/chirpstack-network-server
ChirpStack Network Server is an open-source LoRaWAN network-server.
This is the v3 network server component of ChirpStack, an open-source LoRaWAN stack. It handles uplink deduplication, downlink scheduling, OTAA, MAC commands, and passive roaming between operators. If you're running LoRaWAN infrastructure and need something self-hosted, this is the most mature open-source option in that space.
The LoRaWAN protocol coverage is thorough — Class A/B/C, LoRaWAN 1.1, LR-FHSS, multicast, and passive roaming (TS002) are all implemented and tested. The pluggable ADR algorithm (with a plugin example in /examples/adr-plugin) is genuinely useful since ADR tuning is often site-specific. Gateway backend abstraction covers MQTT, AMQP, Azure IoT Hub, and GCP Pub/Sub, so you're not locked to one transport. The test suite in /internal/testsuite covers the full uplink/downlink flow end-to-end including roaming paths, which is rare for infrastructure-level Go projects.
This repo is deprecated — v4 moved to a unified monorepo at chirpstack/chirpstack, and v3 is in maintenance-only mode. Starting a new deployment on this is a bad idea; you'd be inheriting a migration burden on day one. The device session is stored as a serialized protobuf blob in Redis, which makes debugging session state opaque and schema migrations painful. Documentation links in the README point to the chirpstack.io docs site where v3 content may be partially replaced or removed as v4 takes over. The roaming implementation requires careful operator coordination and the passive roaming test setup isn't documented well enough to run without reading the LoRaWAN backend interfaces spec.