Does Centova Cast include a stream proxy?
Question:
Does Centova Cast include a web proxy for streaming over SSL, or for streaming over port 80 to users behind restrictive firewalls?
Answer:
Yes, Centova Cast v3 includes a highly efficient web proxy system for SHOUTcast and IceCast streams.
Unlike the Apache/PHP-based "port 80 proxy" provided with Centova Cast v2 and most competing SHOUTcast Control Panel systems, Centova Cast v3's proxy system (based on nginx) uses negligible system resources even under very heavy load with thousands of concurrent listeners. It also supports streaming over SSL, if configured to do so.
How do I enable the web proxy during Centova Cast installation?
Note: for old versions of Centova Cast (prior to 3.2.14), see this document instead.
Enabling the web proxy during the installation of Centova Cast is by far the
easiest approach. Simply add the --secure
and --email
parameters to your
install.sh
commandline. For example, if you would normally install Centova
Cast using ./install.sh --shoutcast-all
, you could instead use:
./install.sh --shoutcast-all --secure=hostname.example.com --email=you@example.com
This would automatically configure Centova Cast on ports 80 and 443, with the
web proxy enabled, with an SSL certificate for hostname.example.com
(courtesy
of letsencrypt.org), using you@example.com
as the email address to register
with letsencrypt.org.
How do I enable the web proxy on an existing Centova Cast installation?
Note: for old versions of Centova Cast (prior to 3.2.14), see this document instead.
As noted above, enabling the web proxy during the initial installation of Centova Cast is by far the easiest approach because the process can be fully automated at installation time.
It is also possible to enable the web proxy after Centova Cast has been installed, though doing so requires additional steps.
The web proxy is disabled by default, as many servers already have an existing web server which would conflict with the proxy.
Prerequisites and Preparation
In order to enable the proxy, you must have an available IP address on which no existing web server is running. If another web server is currently running on your server's IP address(es), you can accomplish this in one of two ways:
Remove the other web server entirely. That is the simplest method, if you are not using the existing web server for hosting web sites.
Ensure that you have multiple IP addresses on your server, and reconfigure the existing web server such that it does not use the IP address on which you wish to install the Centova Cast web proxy.
The procedure for reconfiguring your existing web server will depend on many factors and is outside the scope of our support services; contact your hosting provider or systems administrator for assistance with that.
Note that if you choose this approach, you must add
--bind=ipaddress
to theset_secure
(orset_web_ports
) command described in the following sections, replacingipaddress
with the IP address that you want Centova Cast to use.
Enabling the Web Proxy
After ensuring that there will be no IP address conflicts per the previous section, you may enable the web proxy.
If you haven't made any invasive changes to your Centova Cast configuration files, you can enable the web proxy with a single command:
/usr/local/centovacast/sbin/set_secure --fqdn=yourdomain.com --email=you@example.com
Replace yourdomain.com
with the fully-qualified domain name that you want to use
with Centova Cast, and replace you@example.com
with the email address that you
want to use to register with letsencrypt.org.
If the above command fails with an error, you will need to follow the steps in the next section for a custom configuration.
Otherwise, your web proxy should now be ready to use and can be enabled for each
account on the Limits
tab of the account settings.
Web Proxy for Modified Configurations
The set_secure
script described in the previous step may fail if you have made
certain types of modifications to your Centova Cast configuration files. In this
scenario, you will need to manually perform the following steps to enable the
proxy, possibly while adapting each step to your customized configuration.
Enable web ports, then restart Centova Cast. This makes Centova Cast listen on ports 80 and 443, and configures it to listen on
yourdomain.com
./usr/local/centovacast/sbin/set_web_ports --fqdn=yourdomain.com systemctl restart centovacast
Turn on the web proxy.
/usr/local/centovacast/sbin/set_proxy --on
Enable SSL and restart Centova Cast. This example command registers with letsencrypt.org using the email address
you@example.com
, and requests an SSL certificate foryourdomain.com
; you can instead use your own certificate by runningset_ssl_cert --help
and following the instructions./usr/local/centovacast/sbin/set_ssl_cert letsencrypt yourdomain.com you@example.com systemctl restart centovacast
If no errors are displayed, then the web proxy is ready to use and can be
enabled for each account on the Limits
tab of the account settings.
How do listeners tune in via the web proxy?
After enabling proxy support for an account, tune-in links for the proxy will be displayed both on the stream's Quick Links page as well as on the stream's start page.