Skip to content
This repository has been archived by the owner on Nov 26, 2020. It is now read-only.


Folders and files

Last commit message
Last commit date

Latest commit


Repository files navigation

CPSwarm Deployment Tool

GoDoc Docker Pulls GitHub tag (latest SemVer) Build Status

The CPSwarm Deployment Tool 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.

CPSwarm Deployment Tool - Conceptual Diagram

Getting Started


Packages are built continuously with Bamboo.


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

Install on Debian ARM

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/
export GOPATH=$(pwd)
go build -v


Run tests


 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



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.


This work is supported by the European Commission through the CPSwarm H2020 project under grant no. 731946.