Scaling Deployments
If you have an interest in running Broadcasters in Docker, you likely are using it to scale your deployments by easily launching as many Broadcasters as necessary to support your workflows. By default, each Broadcaster will have the same web management port, 4444, and the same default ports for Zixi or other streams, and the same default admin password, 1234, and will be unlicensed. After launching a new Broadcaster Docker container you will need to update configurations on the Broadcaster to not interfere with other Broadcaster containers running on the same host and to ensure a secure deployment.
Web Management Port
With many Broadcaster containers running on the same host in host mode, you will need to modify the port for the web management UI for each container. You can do this with a Broadcaster API call such as the one shown below.
# curl -i --user "{username}:{password}" http://{broadcaster_IP_address}:{web_UI_port}/apply_settings.json? gui_web_port={new_web_UI_port}
The default web_UI_port is 4444. Note that when you build the Docker image you also need to EXPOSE the range of ports you plan to use for the web management UI’s for each instance of the container.
In bridged mode each container will have its own IP so you do not need to modify the web UI port for the Broadcaster, but you will need to map the container’s IP address and web UI port to unique ports on the host itself if the container needs to be accessed from outside of the host.
Streaming Ports
With many Broadcaster containers running on the same host in host mode you will also need to specify unique ports for streams pushed into the Broadcaster, such as port 2088 for Zixi protocol, and streams pulled from the Broadcaster. When you create these input and output streams, typically with the add_stream and add_output API calls or via ZEN Master, be sure to specify unique ports. Note that when you build the container you also need to EXPOSE the range of ports you plan to use for input and output streams.
Admin Password
You will likely want to modify the admin password on every Broadcaster container that you spin up.
To modify the admin password:
Use the API call:
# curl -i --user "{username}:{password}" http://{broadcaster_IP_address}:{web_UI_port}/apply_settings.json?apass={new_password}
Alternatively, you could launch a Broadcaster normally and update the admin password and then copy relevant items from the
<WEBSERVER> ... </WEBSERVER>
section of the broadcaster-config.xml to the config file in Appendix B that you use to build the Docker image. By doing this, every instance of the container would already have the new password.
Licensing
You will also need to license each Broadcaster in its container. Note, a license activation will only be valid for a single instance of the container and if you issue another docker run command to create a new container, that instance will have a different unique identifier and you will need to separately license that instance. The Broadcaster API shown below can be used to automate the process of registering license activations.
# curl -i --user "{username}:{password}" http://{broadcaster_IP_address}:{web_UI_port}/zixi/activate.json?key={activation_key}