Control Panel Configuration - Storm Streaming Server
Storm Streaming Server includes a built-in administrative panel. This panel provides insight into the server's core parameters such as bandwidth usage, memory consumption, CPU load, and thread count. It also allows full configuration of the server settings, including the clustering module and applications.
Sample Configuration
To connect to the panel, appropriate server configuration through the config/preferences.xml file is necessary. The first step is to ensure that we have at least one VHost that supports the HTTP protocol. It is also necessary to add the isControlPanel parameter set to true. The standard configuration is shown in the example below and ensures an open socket on port 8080.
<VHostSettings>
...
<VHost host="127.0.0.1" port="8080" isSSL="false" isControlPanel="true">
<Protocols>WEBSOCKETS, HTTP</Protocols>
</VHost>
</VHostSettings>
If you want to learn more about the correct configuration of VHosts, we recommend consulting our VHost Guide.
User Accounts & Authorization
The Control Panel uses a role-based access control system. Each user account is defined within the <Authorization> block of the <ControlPanelSettings> element and can be assigned granular permissions per component.
<ControlPanelSettings enabled="true">
<IPWhiteList>192.168.1.1, 10.0.0.2</IPWhiteList>
<Authorization>
<User username="admin" password="secret123" algorithm="plain">
<AccessRights>
<Component name="Server" access="read-write" />
<Component name="Application" access="read-write" />
<Component name="Stream" access="read-only" />
<Component name="Viewer" access="read-only" />
</AccessRights>
</User>
</Authorization>
</ControlPanelSettings>
Please make sure to change default Control Panel login credentials before deploying your server!
General Settings
The <ControlPanelSettings> element accepts the following parameters:
| Parameter | Description |
|---|---|
enabled | Enables or disables the Control Panel. Optional attribute, defaults to true. |
<IPWhiteList> | A comma-separated list of IP addresses allowed to access the panel. If left empty, all IPs are permitted. |
Leaving the IP whitelist empty is not recommended for production environments. Restrict access to known administrative IPs whenever possible.
User Configuration
Each <User> element defines a single account with the following attributes:
| Attribute | Description | Required |
|---|---|---|
username | Login name for the account. Must be unique across all users. | Yes |
password | Password for the account. | Yes |
algorithm | Password encoding method. Currently only plain is supported. | Yes |
Access Rights
Each user must have an <AccessRights> block containing one or more <Component> entries. This allows fine-grained control over what parts of the system a given user can view or modify.
Available components:
| Component | Scope |
|---|---|
Server | Server settings, licensing, and transcoding configuration |
Application | Internal applications management |
Stream | Media streams management |
Viewer | Viewer connections management |
Access levels:
| Level | Description |
|---|---|
none | No access to the component |
read-only | Can view but not modify |
read-write | Full access to view and modify |
Example: Multi-User Setup
The following example demonstrates a setup with an administrator and a read-only monitoring account:
<ControlPanelSettings enabled="true">
<IPWhiteList>192.168.1.0/24</IPWhiteList>
<Authorization>
<User username="admin" password="strongPassword1" algorithm="plain">
<AccessRights>
<Component name="Server" access="read-write" />
<Component name="Application" access="read-write" />
<Component name="Stream" access="read-write" />
<Component name="Viewer" access="read-write" />
</AccessRights>
</User>
<User username="monitor" password="strongPassword2" algorithm="plain">
<AccessRights>
<Component name="Server" access="read-only" />
<Component name="Application" access="read-only" />
<Component name="Stream" access="read-only" />
<Component name="Viewer" access="read-only" />
</AccessRights>
</User>
</Authorization>
</ControlPanelSettings>
All parameters support environment variables using the ${EV:VARIABLE_NAME} syntax. Fields locked by environment variables cannot be modified via the REST API.
First Connection
Using any internet browser such as Chrome, Safari, Edge, or Firefox, we open the control panel subpage. The address of our panel will look like this:
http://127.0.0.1:8080/cpanel
If we are not using an SSL certificate in the configuration, we use http; otherwise, we replace this part with https. The address 127.0.0.1 is the host name or IP provided in the VHost configuration. In the case of using Docker, it might also be a domain like localhost or CONTAINER_NAME.docker. Port 8080 is the port on which the socket is open. In the case of Docker, this port may be different due to port forwarding between the host and the container.
If you have any questions or need assistance, please create a support ticket and our team will help you.