Installing the server agent
The server agent installs in one command and enrolls itself. This page covers each install surface, the network requirements, and the optional container-metrics flag.
Prerequisites
Section titled “Prerequisites”- A Linux host, x86-64 or arm64, running
systemd. - Outbound HTTPS from the host to the WatchTower15 API. No inbound ports.
- Your organisation’s install token (dashboard → install instructions).
- Ability to run the installer as a user that can create a system service
(typically via
sudofor the install step only — the agent itself never runs as root once installed).
Install
Section titled “Install”The fastest path. Downloads the agent, verifies its checksum, creates the service user, enrolls, and starts monitoring:
curl -fsSL https://watchtower15.com/install.sh | sh -s -- <org_token>Assign the host to a specific profile at install time by exporting its slug first:
export WT15_PROFILE_SLUG=production-serverscurl -fsSL https://watchtower15.com/install.sh | sh -s -- <org_token>For cloud-init, Ansible, Terraform user_data, or a golden image, the same
installer runs non-interactively. Keep the token in your secret store and pass it
through the environment:
-
Provision the host with outbound HTTPS to the API.
-
Fetch the token from your secret manager into
WT15_ORG_TOKEN(do not bake it into an image layer). -
Run the installer, pinning a profile so the host is configured on first boot:
Terminal window export WT15_PROFILE_SLUG=web-tiercurl -fsSL https://watchtower15.com/install.sh | sh -s -- "$WT15_ORG_TOKEN" -
On boot the agent enrolls, collects self-reported tags from the instance’s cloud/Docker/Kubernetes metadata, and begins reporting.
Because auto-enrollment collects cloud metadata, a fleet of identical images each enroll with correct, distinct identity tags — no per-host bootstrap script.
For hosts without direct internet egress, stage the binary and install script from an internal mirror:
-
On a connected host, download the agent binary and the install script, and note the published
X-Content-SHA256for the binary. -
Copy both to your internal artifact store or the target host.
-
Point the installer at your mirror and provide the token:
Terminal window WT15_BINARY_URL=https://mirror.internal/wt15-server-agent \WT15_API_BASE=https://api.watchtower15.com \sh ./install.sh <org_token> -
Verify the downloaded binary’s SHA-256 matches the value you recorded before the service starts.
The host still needs outbound HTTPS to the WatchTower15 API to enroll and report; only the binary distribution is mirrored.
Verify the install
Section titled “Verify the install”systemctl status wt15-server-agent● wt15-server-agent.service — WatchTower15 Server Agent Active: active (running) User: wt15-agentThe host appears in your dashboard within ~60 seconds. The agent writes its own
diagnostics to /var/log/wt15-server-agent.log.
Optional: Docker container metrics
Section titled “Optional: Docker container metrics”By default the agent does not read the Docker socket. You can opt in to per-container CPU, memory and network metrics with an install flag:
curl -fsSL https://watchtower15.com/install.sh | sh -s -- <org_token> --enable-docker-monitoringNetwork requirements
Section titled “Network requirements”| Direction | Destination | Purpose |
|---|---|---|
| Outbound HTTPS (443) | WatchTower15 API | enrollment, telemetry, logs, config |
| Inbound | — | none required |
If your host egresses through a proxy, set the standard HTTPS_PROXY environment
variable in the service unit’s environment.
Uninstall
Section titled “Uninstall”sudo systemctl disable --now wt15-server-agentsudo rm /etc/systemd/system/wt15-server-agent.service /usr/local/bin/wt15-server-agentsudo userdel wt15-agentRemoving the agent stops reporting; the server remains in your dashboard until you delete it there.
Related
Section titled “Related”- Configuration reference — environment variables.
- Fleet & profiles — central configuration.
- Upgrades — keeping agents current.