构建需要 Nix(推荐)和 Docker,未装 Nix 时需用 make docker-devshell 启动环境;跑测试前要先用 docker compose up -d 启动 PostgresQL、Redis、Mosquitto 等服务;默认按 PostgreSQL 后端构建,用 SQLite 需设置 DATABASE=sqlite
nix-shell
make docker-devshellREADME 未说明
开源 LoRaWAN 网络服务器,用来搭建和管理 LoRaWAN 网络、网关与设备
开源的 LoRaWAN 网络服务器,负责管理 LoRa 网关与终端设备之间的入网、数据上下行和网络调度,适合自建低功耗广域物联网。
核心能力
- 提供 Web 界面管理网关、设备和租户
- 配置与主流云厂商、数据库和服务的数据集成
- 提供基于 gRPC 的 API 用于集成和扩展
- 支持 PostgreSQL 与 SQLite 两种数据库后端
- 用 Nix 和 Docker 搭建开发环境并交叉编译
容易踩的坑
- v4.20.0最新正式版2026-10-21 · 2026-10-21 07:48 UTC
v4.20.0
Features
Tenant device-profile and application admin
This feature refactors the tenant device-admin such that it becomes possible to provide tenant-users admin access to certain device-profiles and applications. With this change:
- Regular tenant users (non-admin) are no longer able to see applications and resources under an application (devices, integrations, etc..). They can still see device-profiles but can not modify these.
- Tenant device-admins have full admin access to device-profiles and applications (+ everything under an application).
- Device-profile admins gain update permissions to the selected device-profiles (but can not delete these device-profiles, as this would cascade to deleting devices using these profiles too).
- Application users gain access to the selected applications (+ everything under it). Optionally, this permission can be set to read-only such that users can not make modifications.
Use-cases for this feature are for example providing a device vendor access to the device-profile such that it can make modifications to the codec if needed and / or provide users access to a limited set of applications.
Other features
- Add support for MQTT session expiration interval. (#993)
- Add app-layer parameters to device-profile import.
- Warn users on insecure
api.secret+ auto-generate secret on Debian / Ubuntu install. (#1025)
Improvements
- Update cross-compiling Dockerfiles after
cross-rsbase-image updates.
Bugfixes
- Fix
RemoveRelayDeviceRequestREST URL. - Fix set default gateway downlink priority to 10 in UI and API if undefined.
- Add config option to set downlink priority for unknown gateways.
- Fix typos in
TenantForm. (#992) - Do not count
LinkADRAnswith nACK in case the error is recoverable. - Fix list multicast-groups / fuota deployments when there are no applications. (#1018)
- Fix set
dev_eui_relayedwhen saving relayed join-accept downlink-frame. (#1014) - Fix enable KR920 DR12 and DR13 for downlink. (#1023)
- Fix using the end-device data-rate for relayed uplinks in ADR handling. (#1026)
- Fix validate that fuota payload is not empty. (#1031)
- Fix delete multicast-group after session timeout on
FragStatusReqretry. (#1033)
- v4.20.0-test.3pre-release2026-10-12 · 2026-10-12 14:46 UTC
查看更新说明
v4.20.0-test.3
Features
Tenant device-profile and application admin
This feature refactors the tenant device-admin such that it becomes possible to provide tenant-users admin access to certain device-profiles and applications. With this change:
- Regular tenant users (non-admin) are no longer able to see applications and resources under an application (devices, integrations, etc..). They can still see device-profiles but can not modify these.
- Tenant device-admins have full admin access to device-profiles and applications (+ everything under an application).
- Device-profile admins gain update permissions to the selected device-profiles (but can not delete these device-profiles, as this would cascade to deleting devices using these profiles too).
- Application users gain access to the selected applications (+ everything under it). Optionally, this permission can be set to read-only such that users can not make modifications.
Use-cases for this feature are for example providing a device vendor access to the device-profile such that it can make modifications to the codec if needed and / or provide users access to a limited set of applications.
Other features
- Add support for MQTT session expiration interval. (#993)
- Add app-layer parameters to device-profile import.
- Warn users on insecure
api.secret+ auto-generate secret on Debian / Ubuntu install. (#1025)
Bugfixes
- Fix
RemoveRelayDeviceRequestREST URL. - Fix set default gateway downlink priority to 10 in UI and API if undefined.
- Add config option to set downlink priority for unknown gateways.
- Fix typos in
TenantForm. (#992) - Do not count
LinkADRAnswith nACK in case the error is recoverable. - Fix list multicast-groups / fuota deployments when there are no applications. (#1018)
- Fix set
dev_eui_relayedwhen saving relayed join-accept downlink-frame. (#1014) - Fix enable KR920 DR12 and DR13 for downlink. (#1023)
- Fix using the end-device data-rate for relayed uplinks in ADR handling. (#1026)
- Fix validate that fuota payload is not empty. (#1031)
- Fix delete multicast-group after session timeout on
FragStatusReqretry. (#1033)
- v4.19.22026-09-19 · 2026-09-19 13:35 UTC
查看更新说明
- v4.19.12026-08-04 · 2026-08-04 08:36 UTC
查看更新说明
v4.19.1
Bugfixes
- Set default gateway priority to 10 in UI and API if undefined.
- Add
unknown_gateway_downlink_priorityconfig option (with 10 as default) for setting downlink priority of unknonwn gateways (if enabled).
- v4.20.0-test.2pre-release2026-07-29 · 2026-07-29 10:08 UTC
查看更新说明
v4.20.0-test.2
Features
Tenant device-profile and application admin
This feature refactors the tenant device-admin such that it becomes possible to provide tenant-users admin access to certain device-profiles and applications. With this change:
- Regular tenant users (non-admin) are no longer able to see applications and resources under an application (devices, integrations, etc..). They can still see device-profiles but can not modify these.
- Tenant device-admins have full admin access to device-profiles and applications (+ everything under an application).
- Device-profile admins gain update permissions to the selected device-profiles (but can not delete these device-profiles, as this would cascade to deleting devices using these profiles too).
- Application users gain access to the selected applications (+ everything under it). Optionally, this permission can be set to read-only such that users can not make modifications.
Use-cases for this feature are for example providing a device vendor access to the device-profile such that it can make modifications to the codec if needed and / or provide users access to a limited set of applications.
Other features
- Add support for MQTT session expiration interval. (#993)
Bugfixes
- Fix
RemoveRelayDeviceRequestREST URL. - Fix set default gateway priority to 10 in UI and API if undefined.
- Fix typos in
TenantForm. (#992)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
ChirpStack open-source LoRaWAN(R) Network Server
ChirpStack is an open-source LoRaWAN(R) Network Server which can be used to set up LoRaWAN networks. ChirpStack provides a web-interface for the management of gateways, devices and tenants as well to set up 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.
Documentation and binaries
Please refer to the ChirpStack website for documentation and pre-compiled binaries.
Building from source
Requirements
Building ChirpStack requires:
Nix
Nix is used for setting up the development environment which is used for local development and for creating the binaries.
If you do not have Nix installed and do not wish to install it, then you can use the provided Docker Compose based Nix environment. To start this environment execute the following command:
make docker-devshell
Note: You will be able to run the test commands and run cargo build, but
cross-compiling will not work within this environment (because it would try start
Docker within Docker).
Docker
Docker is used by cross-rs for cross-compiling,
as well as some of the make commands.
Starting the development shell
Run the following command to start the development shell:
nix-shell
Or if you do not have Nix installed, execute the following command:
make docker-devshell
Building the UI
To build the ChirpStack UI, execute the following command:
make build-ui
Running ChirpStack tests
Start required services
ChirpStack requires several services like PostgresQL, Redis, Mosquitto, ...
to be running before you can run the tests. You need to start these services
manually if you started the development shell using nix-shell:
docker compose up -d
Run tests
Run the following command to run the ChirpStack tests:
# Test (with PostgresQL database backend)
make test
# Test with SQLite database backend
DATABASE=sqlite make test
Building ChirpStack binaries
Before compiling the binaries, you need to install some additional development tools (for cross-compiling, packaging, e.d.). Execute the following command:
make dev-dependencies
Run the following command within the ./chirpstack sub-folder:
# Build AMD64 debug build (optimized for build speed)
make debug-amd64
# Build AMD64 release build (optimized for performance and binary size)
make release-amd64
# Build all packages (all targets, .deb, .rpm and .tar.gz files)
make dist
By default the above commands will build ChirpStack with the PostgresQL database
database backend. Set the DATABASE=sqlite env. variable to compile ChirpStack
with the SQLite database backend.
Database migrations
To create a new database migration, execute:
make migration-generate NAME=test-migration
To apply migrations, execute:
make migration-run
To revert a migration, execute:
make migration-revert
By default the above commands will execute the migration commands using the
PostgresQL database backend. To execute migration commands for the SQLite
database backend, set the DATABASE=sqlite env. variable.
License
ChirpStack Network Server is distributed under the MIT license. See also LICENSE.