Icecast stream tutorial
This tutorial shows you how to host an Icecast stream for $5/mo, with 500-max listeners and no limits on stream quality.
Why do it this way?
- It's easy. Just use our simple server command, below.
- It's fun. If you've never set up a web server before, this is your chance to learn how.
- You can save a lot of money. It costs $5/mo for the server to host the stream.
- You can set the listener limit as high as you want (though 500 is a reasonable limit for a server).
- You can use whatever stream quality that you want.
- Icecast is actually pretty reliable on its own, and shouldn't require any upkeep once you get it running.
Creek uses Icecast/Shoutcast
If you are getting started with Creek for your radio website, and need a stream, then this tutorial should help. Creek uses a standard Icecast or Shoutcast stream. It's a classic technology that still works great, and it's used by hundreds of thousands of broadcasters. We focus on Icecast rather than Shoutcast in this tutorial, since it's open source and works better with web browsers.
1. Create an account at a web server hosting company.
(If you already have an existing server provider, then skip to the next step.)
DigitalOcean
We recommend using DigitalOcean to host your server. They're a new star in the hosting industry, and a truly great service, and competing with Amazon Web Services and Linode. (Also, Creek's own hosting infrastructure uses DigitalOcean.)
-
To get a $10 coupon, follow this link:
$10 discount coupon for DigitalOcean
(This coupon also gives us $25 in a few months, so if you use it, then thanks so much for your support.)
-
Follow their directions to verify your email.
-
Add your credit or debit card.
-
If you used the $10 coupon link, your account credit should be applied after you add a payment method.
2. Create a server to host your Icecast stream.
If you already have a server, skip to the next step.
On DigitalOcean, once your account is ready, just click Create Droplet (they call their servers "droplets") and create one with the following specifications.
- 512MB, 20GB — The $5/mo server
- A physical location of your choice. Best to use the region closest to your listeners (SF, NY, Amsterdam, etc.)
- Ubuntu 14.04 64-bit
- No need to enable back-ups unless you really want them. Adds $1/mo.
3. Connect to the server through a terminal program or console.
To access this droplet and finally install Icecast, you'll need to use a terminal, which is a way to access and send commands to a server computer like this. Here are some options, depending on your computer:
-
Windows: Download PuTTY. Once it's done downloading, open the program (putty.exe). In the first window, enter your new server's IP address in the Host Name field, and click Open. In PuTTY, you can copy and paste text into the black terminal window simply by right clicking.
-
Mac OSX: Open the Terminal (Shortcut: command + space, type terminal, and press enter.) Then, connect to your server by entering
ssh root@xxx.xxx.xxx.xxx
-- replace the X's with the IP address of your server. -
Linux: Open the Terminal. Then enter
ssh root@xxx.xxx.xxx.xxx
-- replace the X's with the IP address of your server. -
In browser: You should try the options above first, but DigitalOcean also provides has a basic terminal window. Find it by clicking that blue Console Access button (see screenshot above). It doesn't let you copy and paste, so you'll need to type out the password and Icecast installation command (below) by hand.
NOTE: Password change required
The first thing DigitalOcean asks you to do, once you connect to your server, is to change your server's password.
- You can enter a random string of 10-20 uppercase letters, lowercase letters, and numbers.
- Or better, enter a long password with 3-4 random words like AluminumRabbitSandwichToad. These work really well, and are easier to remember than random characters. (For fun, check out this XKCD comic about this.)
4. Install Icecast with our console command.
Once you are connected to your new server, it's time to install Icecast. Luckily, we provide a super-easy installer script for you.
Enter this single-line command:
wget -q http://r.creek.fm/icecast-server/install.sh -O icecast-install.sh; bash icecast-install.sh
This script is for Ubuntu 14.04 (as mentioned in the DigitalOcean server-building instructions above).
This script includes:
- An easy process: it will ask you for a password for your Icecast server, and the script will do the rest.
- A final summary screen that gives you all the details that you need to connect this server with streaming programs like RadioDJ, Nicecast, Mixxx, Virtual DJ, hardware devices, etc.
- 500 listeners max: You can actually change this in the icecast.xml file, but we've preset it to 500 since that's a sane upper-limit for running on a $5/mo server. We also don't expect you to max it out 24/7 -- that would actually run over the monthly 2TB bandwidth limits of the server (extra transfer is $0.02 per GB).
- A supervisor configuration that will monitor the Icecast process.
Script options:
#Only download the script, rather than execute it:
wget -q http://r.creek.fm/icecast-server/install.sh -O;
bash icecast-install.sh --password PASSWORD_FOR_ICECAST --host DOMAIN_OF_SERVER
- -p or --password — Password for the Icecast server
- -h or --host — Domain of the server. This has no impact on the Icecast server settings. It's only there to give you convenient output that uses your actual domain, rather than the server's naked, automatically-fetched IP address.
Administration Panel
You can access the Icecast administration panel at: http://the-ip-address:8000/
Editing config files
Official Icecast Configuration Documentation
This is a standard Icecast install on Ubuntu, so the all the basics of Icecast + Ubuntu apply to this tutorial.
Basics:
The configuration files are located here:
/etc/icecast2/icecast.xml
After editing the file, you will need to restart the icecast2 process server with this command:
service icecast2 restart