= Setup TIP: Tested on a Raspberry Pi with "Buster" NOTE: * *sudo su* # if not already done == Install prerequisites [source,sh] ---- apt-get install apt-transport-https ca-certificates software-properties-common git gcc g++ make jq -y curl -sL https://deb.nodesource.com/setup_15.x | sudo -E bash - apt-get install -y nodejs npm install -g pm2 ---- == Install optional [source,sh] ---- apt-get install raspberrypi-kernel-headers -y ---- == Download and install Docker. [source,sh] ---- curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh usermod -aG docker pi curl https://download.docker.com/linux/raspbian/gpg ---- == Give the ‘pi’ user the ability to run Docker. [source,sh] ---- sudo usermod -aG docker pi ---- == Import Docker and swarmlab.io keys [source,sh] ---- curl https://download.docker.com/linux/raspbian/gpg cat > /root/get-certs-swarmlab <<'EOF' registry_address=hub.swarmlab.io registry_port=5443 mkdir -p /etc/docker/certs.d/$registry_address:$registry_port openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt registry_port=5480 mkdir -p /etc/docker/certs.d/$registry_address:$registry_port openssl s_client -showcerts -connect $registry_address:$registry_port < /dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > /etc/docker/certs.d/$registry_address:$registry_port/ca.crt EOF chmod +x /root/get-certs-swarmlab /root/get-certs-swarmlab ---- == Add the Docker Repo. [source,sh] ---- echo "deb https://download.docker.com/linux/raspbian/ buster stable" >> /etc/apt/sources.list ---- == Update your Pi. [source,sh] ---- apt-get update apt-get upgrade ---- == Start the Docker service. [source,sh] ---- systemctl enable docker.service systemctl start docker.service ---- == Verify that Docker is installed and running. [source,sh] ---- docker info docker ps ---- == install docker-compose [source,sh] ---- apt-get install libffi-dev libssl-dev apt install python3-dev apt-get install -y python3 python3-pip ---- *python3* and *pip3* are installed, we can install Docker-Compose using the following command: [source,sh] ---- pip3 install docker-compose ---- === check it docker-compose --version docker-compose => 1.27.4 == Fix "x509: certificate signed by unknown authority" issue * On Error: Get https ://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate Pulling ... ERROR: Get https://registry.vlabs.uniwa.gr:5080/v2/: x509: certificate signed by unknown authority http://docs.swarmlab.io/SwarmLab-HowTos/swarmlab/docs/swarmlab/docs/install/install-docker.html#fix-x509-certificate-signed-by-unknown-authority-issue[See here^] or simple run: [source,sh] ---- /root/get-certs-swarmlab ---- == Install WireGuard To install the most recent version of WireGuard, we’ll need packages from the Debian unstable release. [source,sh] ---- sh -c "echo 'deb http://deb.debian.org/debian/ unstable main' >> /etc/apt/sources.list.d/unstable.list" sh -c "printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' >> /etc/apt/preferences.d/limit-unstable" ---- Update and Install the WireGuard packages [source,sh] ---- apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 04EE7237B7D453EC apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138 apt update apt install wireguard --assume-yes ---- == Create Keys [source,sh] ---- (umask 077 && wg genkey > wg-private.key) wg pubkey < wg-private.key > wg-public.key ---- == Reboot NOTE: reboot