Linux packages
reconD is published as .deb and .rpm packages on GitHub Releases. The package and the installed binary are both named recond.
| Distribution family | Architecture | Package file |
|---|---|---|
| Debian, Ubuntu | amd64 | recond_<version>_amd64.deb |
| Debian, Ubuntu | arm64 | recond_<version>_arm64.deb |
| Fedora, RHEL-compatible, openSUSE | x86_64 | recond-<version>-1.x86_64.rpm |
| Fedora, RHEL-compatible, openSUSE | aarch64 | recond-<version>-1.aarch64.rpm |
Each release also includes checksums.txt with SHA-256 checksums for every artifact.
The commands below look up the latest release with the GitHub API. To install a specific version instead, set it directly, for example VERSION=0.5.0.
Install Docker first
reconD needs the docker CLI and a running Docker daemon. Install Docker from your distribution or from Docker's repositories, then check that sudo docker version reaches the daemon.
The packages only recommend Docker, because its package name differs across distributions. If Docker is not installed, the package manager installs the recommendation itself:
aptinstalls the distribution'sdocker.iopackage.dnfinstalls whichever available package provides/usr/bin/docker. RHEL-compatible distributions do not ship Docker, so there it installspodman-docker, a Podman compatibility wrapper. reconD is not tested against Podman.podman-dockeralso blocks a later Docker install, because Docker'sdocker-ce-cliinstalls the same/usr/bin/dockerfile; runsudo dnf remove podman-dockerbefore installing Docker.zypperinstalls openSUSE'sdockerpackage.
To skip the recommendation, add --no-install-recommends to apt install, --setopt=install_weak_deps=False to dnf install, or --no-recommends to zypper install.
Snap Docker is not supported
Docker installed as a snap (snap install docker) is not supported. apt does not see the snap, so it installs docker.io next to it, and the two daemons compete for /var/run/docker.sock. With --no-install-recommends instead, the service still cannot find docker, because systemd's PATH does not include /snap/bin. Remove the snap and install Docker from the distribution or from Docker's repositories.
Install
VERSION=$(curl -fsSL https://api.github.com/repos/ercross/reconD/releases/latest | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') # latest release
ARCH=amd64 # or arm64
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/recond_${VERSION}_${ARCH}.deb"
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/checksums.txt"
sha256sum --ignore-missing -c checksums.txt
sudo apt install "./recond_${VERSION}_${ARCH}.deb"VERSION=$(curl -fsSL https://api.github.com/repos/ercross/reconD/releases/latest | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') # latest release
ARCH=x86_64 # or aarch64
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/recond-${VERSION}-1.${ARCH}.rpm"
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/checksums.txt"
sha256sum --ignore-missing -c checksums.txt
sudo dnf install "./recond-${VERSION}-1.${ARCH}.rpm"VERSION=$(curl -fsSL https://api.github.com/repos/ercross/reconD/releases/latest | sed -n 's/.*"tag_name": *"v\([^"]*\)".*/\1/p') # latest release
ARCH=x86_64 # or aarch64
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/recond-${VERSION}-1.${ARCH}.rpm"
curl -fsSLO "https://github.com/ercross/reconD/releases/download/v${VERSION}/checksums.txt"
sha256sum --ignore-missing -c checksums.txt
# Packages are not signed yet
sudo zypper install --allow-unsigned-rpm "./recond-${VERSION}-1.${ARCH}.rpm"Check the installed version:
recond -versionInstalled files
| Path | Purpose |
|---|---|
/usr/bin/recond | Agent binary |
/usr/lib/systemd/system/recond.service | systemd unit |
/etc/recond/config.yaml.example | Example config shipped by the package |
/etc/recond/config.yaml | Your config. You create it; packages never overwrite it. |
/var/lib/recond/deployments_state.json | Deployment state, created by the agent |
/usr/share/doc/recond/copyright (.deb), /usr/share/licenses/recond/LICENSE (.rpm) | License |
Configure
The package does not enable or start the service on a fresh install. Create a config first:
sudo cp /etc/recond/config.yaml.example /etc/recond/config.yaml
sudo chmod 600 /etc/recond/config.yaml
sudoedit /etc/recond/config.yamlKeep the file mode at 600 if you put a GitHub token in it. See Configuration for every field, then start the service.