Linux systemd
The install script sets this up automatically; this guide is for manual / custom setups.
1. Install the binary
Download tyr-<arch>-linux.tar.gz from releases:
tar xzf tyr-x86_64-linux.tar.gzsudo install tyrd /usr/local/bin/sudo install tyr /usr/local/bin/2. Create config
sudo mkdir -p /etc/tyr /var/lib/tyr/etc/tyr/tyrd.yaml:
# Behavior for processes that don't match a known agent_typeunregistered_agents: audit # audit | quarantine | deny
# Heartbeat to server (seconds)heartbeat_interval_s: 30
# Disk buffer size for offline events (MiB)buffer_size_mb: 500
# Enable verbose logsdebug_mode: false
# Bootstrap enrollment token — one-time use to request a client certificateenrollment_token: "tyr_et_..."
# Path to server CA certificate (downloaded from /api/v1/ca.pem)ca_cert_path: /etc/tyr/ca.pem
# Where to persist agent identity, cert, and event bufferdata_dir: /var/lib/tyrDownload the server CA:
curl -sSL https://tyr.example.com:7701/api/v1/ca.pem | sudo tee /etc/tyr/ca.pemsudo chmod 644 /etc/tyr/ca.pem3. Systemd unit
/etc/systemd/system/tyr-agent.service:
[Unit]Description=Tyr agent (tyrd)Documentation=https://terranchi.github.io/tyr/After=network-online.targetWants=network-online.target
[Service]Type=simpleExecStart=/usr/local/bin/tyrd \ --server https://tyr.example.com:7700 \ --name %H \ --enforce \ --tls-captureRestart=on-failureRestartSec=3s
# Required capabilities for eBPFAmbientCapabilities=CAP_BPF CAP_SYS_ADMIN CAP_NET_ADMIN CAP_PERFMON CAP_SYS_PTRACE CAP_SYS_RESOURCENoNewPrivileges=false
# HardeningProtectSystem=fullProtectHome=trueReadWritePaths=/var/lib/tyr /sys/fs/bpf
# LogsStandardOutput=journalStandardError=journal
[Install]WantedBy=multi-user.target%H expands to the hostname.
4. Start and enable
sudo systemctl daemon-reloadsudo systemctl enable --now tyr-agentsudo systemctl status tyr-agentsudo journalctl -u tyr-agent -fOperating
# view statussystemctl status tyr-agent
# tail logsjournalctl -u tyr-agent -f
# reload after config changesystemctl restart tyr-agent
# stop (events stop, agent goes offline in the UI)systemctl stop tyr-agentLogs
Stderr logs go to the journal. Increase verbosity:
sudo systemctl edit tyr-agent# drop in:[Service]Environment="RUST_LOG=debug"Then systemctl restart tyr-agent.
Troubleshooting
failed to load BPF program— kernel too old or missingCONFIG_BPF_LSM. See Enforcement concepts.enrollment rejected: token consumed— your enrollment token has been used up; create a new one.- Agent shows as offline but process is running — check network reachability to
:7700and that the server CA matches.
→ Next: Kubernetes · Troubleshooting