Skip to content
This repository has been archived by the owner on Aug 24, 2021. It is now read-only.
/ deployer Public archive
forked from cpswarm/deployment-tool

Light and interactive software deployment on IoT devices

License

Notifications You must be signed in to change notification settings

linksmart/deployer

 
 

Repository files navigation

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.

About

Light and interactive software deployment on IoT devices

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages

  • Go 93.8%
  • Shell 5.0%
  • Dockerfile 1.2%