Icecast is a free streaming server for internet radio. Icecast-KH is a popular version of it, maintained by Karl Heyes, with extra features and fixes that many radio hosts prefer. Centova Cast can install the standard Icecast for you, but not Icecast-KH. This guide shows how to build Icecast-KH yourself on a Debian or Ubuntu server and tell Centova Cast to use it.
Quick answer
- Install the build tools and libraries with
apt. - Download Icecast-KH kh22, then run
./configure,makeandmake install. - Register it with Centova Cast:
/usr/local/centovacast/sbin/enable_package ICECAST /usr/local/bin/icecast. - Restart each Icecast stream in Centova Cast so it starts using the new version.
What you need: root SSH access to the Centova Cast server (Debian or Ubuntu), and about 10 minutes. Streams keep running during the build; each one only stops briefly when you restart it at the end.
1. Install the build tools
Update the server, then install the compiler and the libraries Icecast-KH needs:
apt update && apt upgrade -y
apt install -y build-essential pkg-config libxml2-dev libxslt1-dev libogg-dev libvorbis-dev libssl-dev libcurl4-openssl-dev
libcurl4-openssl-dev matters: without it, Icecast-KH still builds but cannot list your stations in public directories. libssl-dev adds HTTPS support.
2. Download Icecast-KH
The latest release is icecast-2.4.0-kh22. Icecast-KH releases
cd /usr/local/src
wget https://github.com/karlheyes/icecast-kh/archive/refs/tags/icecast-2.4.0-kh22.tar.gz
tar -xzf icecast-2.4.0-kh22.tar.gz
cd icecast-kh-icecast-2.4.0-kh22
The folder name starts with icecast-kh- because that is how GitHub names unpacked release archives.
3. Build and install
./configure
make
make install
./configure checks that everything from step 1 is present. Near the end of its output, look for curl and SSL being found. If it stops with an error, the message names the missing library; install its -dev package and run ./configure again.
make install puts the program at /usr/local/bin/icecast. Check it:
/usr/local/bin/icecast -v
The version it prints should include 2.4.0-kh22.
4. Switch Centova Cast to Icecast-KH
Tell Centova Cast to use the new program. This is Centova's documented command for software you have built yourself: Centova Cast manual
/usr/local/centovacast/sbin/enable_package ICECAST /usr/local/bin/icecast
Centova Cast now uses Icecast-KH for every Icecast station on this server. Stations that are already running keep the old version until they restart: in Centova Cast, stop and start each Icecast stream, or restart them all from the admin area at a quiet time.
To confirm a stream runs the new version, open its status page (http://your-server:port/): the server version shown at the bottom should include kh22.
Updating later
When a new Icecast-KH release comes out, repeat steps 2 and 3 with the new version number, then restart the streams. You do not need to run enable_package again, because the program stays at /usr/local/bin/icecast.
Going back to the standard Icecast
If you need to return to the Icecast that Centova Cast installs itself, run Centova's installer for it:
/usr/local/centovacast/sbin/update --add icecast
Then restart the Icecast streams again. Centova Cast manual