BGPVR Operator guide
Operator guide

Nodes

Remote fleet: connect BGPVR agent nodes for transcode/AI work and remote DVB tuners, test them, and manage the SSH tunnel and in-app terminal used to reach them. Admin-only nav item.

On this page
  1. Connect a new node
  2. Check fleet state
  3. Prove a node actually works
  4. Open a shell on a node
  5. Audit who used the terminal
  6. Remove a node or tunnel
  7. Update a node's agent
  8. Watch out

Connect a new node

In "Connect Node" pick the hardware — "CPU only (x86-64)", "Intel / AMD GPU (/dev/dri)" or "NVIDIA GPU" (the node image is x86-64 only; ARM boards such as the Raspberry Pi cannot run it) — tick "Has DVB tuners" (or a Coral / Hailo accelerator) if the box has them, then copy the generated command with the copy button and run it on the remote machine. The command carries your licence key and this server's own node secret (NODE_SECRET). Your licence key is pre-filled when one is present, otherwise the panel links to the License page.

Check fleet state

The summary tiles show nodes used, online, offline and the licence node ceiling. Each node card shows status, detected hardware (GPU/TPU/tuners or "CPU only"), active jobs and last seen. "Refresh" re-reads /api/nodes.

Prove a node actually works

Press "Test" on a node card to run a performance job; the result modal reports FFmpeg availability and whether the test encode passed, GPU, CPU cores and 1 MB disk-write time. Offline nodes return a failure toast instead.

Open a shell on a node

Provision an SSH tunnel with "Provision Tunnel", then use the terminal button on the tunnel row. "Connect to" offers "Node container (isolated)" or "Host machine"; host access must be switched on per tunnel first and asks for the node's host SSH port. The tunnel row also gives you a copyable ssh command.

Audit who used the terminal

The "Terminal audit log" table under the tunnels lists Time, Node, Target (Host or Container), User, From and Event (Opened / Closed with duration) for every in-app SSH session.

Remove a node or tunnel

"Remove" on a node card asks "Remove this node from the fleet?"; the delete button on a tunnel row asks "Remove this SSH tunnel?".

Update a node's agent

An online node whose agent is older than the one this server carries shows "Update agent" under its version in the list (also in the ⋯ menu and on its panel). Confirm in the page; the node checks the package's sha256, installs it next to the running agent, switches and restarts the agent (a few seconds), and the panel shows Sending → Restarting → Connected on the new version. If the new agent is not connected within 60 s, or dies at start, the node goes back to the previous agent by itself and the panel shows "went back" with the reason and the agent's last log lines. A node that is streaming, recording or transcoding says no (try again when it is idle); a node that verifies jobs with the public default NODE_SECRET says no too (set it up again with Connect a node). Agents before 0.4.0 cannot update themselves: "Update agent" then shows one command to run on the node's computer (Copy). It downloads the agent from this server, checks the sha256 written in the command before anything runs, installs it and restarts the container (docker restart); its download link lasts an hour. "Reinstall agent…" in ⋯ puts the same version on again. Admins only; every update is in the audit feed (who, from → to, the result). Tuner settings and recordings are never touched.

Watch out

  • The node ceiling is a licence limit (max_nodes: 1 Free, 5 Pro, 25 Business). Registration is refused at the websocket handshake with "Node limit reached" and a denied fleet event — the node just never appears.
  • Remaining slots are computed against ONLINE nodes, so an offline node still occupies a registration row but frees a slot for a new one; expect the counters to disagree with the card list.
  • Host-machine shell access is a separate, per-tunnel grant and needs the host login user (bgpvr-svc) set up on the node — enabling the toggle alone is not enough.
  • Since 2.9.318 every install has its own node secret: set NODE_SECRET on the server yourself, or BGPVR generates one at its first start and Connect Node shows it (to admins only). A node joins with this server's licence key or its node secret. A node still started with the example secret from older instructions is refused (fleet event "default_node_secret"): start it again with the command from Connect Node. To change the secret, set the new NODE_SECRET and the old one in NODE_SECRET_PREVIOUS, restart, update each node, then remove NODE_SECRET_PREVIOUS.
  • Fleet tuners appear on Monitor › System, are counted in Monitor › Technical › Hardware Pool and are in the tuner pool with adapter indexes ≥2000; their telemetry comes from the node's heartbeat, so a node that has gone quiet shows stale signal values rather than an error.
  • Local, SAT>IP and fleet tuners are tried in one streaming-priority order. A fleet tuner whose feed goes silent is dropped after about 15 seconds and left unused for 5 minutes, so viewers move on instead of freezing.