Install the Wakora agent on Alpine Linux
Tested on Alpine 3.22 on amd64. The agent is a static binary, so musl versus glibc does
not matter; what differs on Alpine is the init system, and that part is a manual step.
Install
Run this as root (Alpine images usually ship without sudo):
apk add curl openssl
curl -fsSL https://get.wakora.io | sh -s -- --key <YOUR_TEAM_KEY>
The installer verifies and installs the binary to /usr/local/bin/wakora and registers
the host. It then reports that it found neither systemd nor launchd and leaves the service
to you. Copy the OpenRC script from the public repository
(packaging/wakora-agent.openrc) and enable it:
cp wakora-agent.openrc /etc/init.d/wakora-agent
chmod +x /etc/init.d/wakora-agent
rc-update add wakora-agent default
rc-service wakora-agent start
The script runs the agent under supervise-daemon, which restarts it if it exits and
brings it back after a self-update. rc-service wakora-agent status shows its state.
What the agent finds on Alpine
- the package inventory read directly from
/lib/apk/db/installed, and the pending updates count fromapk list --upgradable; - the init family
openrc, which selects the OpenRC variants of the SSH, Postfix and system-log definitions: authentication events and system messages are read from/var/log/messages(busybox syslog) instead of the journal; - every recognised service from the catalog that runs on the box;
- host metrics: CPU, memory, swap, disks, load, network, top processes.
Verify
wakora doctor
rc-service wakora-agent status
tail -f /var/log/wakora/agent.log
Notes
- There is no systemd, so the "systemd degraded" and unit-based rules do not apply. The "is it running" signal of MySQL and ClickHouse, which reads a systemd unit, is not available on Alpine; the port and process checks still are.
- The OpenRC variants of the SSH and Postfix definitions read
/var/log/messages, the busybox syslog default. A replacement syslog that writes elsewhere leaves those two counters empty; the port checks and the rest are unaffected. - Security updates are not split from other updates on Alpine: apk has no advisory metadata for that, so only the total pending count is reported.
Next: First start.