Skip to content
This repository has been archived by the owner on Aug 24, 2021. It is now read-only.

Latest commit

 

History

History
62 lines (52 loc) · 2.95 KB

README.md

File metadata and controls

62 lines (52 loc) · 2.95 KB

LinkSmart Deployer

GoDoc GitHub tag (latest SemVer) CICD

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.

LinkSmart Deployer - Conceptual Diagram

Getting Started

Deployment

Snapshots and release artifacts are built using Github Actions. The releases are listed here.

Docker

Docker compose scripts are available for Deployment Manager and dummy Deployment Agents.

Install Debian Package

Download the suitable debian package and install. E.g.:

sudo apt install ./deployment-agent-linux-arm.deb

Compile from source

Within the root of the repository:

go build -o bin/manager ./manager
go build -o bin/agent  ./agent

Build with static linking

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

Compile using Go < 1.11

git clone <repo-addr> src/code.linksmart.eu/dt/deployment-tool
export GOPATH=$(pwd)
go build -v code.linksmart.eu/dt/deployment-tool/agent

Development

Run tests

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

Dependencies

Contributing

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.