docs: add concrete docker-compose example to remote pollers help section

Show the actual docker-compose.yml with agent + watchtower setup.
Emphasize lightweight nature and auto-updates.
This commit is contained in:
Graham McIntire 2026-02-14 11:02:33 -06:00
parent ab6968eb50
commit 75f64d0109

View file

@ -821,9 +821,12 @@ defmodule ToweropsWeb.HelpLive.Index do
<div class="prose prose-sm dark:prose-invert max-w-none">
<p class="text-gray-600 dark:text-gray-400">
Remote pollers allow you to monitor devices that are not accessible from the public internet,
such as devices behind firewalls, in private networks, or at remote locations. A remote poller
runs on your network and securely communicates with Towerops to poll your devices locally.
Remote pollers are lightweight Docker containers that run on your network to monitor devices
that aren't accessible from the public internet — behind firewalls, on private networks, or
at remote locations. They use minimal resources (1 CPU core, 512 MB RAM) and auto-update
themselves via Watchtower. Just deploy a
<.code>docker-compose.yml</.code>
and you're done.
</p>
<h3 class="text-lg font-semibold text-gray-900 dark:text-white mt-6 mb-3">
@ -882,12 +885,42 @@ defmodule ToweropsWeb.HelpLive.Index do
</div>
<div class="flex-1">
<h4 class="text-base font-semibold text-gray-900 dark:text-white mb-2">
Get Docker Compose Configuration
Create a docker-compose.yml
</h4>
<p class="text-gray-600 dark:text-gray-400">
On the Agents page, add a new remote agent. Copy the
When you create a new agent on the
<.code>Agents</.code>
page, Towerops will show you a ready-to-use
<.code>docker-compose.yml</.code>
file contents from the agent details, which includes your authentication token pre-configured.
with your agent token pre-filled. It looks like this:
</p>
<div class="mt-3 p-4 bg-black rounded-lg not-prose overflow-x-auto">
<pre class="text-xs text-green-400 font-mono"><code>services:
towerops-agent:
image: ghcr.io/towerops-app/towerops-agent:latest
container_name: towerops-agent
restart: unless-stopped
environment:
- TOWEROPS_API_URL=https://app.towerops.net/
- TOWEROPS_AGENT_TOKEN=your-token-here
labels:
- "com.centurylinklabs.watchtower.enable=true"
- "com.centurylinklabs.watchtower.scope=towerops"
watchtower:
image: containrrr/watchtower:latest
container_name: towerops-watchtower
restart: unless-stopped
environment:
- WATCHTOWER_POLL_INTERVAL=43200
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock</code></pre>
</div>
<p class="text-gray-600 dark:text-gray-400 mt-3">
The agent is lightweight it uses minimal CPU and memory. Watchtower is included
to automatically update the agent every 12 hours, so you never have to think about it.
</p>
</div>
</div>
@ -901,18 +934,19 @@ defmodule ToweropsWeb.HelpLive.Index do
</div>
<div class="flex-1">
<h4 class="text-base font-semibold text-gray-900 dark:text-white mb-2">
Deploy the Remote Poller
Deploy It
</h4>
<p class="text-gray-600 dark:text-gray-400">
Transfer the
Copy the
<.code>docker-compose.yml</.code>
file to your server and run:
to your server and run:
</p>
<div class="mt-3 p-4 bg-black rounded-lg not-prose">
<span class="text-sm text-white font-mono">docker compose up -d</span>
<pre class="text-sm text-white font-mono"><code>docker compose up -d</code></pre>
</div>
<p class="text-gray-600 dark:text-gray-400 mt-3">
The remote poller will start automatically and connect to Towerops.
That's it. The agent will connect to Towerops within seconds and start polling your local devices.
You'll see it come online on the Agents page.
</p>
</div>
</div>