Installation
Agent
Maddock distributes the agent as a static Linux binary. The install script auto-detects the CPU architecture and fetches the latest release from GitHub.
curl -fsSL https://raw.githubusercontent.com/MadJlzz/maddock/main/install.sh | shInstall a specific version:
curl -fsSL https://raw.githubusercontent.com/MadJlzz/maddock/main/install.sh | sh -s -- v0.1.0Change the installation directory:
INSTALL_DIR=~/.local/bin curl -fsSL https://raw.githubusercontent.com/MadJlzz/maddock/main/install.sh | shSupported platforms: linux/amd64, linux/arm64.
Control plane
The control plane is distributed as a container image on GitHub Container Registry:
docker pull ghcr.io/madjlzz/maddock-controlplane:latestTag schemes available: latest, MAJOR.MINOR, and exact MAJOR.MINOR.PATCH.
From source
git clone https://github.com/MadJlzz/maddock
cd maddock
mise run buildBinaries are produced under the working directory.
Bootstrap (TLS)
The control plane pushes to agents over mutual TLS, so before the first push you must set up a CA and certificates. This is a one-time step on the control plane plus a per-host step.
Initialize the control plane. Creates the CA and the control plane's own certificate in the state directory.
shmaddock-controlplane init --state-dir /var/lib/maddock-controlplaneIssue an agent certificate per host. The hostname must match the
hostnamefield used for that target in the push config.shmaddock-controlplane cert issue --hostname web-1 --output ./web-1/Copy the certificates to the host and start the agent with them:
shscp ./web-1/{ca.crt,web-1.crt,web-1.key} web-1:/etc/maddock/ # on web-1: maddock-agent serve --ca-cert /etc/maddock/ca.crt \ --cert /etc/maddock/web-1.crt --key /etc/maddock/web-1.key
Then maddock-controlplane push connects over mTLS automatically. See the control plane CLI reference for details.
Manual certificate distribution is a stopgap; an automated agent join flow is planned. See the roadmap.