Skip to content

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.