How to Install Shoutcast Server on CentOS 8
If you’re looking to turn a spare machine into a streaming radio station, this guide will get your Shoutcast server up and running on CentOS 8 in under half an hour.
Why this matters
I’ve seen folks try to install Shoutcast with the default repos and hit a wall because of missing libraries or SELinux blocks. The steps below pre‑empt those headaches and leave you with a clean, working instance that’s ready to broadcast.
Prerequisites
- A CentOS 8 machine (virtual or physical) with root access.
- A non‑root user for running Shoutcast, e.g., shout.
- Basic knowledge of the command line.
Create the user if you don’t already have one:
sudo adduser shout sudo passwd shout
Enable EPEL and RPM Fusion
Shoutcast pulls in a few packages that live outside the default CentOS repo. Install the extras first, then RPM Fusion for media codecs.
sudo dnf install -y epel-release sudo dnf install -y https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm
Install Dependencies
Shoutcast requires a handful of development libraries. Installing them early saves time later.
sudo dnf groupinstall -y "Development Tools" sudo dnf install -y zlib-devel libcurl-devel openssl-devel freetype-devel
If you see “no match for” errors, double‑check that the EPEL and RPM Fusion repos are enabled.
Download and Build Shoutcast
Grab the latest source from the official site:
cd /usr/local/src sudo wget https://downloads.sourceforge.net/project/shoutcast/SHOUTcast_Server_3.8.9.zip sudo unzip SHOUTcast_Server_3.8.9.zip
Switch to the extracted directory, then compile:
cd SHOUTcast_Server_3.8.9 make sudo make install
make pulls in a small C compiler and links against the libraries we installed earlier. If you get “undefined reference” errors, it usually means a missing dependency—check the list above.
Configure the Server
Copy the sample config into your home directory and edit it:
sudo cp /usr/local/etc/shoutcast.conf.example /home/shout/.shoutcast.conf sudo chown shout:shout /home/shout/.shoutcast.conf sudo nano /home/shout/.shoutcast.conf
Key changes to make:
- ADMINPASS=youradminpass – This is how you’ll log into the web interface.
- PASSWORD=youremissionpass – Listeners use this for password‑protected streams.
- Adjust PORT=8000, STREAM_PORT=8000 if you need another port.
Start and Secure with Firewall
Run the server as the shout user:
sudo -u shout /usr/local/bin/shoutcast.sh -c "/home/shout/.shoutcast.conf"
To keep it running after reboot, add a simple systemd unit:
# /etc/systemd/system/shoutcast.service [Unit] Description=Shoutcast Audio Server After=network.target [Service] User=shout ExecStart=/usr/local/bin/shoutcast.sh -c "/home/shout/.shoutcast.conf" Restart=on-failure [Install] WantedBy=multi-user.target
Reload systemd and enable the service:
sudo systemctl daemon-reload sudo systemctl enable --now shoutcast.service
Now open the firewall for your chosen port (default 8000):
sudo firewall-cmd --permanent --add-port=8000/tcp sudo firewall-cmd --reload
Verify Installation
Point a browser to http://<your‑server>:8000 and you should see the Shoutcast admin page. Log in with the ADMINPASS you set.
Try playing a stream:
curl http://<your‑server>:8000/;PASSWORD=youremissionpass | less
If you hear the test audio, congratulations – your server is live.
Final thoughts
Installing Shoutcast on CentOS 8 isn’t rocket science; it’s just a matter of getting the right libraries and tweaking a few config lines. Once you’ve got the service running under systemd, you’re ready to start broadcasting your own radio station or streaming podcast.
Give it a shot and let me know how it goes—happy broadcasting!