defmodule ToweropsWeb.HelpLive.Index do @moduledoc false use ToweropsWeb, :live_view alias Towerops.Accounts alias Towerops.Organizations @impl true def mount(_params, session, socket) do # Check if user is logged in via session current_user = get_current_user(socket, session) is_authenticated = !is_nil(current_user) # Load user's default organization if authenticated current_organization = if current_user do case Organizations.list_user_organizations(current_user.id) do [first_org | _] -> first_org [] -> nil end end # Build current_scope if authenticated current_scope = if current_user do %{ user: current_user, impersonating?: false } end socket = socket |> assign(:page_title, "Help") |> assign(:current_user, current_user) |> assign(:is_authenticated, is_authenticated) |> assign(:current_scope, current_scope) |> assign(:current_organization, current_organization) |> assign(:timezone, if(current_user, do: current_user.timezone, else: "UTC")) {:ok, socket} end @impl true def handle_params(params, _url, socket) do section = Map.get(params, "section", "getting-started") {:noreply, assign(socket, active_section: section)} end defp get_current_user(socket, session) do # Try to get current_user from socket assigns (if already set by on_mount) with nil <- Map.get(socket.assigns, :current_user), token when not is_nil(token) <- session["user_token"], {user, _authenticated_at} <- Accounts.get_user_by_session_token(token) do user else %Towerops.Accounts.User{} = user -> user _ -> nil end end slot :inner_block, required: true defp code(assigns) do ~H""" {render_slot(@inner_block)} """ end attr :active_section, :string, required: true defp help_content(assigns) do ~H"""
Learn how to use Towerops to monitor your network infrastructure
Towerops is a network monitoring platform that helps you keep track of your network devices, monitor their health, and get alerts when issues occur.
Sites represent physical or logical locations where your network devices are located. Start by creating a site for your office, data center, or any location where you have equipment.
Navigate to <.code>Sites → <.code>Add Site
Add network devices like routers, switches, access points, or servers. You'll need the device's IP address or hostname, and SNMP community string (for SNMP-enabled devices).
Navigate to <.code>Devices → <.code>Add Device
Click on any device to view real-time metrics including CPU usage, memory, temperature, interface traffic, and more. Explore the different tabs to see network topology, port status, and historical performance data.
For devices behind firewalls or in remote locations, you can deploy a remote poller to monitor devices locally without exposing them to the internet. See the <.link patch={~p"/help?section=agents"} class="underline hover:text-blue-900 dark:hover:text-blue-200" > Remote Pollers section for more information.
If you have publicly reachable devices, they will be automatically polled from one of our cloud pollers unless overridden by your settings. Our cloud infrastructure monitors your devices without requiring any additional setup or agent installation.
| Location | IPv4 Address | IPv6 Address |
|---|---|---|
| DFW (Dallas-Fort Worth) | 144.202.64.79 | 2001:19f0:6401:0af2:5400:05ff:fee7:1bfb |
If your devices are behind a firewall, make sure to allow SNMP traffic (UDP port 161) and ICMP (for ping monitoring) from these IP addresses. For devices not accessible from the public internet, consider using a <.link patch={~p"/help?section=agents"} class="underline hover:text-blue-900 dark:hover:text-blue-200" > Remote Poller instead.
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 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.
On the Agents page, add a new remote agent. Copy the <.code>docker-compose.yml file contents from the agent details, which includes your authentication token pre-configured.
Transfer the <.code>docker-compose.yml file to your server and run:
The remote poller will start automatically and connect to Towerops.
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.
The requested help section could not be found.