defmodule ToweropsWeb.HelpLive.Sections.Agents do @moduledoc false use ToweropsWeb, :html import ToweropsWeb.HelpLive.Sections.Helpers def render(assigns) do ~H"""
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 and you're done.
Remote pollers can run on any system that supports Docker Compose, including:
Minimum requirements: 1 CPU core, 512 MB RAM, and network access to your devices
Navigate to the <.code>Agents page in Towerops and create a new agent token. This token authenticates your remote poller with the Towerops platform.
When you create a new agent on the <.code>Agents page, Towerops will show you a ready-to-use <.code>docker-compose.yml with your agent token pre-filled. It looks like this:
<%= raw(~S[services:
towerops-agent:
image: codeberg.org/towerops-agent/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_SCOPE=towerops
- WATCHTOWER_CLEANUP=true
volumes:
- /var/run/docker.sock:/var/run/docker.sock]) %>
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.
Copy the <.code>docker-compose.yml to your server and run:
docker compose up -d
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.
You can assign devices to your remote poller in several ways:
Devices assigned to a remote poller will be monitored from your local network instead of from the cloud.
Remote pollers use secure WebSocket connections to communicate with Towerops. Your agent token is encrypted and should be kept confidential. The remote poller only needs outbound HTTPS access (port 443) to connect to Towerops - no inbound ports need to be opened on your firewall.
You can view the status of your remote pollers on the Agents page. The page shows:
If a remote poller goes offline, devices assigned to it will not be monitored until the poller comes back online. Consider setting up monitoring alerts for your remote pollers to be notified if they disconnect.