Install the agent
The InfraCanvas agent — scopes, the systemd service, and exactly what it reads.
The agent is a single Go binary. It discovers your machine locally and streams a topology graph to InfraCanvas over one outbound WebSocket connection. It never listens on an inbound port.
Install
The dashboard gives you a ready-made command under + Add machine:
curl -fsSL https://cloud.infracanvas.app/api/v1/install | \
INFRACANVAS_API_KEY=ic_xxx INFRACANVAS_API_URL=https://cloud.infracanvas.app bashThis installs a systemd unit (ic-agent.service) that starts on boot and
reconnects automatically.
Scopes
The agent only collects what its scope allows. The installer probes the machine and enables what it finds:
| Scope | What it discovers |
|---|---|
host | OS, CPU/memory/disk, processes, systemd services |
docker | Containers, images, networks, volumes (via the Docker socket) |
kubernetes | Nodes, namespaces, workloads, pods, services, ingresses (via your kubeconfig) |
lxd | LXD / Incus containers and profiles |
Set it explicitly with the INFRACANVAS_SCOPE environment variable:
Environment="INFRACANVAS_SCOPE=host,docker,kubernetes"Run as the right user
Kubernetes and Docker access depend on the user the agent runs as. The installer
sets User= to your login user (resolved from SUDO_USER) and exports
KUBECONFIG so the agent sees the same cluster you do. If you run it as root,
root must have a kubeconfig and Docker access or those scopes go dark.
Managing the service
sudo systemctl status ic-agent # health
sudo systemctl restart ic-agent # restart
journalctl -u ic-agent -f # live logsUpdating
When a newer agent is available, the machine card in the dashboard shows Update available. Click it — the agent verifies the download (size + binary signature) before swapping itself and restarting. Bad downloads are rejected and the running agent is kept.
Uninstall
sudo systemctl disable --now ic-agent
sudo rm -f /etc/systemd/system/ic-agent.service
sudo systemctl daemon-reload