How to create your own internet radio station using Icecast and Mixxx running on Ubuntu / Debian or Fedora

This article explains how to create your own Internet radio station. For this, we will use Fedora or Debian, Ubuntu, Linux Mint, Pop! _OS and Icecast and Mixxx open source programs running on Debian / Ubuntu based Linux distributions.
Icecast (Icecast 2) is a streaming server that will allow users to stream our Internet radio stations, while Mixxx is a DJ hybrid application (in this case, if you want, you can also use it as Simple music player), due to its live streaming capabilities, we will be used to feed audio streams to the Icecast2 streaming server.
It’s worth noting that you can create your own Internet radio station with Icecast2 and Mixxx on any other Linux distribution (as well as Windows and macOS), but the package name and path may be different and may require some additional Tuning, depending on the Linux distribution you are using, that’s why this article focuses only on Fedora and Debian / Ubuntu.
Before starting, let me tell you more about Icecast and Mixxx.Ice casting Is a free and open source cross-platform streaming server that supports Ogg Vorbis and Theora, MP3, Opus and WebM streams, and supports multiple simultaneous audio streams (each stream is called a “mount point”). This software can be used to create public Internet radio stations, broadcast privately on your local network, and more. There are multiple client types that can connect to the Icecast server to provide a “mount point” for streaming music (such as Mixxx), or to listen to broadcast audio. Mixxx Is free and open source DJ software for Windows, Mac and Linux. It includes most of the features common in DJS software, as well as unique features such as support for advanced MIDI and HID DJ controllers. It is designed for professional and amateur DJs, with BPM, key detection and synchronization, effects, vinyl record control, automatic DJ and recording, and many other features. Starting from version 1.9, Mixxx allows live streaming and supports Shoutcast and Icecast streaming servers.

Install and configure Icecast and Mixxx to create your own Internet radio station

1. Install Icecast.
Icecast can be installed on a separate server or on the same computer that will run Mixxx for broadcasting.Download Icecast for Linux / Unix and Windows.
Install Icecast2 from the repository:

  • On Debian, Ubuntu, Linux Mint, Pop! Install Icecast2 on _OS and other Debian / Ubuntu-based Linux distributions:
sudo apt install icecast2

When installing Icecast2 on Debian or Ubuntu, you will see some configuration options pop up (not for Fedora):Icecast2 Debian configuration

Replace the default password with your own password, respectively. If you skipped the initial configuration, you can run it again by using sudo dpkg-reconfigure icecast2. You can also change these initial settings and many more by editing the Icecast2 configuration file (we’ll cover that in the next step).

  • Install Icecast on Fedora:
sudo dnf install icecast

2. Configure Icecast.
The Icecast configuration file path on Debian / Ubuntu (installed from the package manager) is /etc/icecast2/icecast.xmlAnd on Fedora /etc/icecast.xml. You can edit this file to change the Icecast2 Internet radio station information, set limits (limit the number of clients / listeners), change the passwords for “source”, “relay” and “administrator” users, and more.
On Debian / Ubuntu, the initial Icecast2 configuration shown when Icecast2 is first installed should handle most of this configuration. You can still edit the Icecast2 configuration file.
Use a text editor to open this Icecast profile as root, such as Nano in the example below (using Ctrl + OAnd then Enter Save the file with Nano; exit the Nano editor after saving the file Ctrl + X):

  • Debian, Ubuntu, Fedora, Linux Mint, Pop! _OS:
sudo nano /etc/icecast2/icecast.xml
  • Fedora:
sudo nano /etc/icecast.xml

In this file you can change (among other things):

  • Location and administrator
    
    Earth
    localhost

As stated in the Location and Admin Settings Notes, this is the information displayed on the Internet Broadcast Server Information page of the Icecast Web interface and is therefore used for display purposes only.
This section does not exist on Fedora in the Icecast profile by default (although it is at the top of the profile in Debian / Ubuntu).

  • verification method
    
        
        hackme
        
        hackme

        
        admin
        hackme
    

Here, make sure to replace the default hackme Password and your own password.

  • Host name, listening socket port, bind address and stream
 localhost  8000