Web interface

The web interface is the main way to manage and monitor a Perfect Streamer node. This is the context-sensitive help section: it is organised in the same way as the web interface itself, and every screen and every significant dialog box has its own section, which the help button opens.

The section describes the purpose of each screen and how it relates to the rest of the documentation. The concepts behind the settings are explained in the thematic sections of the manual, to which links are given. The fields of stream inputs and outputs are covered separately, by transport (Input and output fields by transport): this is the only place where the settings are described field by field rather than screen by screen.

Access and roles

The web interface opens in a browser at the node address and the web server port: by default http://<address>:8808 (or https://<address>:43981 when TLS is enabled). Two interfaces are available: the new one (primary) and the classic one, at the path /classic. The initial sign-in, the service ports and changing the default password are described in Initial settings.

Sign-in uses a login and a password (Digest authentication). Permissions are determined by the account role:

Admin

Full access: configuring streams and services, administration, viewing.

Restricted admin

Viewing and pausing a stream, an individual input or output of it, and a DVB adapter.

Viewer

Status viewing only: this role has no pause button at all.

The role also determines which screens are available. Only the administrator has access to “Users / Logins” and “EPG Settings”, to the whole “Administration” group and, within “Monitoring”, to “Logs” and “Alerts”; the remaining screens open in all three roles. The restriction applies not only in the menu: a direct link to a closed screen produces the “No access” page. Within the commonly available screens, the actions that change the configuration are not disabled for a role without the rights but simply not shown.

The node serves the alert feed to the administrator only. Therefore, in the two other roles all the alarm indicators in the interface are empty: the alert marks on the stream rows, the dots on the graphs and the cards, the state colour driven by an alert. Monitoring itself keeps working; only the alert channel is closed (Alerts).

The node does not hand out secrets to the Restricted admin and Viewer roles. Passwords, passphrases, keys, tokens and command lines in the settings are shown as ********, and the addresses of sources and outputs without the login, the password and the secret parameters: for RTMP the stream name is hidden, and for a local source such as std:// or file:// only the type is visible. The account list, the web server settings, the settings backup and the logs are not available to these roles; the log block in the statistics windows of a stream and of a DVB adapter is shown to the administrator only.

Accounts and roles are managed on the Web server & accounts screen.

Sign in

The web interface sign-in form.

The sign-in form.

The sign-in form is displayed before the application loads and prompts for a login and a password. After a successful sign-in, the last viewed screen opens. Since version 2.0.2.421, when you sign in from another computer, the browser no longer shows its own sign-in dialog over the form; on earlier versions it had to be closed with the cancel button, and only then did the form appear. Changing the default password is mandatory at the first sign-in (see Initial settings). If “Auto sign-in” is enabled for the account, the form does not appear at all for some time after the first sign-in (see Web server & accounts).

An empty password field is not a mistake but a second way to sign in, as the text below the field says: “Leave empty to sign in with the auto sign-in session that already exists in this browser.” A form submitted this way does not check the password: the node is asked whether it recognises this browser by auto sign-in, and a valid session opens the panel at once. This adds no rights: the same session is checked as when the panel is opened normally. This is how one repeats by hand a check that failed at opening, because the connection dropped for an instant or the session appeared in another tab only after the form had opened. When there is no session, the form says so: “There is no auto sign-in session in this browser — enter the password.”, and not “Invalid login or password”, which remains the answer to a wrong login–password pair. When the node is unreachable, the form displays “Cannot reach the server”, and with an empty password this message is not replaced by the one about a missing session. After the “Log out” button there is nothing to resume: logging out revokes this browser’s auto sign-in session on every node of the domain (Web server & accounts).

Interface layout

On the left is the navigation menu grouped by section; at the top is the bar with the common elements. The menu operates in two scopes, switched in the top bar:

  • Node — managing and monitoring the current node. Three menu groups:

    • Monitor — status of streams, clients, hardware and services;

    • Configure — users and EPG;

    • Administration — server services, storages, licence, maintenance.

  • Meshwork — summary screens of the node network: the domain overview, the node membership, the link graphs, the links and the shared resource catalogue (see Meshwork and the Meshwork section).

The menu depends on the role and on what the node has. An item the role has no rights for is not shown. “DVB adapters” and “Hardware” appear for the devices detected, not the ones configured. The remaining conditional items depend not on the hardware but on the objects themselves: “DVR” requires at least one storage, “Transcoders” at least one transcoder instance, “Test streams” a running test input.

Lists work the same way throughout the interface. In the configuration lists (the inputs and outputs of a stream, the logins, the billing servers, the sources, the channel sets and the EPG accounts, the DVR storages, the web server accounts), a click anywhere in the row opens its editor, the same as the “Edit” button at the end of the row; a click on a nested element (pause, deletion, the library button) performs only that element’s action. In the monitoring lists, a click on a row expands the details, and the expanded row is marked by a highlight and a stripe at the left edge. Keyboard operation is described in Keyboard operation.

Common bar

Besides the scope switch, the top bar holds the uptime indicator, the alerts bell (for the administrator role only; leads to the Alerts screen), the list of keyboard shortcuts, the help button, the language selector, the switch for opening adjacent nodes, the theme switch, the account indicator and log out. The account indicator is not a button but a caption with the name of the account used to sign in (the “Signed in: <login>” tooltip, or “Signed in: <login> · session ends <when>” when the session’s expiry is known); it is the same for all roles and is absent when the node does not report the account of the session. The node-opening switch shows its current value and cycles through three values: “Ask every time” (the default), “New tab” and “Current tab” (the “Open nodes in” tooltip). The setting applies everywhere the interface leads to the admin UI of another node.

The “Open node” prompt before going to an adjacent node.

The “Open node” prompt before going to an adjacent node.

With the “Ask every time” value, going to an adjacent node opens the “Open node” window with the question “Where to open <node>?”, which holds the name of the node, the same as in the “Node” column of the Nodes screen. In the window, pick “New tab” or “Current tab” (the first by default) and confirm with the “Open admin UI” button. The “Remember the choice” checkbox, together with the confirmation, writes the picked value into the setting, and the question is no longer asked; without the checkbox the choice applies once. “Cancel”, “✕” and Esc close the window, go nowhere and do not change the setting, even with the checkbox ticked. A click outside the window does not close it. Ctrl or ⌘ on a click opens a new tab right away, bypassing the question; on the graphs and on the tiles of the Meshwork overview this does not work, and the question is always asked there.

There is no question for the rows of the node itself (the transition happens inside the same admin UI) and for an unavailable neighbour: the node is offline, behind NAT without a public entry point, or without an address. Such a row is not a link at all and shows the “Node unavailable” tooltip.

After the update the setting is reset to “Ask every time” for everyone except those who picked “Current tab”: the former storage did not distinguish a deliberately picked “New tab” from the default value.

Keyboard operation

The interface can be used without a mouse. The first press of Tab on any screen brings up the “Skip to content” button: it moves the focus into the screen area, bypassing the top bar and the menu. The element under focus is always outlined by a frame; when working with the mouse the frame does not appear.

Four shortcuts work on any screen:

Keys

Action

?

Open the “Keyboard shortcuts” window.

/

Move the cursor to the screen’s search field. The field is present on the “Streams”, “Clients”, “EPG Database”, “Logs” and “Pipeline” screens; on the others the key is left to the browser and its own find-on-page works.

Alt+N

Move to the navigation menu, to the current item.

Alt+M

Move to the screen content.

While the cursor is in an input field and while any dialog window is open, these shortcuts do nothing: the characters are typed into the field, and the window handles the keys. Alt+N and Alt+M are detected by the physical key position, so they also work on layouts where Alt+N produces a diacritic.

In the Tab order, a data list takes a single place: it is entered once, and from there the arrows are used. The ↑ and ↓ keys move between rows, Home and End to the first and the last one, Enter or the space bar open or expand a row, → and ← expand and collapse it. Tab inside the list goes round the buttons of the current row and then leaves the list altogether; the cursor position is remembered, including after a mouse click. Moving the cursor alone opens nothing: a row becomes the one selected for the header actions by Enter.

Where the order is set by dragging, the same move is done with the Alt+↑ and Alt+↓ shortcuts. There are seven such places, and they fall into two groups. In the “Streams” list, in the “Billing servers” list (Users / Logins), in the “Programs” window (Programs) and in the list of a stream’s inputs (on the “Inputs” tab of the editor, Configure stream, and in the expanded row of the stream list), the order belongs to the node: it is saved immediately and is seen by everyone, and on a refusal the row returns to its place. On the mosaic wall (Mosaic) and in the “Favorites” bar of the node overview (Node overview), the order stays in the browser: the node knows nothing about it, and another operator has an order of their own. The keyboard move is switched on together with dragging, not instead of it: neither works on a phone, and the mosaic and “Favorites” need a wide screen, so on a tablet their order is only displayed.

On a graph canvas (Pipeline, Topology) the arrows do not step through rows but pan the image; + and − change the zoom, 0 fits the whole graph.

In any dialog window Esc closes the window, Tab walks its elements in a loop and does not lead outside the window, and after closing the focus returns to the element from which the window was opened.

The “Keyboard shortcuts” window opens with the ? key and with the button in the common bar. On a narrow screen there is no button, but the shortcuts themselves work: with a keyboard attached, the key calls up the window. It lists the shortcuts in four groups (“Everywhere”, “In a list”, “On a movable row” and “In a dialog”) and reminds that on macOS the ⌥ Option key is used instead of Alt. The key names in the window are not translated.

How context-sensitive help works

Help is invoked from the interface and opens the section that corresponds to the current context:

  • for a screen, the common help button opens help, which leads to the section for that screen;

  • for a dialog box, the “?” button in the box itself opens help, which leads to the section for that box.

Every screen and every significant dialog box has its own help section, so going to help from the interface always leads to the description of exactly what is open on the screen.