Introduction: Internet Radio/ Web Radio With Raspberry Pi 3 (headless)

About: Just a hobbyist who loves about how everything works

HI Do you want your own Radio hosting over the internet then you are at the right place. I will try to elaborate as much as possible. I have tried several ways most of them either needed a sound card which i was reluctant to buy. but managed to find few tutorial so i am combing them all of them

Hardware we are going to need:

1) Raspberry pi 3 or later

2) Micro usb cable

3) Sd card i would recommend 16gb minimum

4) Router/Modem

3)Ethernet Cable

Software we are going to use

1) Raspbian as OS

2) Mixxx for playing Music

3) Icecast2 for broadcasting

4)PUTTY for SSH (Download Here)If you’re using a Mac you can SSH into the Pi with Terminal

5)Advance IP scanner for finding the ip address of Raspberry pi (Downlaod Here)

6) Filezilla for tranfering file from your computer (Download Here)


Raspbian installed and running if anyone who doesnt know click here for the tutorial.

I will be using Raspbian Stretch With Desktop

Step 1: Connect Raspberry Pi to You Router and Start It Up

I am assuming you have installed Raspbian. and ready to go. Connect your raspberry pi to Ethernet port of you router cable and power up the Raspberry. Now go on your Laptop/PC which is connected to the same router as your raspberry.

Next Install Advance IP scanner and open it up and click "scan" once the scan is finish write down the IP address for the device that says Raspberry Pi Foundation in the “Manufacturer” column. it was in my case.

Step 2: Connecting to PI Via Putty

Now install and open up putty and write the IP Address you got from Advance IP Scanner in the field "Host name(or IP address)" and click open.

When you are connecting first time an Security Alert will appear. Just press “Yes”. because you are the only one connecting to it and you will get the message only once.

Now you will be presented with a login default username will be "Pi" and password will be "raspberry" once done

you will get message like the picture above.

Now you can configure your raspberry by giving the command "sudo raspi-config" and expand the file system and then go to interference option and enable ssh and vnc.

Once all done reboot the pi by "sudo reboot" and start putty again and login.

Step 3: Installing Icecast2

We Will be Using Icecast2 as a server to talk to the outside world.

So on the server simply type:

sudo apt install icecast2

You will get the following

1)Configure Icecast2 : Yes

2)Icecast Hostname : Keep it to localhost

3)Icecast Source password : Chage this password

4) Icecast Relay password : change this password

5)Ice cast administrator password: change this password (If you read the text in the dialog box it tell you the adminstrative address to type in the browser we are going to use that to login to icecast)


now go to your browser and type


if you get the ice cast page like i do that mean you have installed icecast2 correctly

Step 4: Configure Icecast & Run

Before we edit the Icecast configuration file,we will make a backup of the original first.

sudo cp /etc/icecast2/icecast.xml /etc/icecast2/icecast.backup.xml

next we Edit the Configuration file:

sudo nano /etc/icecast2/icecast.xml

i have attached the pdf document read the file and edit as you want.

to save press ctrl+x and then Y tto save and then press enter to exit.

After you have checked your configurations file,

sudo service icecast2 restart

Visit the Icecast Admin page in the browser. The Admin page will obviously request for authentication, the one you provided in the icecast2.xml configuration file.

Step 5: Connecting Raspberry Pi to Remote Desktop Connection to Install Mixxx

Now enter sudo apt-get install xrdp to install the XRDP service


Now open remote desktop connection. if you are using windows 10 just type it in search bar. I dont remember on earlier versions of windows rdc should be there as it is the default client.

just enter the IP of your raspberry pi and click Connect Now you will prompted to enter username and password. If you have not changed the default username and password yet, the username is pi and the password is raspberry.

Click “Ok” and you’ll be logged into the Rasbian desktop. Now minimise the RDC go back to putty.

Now we Install Mixxx.

sudo apt-get install mixxx

Once Done maximise the RDC and click the raspberry then go under sound&video you should see Mixxx installed open it up.

Step 6: Configuring Mixxx and Use File Transfer Program

First screen you are going to see is Mixxx is going to ask you for your music file. Well we need to upload music to PI's Music folder. Download and Open Filezilla on your PC/Laptop.

Now Fill in as follows

Host: Your raspberry pi ip address mine was

Username : pi

Password: raspberry (if you have not changed the password)

Port: 22

click Quickconnect

Now you will be logged in pi home the right side shows you your Pi files and on the left shows you your computer but we are going to transfer from pc to pi. Now on he right side of the panel navigate to music folder and transfer all the music into that folder you can drag and drop the files.

Now if you get any error say you cant transfer the file you will need to give permission to that folder from putty so say i had to give permission to music folder it will be

sudo chmod a+rwx /home/pi/music

Now that we have transferred our music let go back to pi desktop via remote desktop connection.

Step 7: Configuring Mixxx and Playing Music

Now open up Mixxx and you will see the music files in the music folder now click open. you will see the music is already loaded.

Next before playing music we need to enable live broadcast.

Now go Option-->Preference.

Then on the left side click live broadcasting and fill in as shown in the above image select tick mark enable live broadcasting then select icecast2 then in mount write /live Remember where it says host put down your IP user will be source which is default of icecast2 and password will be the password you had set in icecast my default was hackme.

Now click apply and click OK.

Next Click Option and Enable Broadcasting or Ctrl + L and you’re live after successful connection. Now play the Music. thats it you are live and bradcating.

Now go to your browser type ip:8000. so mine will be

click on server status download the m3u and open it in vlc player you should hear the music.

Now if you your music is choppy then go to preference of Mixxx and go to Sound hardware

change the audio buffer to 46s if still same then try 96s click apply and ok now try again you should have smooth playback.

Step 8: Local Network and Connecting to Internet

This will only stream to your local network. There are different ways to connect your radio to outside world but i am going to leave that to you. but hey will pass you some link to get you up and Running.

Here are some of the links


Thanks for Reading and Enjoy your project. Bye