DEV Community

Ercross
Ercross

Posted on

reconD v0.5.0 - Linux Packaging

In case you missed the dev.to's introduction post to reconD, here you go
https://dev.to/ercross/recond-pull-based-deployments-for-one-server-without-a-platform-1jjb

New in v0.5.0: install it like any other system service

Until now, using reconD meant cloning the repo, building it with Go, and writing your own systemd unit.
With the new [v0.5.0] release (https://github.com/ercross/reconD/releases/tag/v0.5.0), every release ships .deb and .rpm packages for amd64 and arm64.

On Debian or Ubuntu:

VERSION=0.5.0
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"
Enter fullscreen mode Exit fullscreen mode

On Fedora, RHEL-compatible, or openSUSE, it's the same with recond-${VERSION}-1.x86_64.rpm and dnf install or zypper install.

Then:

sudo cp /etc/recond/config.yaml.example /etc/recond/config.yaml
sudoedit /etc/recond/config.yaml
sudo systemctl enable --now recond
sudo journalctl -u recond -f
Enter fullscreen mode Exit fullscreen mode

The packages behave the way you'd expect from a system service:

  • Install puts the binary at /usr/bin/recond, adds a systemd unit, an example config, and /var/lib/recond. It doesn't start anything until you've written a config, and it prints those setup steps if you haven't.
  • Upgrade restarts the service on the new binary if it was running, and leaves it stopped if it wasn't. Your config and state aren't touched.
  • Remove stops and disables the service and keeps your config and state. On Debian, apt purge removes those too.

CI tests all of this on every pull request, including upgrading a running service from the previous release, and a release can't be published unless those tests pass.

Heads-up if you already run reconD: this release is breaking. The default paths moved from /etc/reconD and /var/lib/reconD to lowercase /etc/recond and /var/lib/recond, and the binary is now recond. The changelog has the migration steps.

Top comments (0)