defmodule ToweropsWeb.HelpLive.Sections.Agents do @moduledoc false use ToweropsWeb, :html import ToweropsWeb.HelpLive.Sections.Helpers def render(assigns) do ~H"""

Remote Pollers

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.

Requirements

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

Getting Started

1

Create an Agent Token

Navigate to the <.code>Agents page in Towerops and create a new agent token. This token authenticates your remote poller with the Towerops platform.

2

Create a docker-compose.yml

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.

3

Deploy 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.

4

Assign Devices to Remote Poller

You can assign devices to your remote poller in several ways:

  • Per Organization: Set a default agent for all devices in your organization
  • Per Site: Set a default agent for all devices at a specific site
  • Per Device: Select the remote poller when creating or editing individual devices

Devices assigned to a remote poller will be monitored from your local network instead of from the cloud.

<.icon name="hero-shield-check" class="h-5 w-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5" />

Security Note

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.

Managing Remote Pollers

You can view the status of your remote pollers on the Agents page. The page shows:

<.icon name="hero-exclamation-triangle" class="h-5 w-5 text-yellow-600 dark:text-yellow-400 flex-shrink-0 mt-0.5" />

Important

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.

""" end end