Skip to content

Does Centova Cast Include a Proxy for Streaming on Port 80 and HTTPS?

Updated 5 min read

Updated: 8 October 2026 · Applies to: Centova Cast v3 (3.2.14 to 3.3.4, from Centova documentation); proxy behaviour tested with Icecast 2.4.4 and nginx 1.26.3 on Debian 13

Yes. Centova Cast v3 has a built-in web proxy for SHOUTcast and Icecast streams, so listeners can tune in on the normal web ports (80 for http, 443 for https) instead of the stream's own port, such as 8000. Since version 3.2.14 Centova calls it the stream proxy (it was the "port 80 proxy" before). It is switched off by default: the server administrator enables it for the whole server, and then allows it for each stream account on the account's Limits tab.

Why a port 80 proxy helps

  • Restrictive networks. Many office, school, hotel and public Wi-Fi firewalls only let web traffic out. A link such as http://radio.example.com:8000/stream then never connects, while the proxy link on port 80 or 443 does.
  • HTTPS websites. Browsers block plain http audio on https pages. According to Centova, the v3 proxy also supports streaming over SSL, which gives you an https stream link for a web player. See re-streaming a radio stream on HTTPS for the background.

The audio itself is unchanged: same stream, same bit rate, different port.

How it works

The proxy is a web server on port 80 (and 443) that connects to the streaming server on its local port and passes the audio through. We rebuilt the idea in a container with a plain nginx reverse proxy in front of Icecast (not Centova's own configuration) and fetched the same mount both ways for three seconds:

$ curl -sS -D - -o /dev/null --max-time 3 http://127.0.0.1:8000/stream
HTTP/1.0 200 OK
Server: Icecast 2.4.4
Content-Type: audio/mpeg
icy-name:Old Station Name
...
curl: (28) Operation timed out after 3000 milliseconds with 113400 bytes received

$ curl -sS -D - -o /dev/null --max-time 3 http://127.0.0.1/proxy/testradio/stream
HTTP/1.1 200 OK
Server: nginx
Content-Type: audio/mpeg
icy-name: Old Station Name
...
curl: (28) Operation timed out after 3068 milliseconds with 100800 bytes received

Both requests returned MP3 audio with the same station headers; the second one used port 80 only. (A live stream never ends, so curl stops at the time limit; the byte count shows that audio was flowing.)

An nginx-based proxy is also light. With 50 listeners connected through it at the same time, the nginx worker in our test grew from 3,828 KB to 4,724 KB of memory, less than 1 MB for all 50.

Centova Cast v3 compared with v2

  • v3: according to Centova, the nginx-based proxy "uses negligible system resources even under very heavy load with thousands of concurrent listeners". Version 3.2.14 added https stream proxying and the set_secure script; the current release is 3.3.4.
  • v2: used an Apache and PHP proxy where, according to Centova, every listener kept one Apache process (typically 10 MB to 25 MB) busy, so 100 listeners could need 1 GB to 2.5 GB just for proxying. Centova discontinued v2 in 2014; if you still run it, upgrade to v3.

What the server needs

These steps are for whoever runs the Centova Cast server (root access needed). According to Centova:

  1. A free IP address on ports 80 and 443. No other web server may use the IP address the proxy runs on. Either remove the other web server, or give the server a second IP address and move the other web server (for example the one cPanel manages) off the address Centova Cast will use. In that case add --bind=ipaddress (the address Centova Cast should use) to the set_secure or set_web_ports command below.
  2. Enable it. On a new installation, add --secure and --email to the installer, for example ./install.sh --shoutcast-all --secure=hostname.example.com --email=you@example.com. On an existing installation run:
    /usr/local/centovacast/sbin/set_secure --fqdn=yourdomain.com --email=you@example.com
    This sets up ports 80 and 443, turns on the proxy and requests a Let's Encrypt certificate for the hostname, so the hostname must already point to the server in DNS.
  3. If set_secure fails (for example after custom changes to the configuration files), run the steps by hand:
    /usr/local/centovacast/sbin/set_web_ports --fqdn=yourdomain.com
    systemctl restart centovacast
    /usr/local/centovacast/sbin/set_proxy --on
    /usr/local/centovacast/sbin/set_ssl_cert letsencrypt yourdomain.com you@example.com
    systemctl restart centovacast
  4. Open the ports in the server firewall: TCP 80, plus 443 for https (see configuring a firewall for Centova Cast).
  5. Allow it per account. Edit the stream account as admin and permit Port 80 proxy on the Limits tab. Centova only shows this option once the proxy is enabled on the server. Reseller accounts have the same setting, which controls whether the reseller can create proxy-enabled accounts.

Installations older than 3.2.14 used setproxy on and an init script instead; enabling the port 80 proxy gives the current steps and a short note on that older method, but updating Centova Cast first is the better route (centova update command).

After it is enabled

Centova Cast shows extra tune-in links for the proxy on the stream's Quick Links page and on its start page. How listeners tune in through the port 80 proxy explains where to find them and how to test them.

If your stream is hosted with Ucartz

Enabling the proxy is a server-side change. On Shoutcast and Icecast hosting or a Shoutcast reseller account, open a support ticket and ask for proxy access on your stream account. On a Centova Cast dedicated server you can run the commands above yourself as root, or open a support ticket for help.

Official documentation: Does Centova Cast include a stream proxy?, Centova Cast v2 port 80 proxy and Centova Cast release notes.

Was this answer helpful?

Still stuck? Open a ticket