Install¶
Get repo credentials from the operator; they are not in this repo.
macOS (Homebrew)¶
Paste the whole block; do not use read.
AGENTCTL_USER='REPO_USER'; AGENTCTL_PASS='REPO_PASS' # ← edit these two
printf 'machine agentctl.srv.ajil.ch\n login %s\n password %s\n' "$AGENTCTL_USER" "$AGENTCTL_PASS" >> ~/.netrc && chmod 600 ~/.netrc
unset AGENTCTL_USER AGENTCTL_PASS
brew install muyajil/tap/agentctl # thereafter: brew upgrade agentctl
Linux (apt)¶
Paste the whole block; do not use read.
AGENTCTL_USER='REPO_USER'; AGENTCTL_PASS='REPO_PASS' # ← edit these two
# creds (kept out of sources.list)
echo "machine agentctl.srv.ajil.ch login $AGENTCTL_USER password $AGENTCTL_PASS" | sudo tee /etc/apt/auth.conf.d/agentctl.conf >/dev/null && sudo chmod 600 /etc/apt/auth.conf.d/agentctl.conf
# signing public key → keyring (one-time; required for the signed repo to verify)
curl -fsSL -u "$AGENTCTL_USER:$AGENTCTL_PASS" https://agentctl.srv.ajil.ch/agentctl-archive-keyring.gpg | sudo tee /usr/share/keyrings/agentctl-archive-keyring.gpg >/dev/null
# source (self-contained)
sudo tee /etc/apt/sources.list.d/agentctl.sources >/dev/null <<'EOF'
Types: deb
URIs: https://agentctl.srv.ajil.ch/apt
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/agentctl-archive-keyring.gpg
EOF
unset AGENTCTL_USER AGENTCTL_PASS
sudo apt update && sudo apt install agentctl
Thereafter: sudo apt upgrade agentctl && sudo agentctl apply.
RHEL 10 (dnf)¶
The dependency situation differs enough (EPEL, ffmpeg-free, openbox) to need its own
page: RHEL 10 install.
A one-off deb, no repo¶
apt install -y ./agentctl_*.deb # pulls age, socat, jq, …
Install is non-destructive: no users created, no units enabled, no reconcile run. The
first state-changing step is always an explicit agentctl provision.
Building it yourself¶
See Build from source. The signed apt repo, the yum repo and the
macOS binaries are served by one static container built from packaging/repo/; see
Releasing.