The LinkSmart Deployer is a lightweight software deployment system for IoT devices. It aims to provide secure, practical, and easy to use utilities for over-the-air (OTA) provisioning of software on single-board computers (e.g. Raspberry Pi). The project is currently under active development.
- Documentation: wiki | API doc - Swagger UI
- ⭐ Deployment GUI: source code | wiki
Snapshots and release artifacts are built using Github Actions. The releases are listed here.
Docker compose scripts are available for Deployment Manager and dummy Deployment Agents.
Download the suitable debian package and install. E.g.:
sudo apt install ./deployment-agent-linux-arm.deb
Within the root of the repository:
go build -o bin/manager ./manager
go build -o bin/agent ./agent
CGO_CPPFLAGS="-I/usr/include" CGO_LDFLAGS="-L/usr/lib -lzmq -lpthread -lrt -lstdc++ -lm -lc -lgcc" go build -v --ldflags '-extldflags "-static"' -a -o bin/agent ./agent
git clone <repo-addr> src/code.linksmart.eu/dt/deployment-tool
export GOPATH=$(pwd)
go build -v code.linksmart.eu/dt/deployment-tool/agent
Locally:
go test ./tests -v -failfast
In a docker container:
docker network create test-network
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):$(pwd) -w $(pwd) --network=test-network -e EXTERNAL-NETWORK=test-network golang:1.12 go test ./tests -v -failfast
docker network remove test-network
- ZeroMQ v4.x.x.
Runtime: libzmq5, Build: libzmq3-dev
Contributions are welcome.
Please fork, make your changes, and submit a pull request. For major changes, please open an issue first and discuss it with the other authors.