Start your Internet Radio with Icecast2 and Mixxx

Setting up an internet radio today has never been easier. At least, there is Icecast2. In less than 5 minutes, let’s see how to bring up an internet radio, and start streaming with Mixxx player.

Icecast will be installed on our Server, then the Mixxx player will beam our broadcast to the server, from which listeners will tap the audio from.

Let’s do this.

You can follow the steps below on your local machine for testing purposes, or if you wish the world to also tune in, you could spin up a DigitalOcean droplet, and configure easily and broadcast!

Install Icecast

There’re different versions of Icecast. This tutorial uses the Icecast version 2+, thus the word, Icecast2. Consider any mention of Icecast or Icecast2 to refer to version 2+ in this article.

On the server, simply go:

sudo apt install icecast2

Done!

Maybe not yet. Icecast has the Admin section, where you can do, well, Administrative stuff. That URL is at domain:port/admin.

Plus, whoever wants to connect and broadcast a show via your Icecast will have to be able to authenticate, so to speak. If you wish to have anyone, anywhere be able to broadcast via your server, you might be decided to share the credentials with them.

Now, let’s make this clear. We’ll be setting two passwords: One for admin access, and the other for when someone wants to broadcast to our server. So, shall we!

Configure Icecast & Run

Before editing the Icecast configuration file, it is recommended you make a backup of the original first.

$ sudo cp /etc/icecast2/icecast.xml /etc/icecast2/icecast.backup.xml
$ sudo nano /etc/icecast2/icecast.xml
<!-- Look for these places and update to your taste -->

<location>Densuano, Koforidua, Ghana</location>
<admin>devradio@khophi.co</admin>

<!-- Then this part about Authentication -->

    <authentication>
        <!-- Sources log in with username 'source' -->
        <source-password>yourPasswordHere</source-password>
        <!-- Relays log in with username 'relay' -->
        <relay-password>yourPasswordHere</relay-password>

        <!-- Admin logs in with the username given below -->
        <admin-user>admin</admin-user>
        <admin-password>adminPassword</admin-password>
    </authentication>

<!-- 
Then last but not least, choose your hostname and port 
I'm using 'radio.khophi.co', after configuring my DNS to understand
-->

<hostname>radio.khophi.co</hostname>

    <listen-socket>
        <port>8015</port>
    </listen-socket>

After you’ve double-checked your configurations,

sudo service icecast2 restart

Then if you have a firewall, such as ufw blocking incoming traffic through certain ports only, you might wanna allow the port 8015, like so

sudo ufw allow 8015/tcp

You should be able to access your Icecast2 server in the browser like so:

Icecast2 Server running

You can move around, such as visit the Admin page, and other pages. The Admin page will obviously request for authentication, the one you provided in the icecast2.xml configuration file.

 

 

Broadcast Transmission with Mixxx

Take a look at this screenshot first, and let’s discuss

Mixxx Broadcast settings

The above screenshot with my working configuration looks straightforward, right? Yes because it is, and that’s how it should be.

If your configurations are all set, you should be able to begin broadcasting. Just Enable Broadcasting or Ctrl + L and you’re live after successful connection.

Broadcasting Mixxx

When we check our Icecast server, we should see what we’re broadcasting reflect.

Broadcasting Page on Icecast2

Then to listen to the broadcast, visit the mount point, which in the above case is live like so

http://radio.khophi.co/live

Listen Live Icecast2

Now, have fun broadcasting your radio over the internet to the world!

 

Exit mobile version