Internet Radio with Icecast2 and MPD
Nov 26, 2022
Update — 2026: This setup has since evolved. I moved from this vanilla Icecast2 + MPD stack to AzuraCast, a full-featured self-hosted radio management platform. AzuraCast still runs Icecast under the hood but wraps it in a proper web UI, AutoDJ scheduling, listener analytics, multiple mount points, and a lot more. The raw Icecast + MPD approach below is still valid and educational, but if you’re starting fresh AzuraCast is the move. I’m running it as part of Lounge24 Radio — more on that in a future post.
I recently set up an Internet Radio server in AWS using Icecast2
and MPD (Music Player Daemon). The basic idea was I would have a
stream mount point for Live studio mix broadcasts that a DJ or Producer could connect to.
Then, a second mount for radio broadcasts that is basically an “autodj” controlled by MPD.
The song playlists are managed with ncurses based MPD client, ncmpcpp.

ncmpcpp cheat sheet
I was looking for a cheat sheet and found cheat.sh.
Using an alias one could type cht and get the cheat sheet for ncmpcpp printed to standard output.
alias cht='curl cheat.sh/ncmpcpp'