Do not use the master version in production, they are in-progress not tested at scale versions, please use the Released Versions
Installation is automated with a script and take under 5 minutes for a standard configuration.
As a pre-requisite:
Once you completed the pre-requisite, you can run setup script
bash ./makeiteasy.sh
For advanced user & usage, I recommend to follow the full installation guide including the Chirpstack configuration is detailed on (disk91.com blogpost)[https://www.disk91.com/2022/technology/helium/installing-chirpstack-lorawan-network-server-for-helium/]
In most of the cases, problems come from mis-settings during the configuration phase. Some tips to help in debugging:
docker ps
list the running services, if some are restarting on every 30 seconds, look at the service logs to identify the problem. docker logs
service_name will show you the details.
docker logs helium-helium-1 | grep -i error
also helps to identify the reason why the companion refuses to start or starts with some feature deactivated due to setting issues.
The solution comes with grafana
dashboard pre-configured and server / docker monitoring. grafana
is not exposed publicly and
it can be accessed over a ssh tunnel or locally on port 8050. Default user / password is admin/admin.
curl -fX GET http://127.0.0.1:8090/internal/3.0/exit
This program is distributed according to GPLv3 licence for any private IoT device fleet purpose, without restriction.
Specific licences can be obtained by contacting the Author. Any reuse of this code-source needs to be indicated and modifications/addition need to be publicly published, even when small pieces of code or architecture are reused as requested by GPLv3.
Thank you to the following persons contributing to the project:
Nova service GRPC proto can be found on - https://github.com/helium/proto/blob/master/src/service/iot_config.proto
Protoc - version used 25.1 - https://github.com/protocolbuffers/protobuf
Stub pluggin - https://github.com/grpc/grpc-java/releases
Download Stub pluggin - https://repo.maven.apache.org/maven2/io/grpc/protoc-gen-grpc-java/1.60.1/
Command lines
./protoc/bin/protoc --plugin=protoc-gen-grpc-java=.../protoc-gen-grpc-java-1.60.1-osx-x86_64.exe --java_out=... \
--grpc-java_out=...same... --proto_path=.../proto/src/ service/iot_config.proto
./protoc/bin/protoc --java_out=... --proto_path=.../proto/src/ region.proto
./protoc/bin/protoc --java_out=... --proto_path=.../proto/src/ blockchain_region_param_v1.proto
Chirpstack-api grpc api found on - https://github.com/brocaar/chirpstack-api/tree/master
gooogleapi found on - https://fuchsia.googlesource.com/third_party/googleapis
Chirpstack grpc api found on - https://github.com/chirpstack/chirpstack.git
# for chirpstack grpc api
~ git checkout v4.7.0
Add following headers in file chirpstack/api/proto/internal/internal.proto
option java_package = "io.chirpstack.internal";
option java_multiple_files = true;
option java_outer_classname = "InternalProto";
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/common/common.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/user.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/device.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/internal.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/api/tenant.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/internal/internal.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/stream/api_request.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/stream/frame.proto
./protoc/bin/protoc -I ./chirpstack/api/proto -I ./googleapis/ --java_out ./out ./chirpstack/api/proto/gw/gw.proto
Install OpenJDK21
apt-get install openjdk-21-jdk
update-java-alternatives --set /usr/lib/jvm/java-1.21.0-openjdk-amd64