Home
XtreamUIPro

Tutorial

Enrol a streaming node

Add an edge server that serves the viewers near it: from the panel over SSH, or with a one-time code on the node, then check that viewers reach it.

At the end a second server takes the live channels once from the origin, caches on-demand files and serves the viewers routed to it. You need the panel installed with an https address for the API, a machine with Ubuntu for the node, and either SSH access to it or a shell on it.

Add the server in the panel

Open Servers and add a server for the node: its name, its IP, and the Server URL viewers use to reach it when that differs from the IP. For the SSH path fill the SSH tab with an account that is root or has password-less sudo; the password or key is encrypted at rest and the worker checks the access right after saving.

The Servers page: the main server and the nodes with their address, state and jobs.
The Servers page: the main server and the nodes with their address, state and jobs.

Path A: install from the panel over SSH

Servers → Install Load Balancer: pick the server, run Check SSH (operating system, CPU architecture, sudo, disk, clock, port 8080, reachability of the API) and then Install. The worker uploads the node package from its packages folder and installs it; the first connection pins the machine's host key; every step appears on the page as it runs and Servers → Jobs keeps the log with secrets filtered. The same page later offers Upgrade, Restart services, Enroll again and Uninstall.

Path B: enrol with a one-time code

Cluster Nodes → Create enrol code gives a code valid thirty minutes. On the node run the installer in node mode: sudo ./install.sh --role node --main-url https://media.example.com --api-url https://api.example.com --public-url https://edge1.example.com --enroll-code XCE-… The node gets its own secret and key when it enrols; it never receives the panel's master secret. The API address must be https unless you pass --allow-insecure on a private network.

Check the heartbeat

Cluster Nodes shows the node as ok after its first heartbeat, with its load, viewers and cache; on the node, journalctl -u xtream-cluster-agent -f shows "config applied". A node that was revoked from the dashboard stops on its own; to join it again create a new code and enrol again.

The Cluster Nodes page: the enrolled nodes, their heartbeat, load and viewers.
The Cluster Nodes page: the enrolled nodes, their heartbeat, load and viewers.

See viewers reach it

Viewers are routed to a node by GeoIP (with the country file the worker downloads) or by the assignment you set; a node takes a live channel once from the origin and fans it out, and fills its VOD cache from the origin on demand. Monitoring shows the viewers per node; a node that is draining takes no new viewers.

The Monitoring page with the viewers per channel and per node.
The Monitoring page with the viewers per channel and per node.

Related help topics

Next tutorials