Get started by creating your first remote agent.
Application-wide agents that can poll devices for any organization. Only visible and manageable by superadmins.
<.table id="cloud-pollers-table" rows={@cloud_pollers}> <:col :let={agent} label="Name">Fallback agent for organizations without a default agent configured. Devices with no assignment at any level will use this agent.
<.form for={%{}} phx-change="update_selected_global_default" class="max-w-md"><.icon name="hero-check-circle" class="h-4 w-4 inline" /> Currently using: {selected_poller.name}
<% else %><.icon name="hero-exclamation-triangle" class="h-4 w-4 inline" /> Warning: Selected agent no longer exists. Please choose a new agent.
<% end %> <% else %><.icon name="hero-information-circle" class="h-4 w-4 inline" /> No global default configured. Devices without assignments will use direct Phoenix cluster polling.
<% end %>Use the token and Docker Compose configuration below to deploy this agent.
Click the token to select all, or use the Copy button
This configuration includes Watchtower for automatic agent updates. The agent will automatically update to the latest version every 15 minutes during development.
services:
towerops-agent:
image: {@agent_image}
container_name: towerops-agent
restart: unless-stopped
environment:
- TOWEROPS_API_URL={url(@socket, ~p"/")}
- TOWEROPS_AGENT_TOKEN={@new_token.token}
volumes:
- ./data:/data
labels:
- "com.centurylinklabs.watchtower.enable=true"
- "com.centurylinklabs.watchtower.scope=towerops"
watchtower:
image: containrrr/watchtower:latest
container_name: towerops-watchtower
restart: unless-stopped
environment:
# Check for updates every 15 minutes (900 seconds)
- WATCHTOWER_POLL_INTERVAL=900
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_LOG_LEVEL=info
# Use latest Docker API version
- DOCKER_API_VERSION=1.44
volumes:
- /var/run/docker.sock:/var/run/docker.sock