LoRa Server is an open-source LoRaWAN network-server. It is responsible for handling (and de-duplication) of uplink data received by the gateway(s) and the scheduling of downlink data transmissions.
This project exists out of multiple components
- lora-gateway-bridge - converts the packet_forwarder protocol to MQTT and back
- loraserver - LoRaWAN network-server
- lora-app-server - LoRaWAN application-server
- lora-controller (todo) - LoRaWAN network-controller
Please refer to the documentation for the getting started documentation and implemented features.
Pre-compiled binaries are available for:
- Linux (including ARM / Raspberry Pi)
- OS X
- Windows
See https://github.com/brocaar/loraserver/releases for downloads. Source-code can be found at https://github.com/brocaar/loraserver.
The easiest way to get started is by using the provided docker-compose environment. To start a bash shell within the docker-compose environment, execute the following command from the root of this project:
docker-compose run --rm loraserver bash
A few example commands that you can run:
# run the tests
make test
# compile
make build
# cross-compile for Linux ARM
GOOS=linux GOARCH=arm make build
# cross-compile for Windows AMD64
GOOS=windows BINEXT=.exe GOARCH=amd64 make build
# build the .tar.gz file
make package
# build the .tar.gz file for Linux ARM
GOOS=linux GOARCH=arm make build
# build the .tar.gz file for Windows AMD64
GOOS=windows BINEXT=.exe GOARCH=amd64 make build
Alternatively, you can run the same commands from any working
Go environment. As all requirements are vendored,
there is no need to go get
these, but make sure vendoring is enabled for
your Go environment or that you have Go 1.6+ installed.
LoRa Server is distributed under the MIT license. See also LICENSE.