Icecast v2 is very versatile and can be used in many different setups.
Because there is not "one true way" to install and configure it - every
user will have his individual preferences and needs (a streaming service
provider has different requirements than someone who wants to set up a
jukebox at home.)

To make things easier, here is a small step-by-step guide to get Icecast v2
running in a basic setup, which uses its chrooting feature and drops
privileges to an unprivileged account.

  1. Read the documentation, so you know what you are doing. It is also
     very helpful to know what Icecast v2 is doing for you, and what it
     is not.

  2. Create an unprivileged user _icecast - preferrably with an UID that
     does not conflict with other ports, system UIDs or regular users.
     I suggest something between 200 and 499.

     # useradd -c "Icecast Server" -d /nonexistent -g =uid \
           -s /sbin/nologin -u 200 _icecast

  3. Create a working directory for Icecast.

     # mkdir /var/icecast

  4. Copy the examples into the working directory

     # cp -R /usr/local/share/examples/icecast/* /var/icecast

  5. Create Icecast's log directory and logfiles, make them accessible
     to the Icecast user.

     # cd /var/icecast
     # mkdir log
     # touch log/error.log log/access.log
     # chown _icecast:_icecast log/*.log

  6. There is an icecast.xml.dist in /var/icecast - rename it and adjust it.
     Consult the documentation and comments about the various options.
     Important settings for this particular setup are outlined below.

     # mv icecast.xml.dist icecast.xml
     # chmod 600 icecast.xml
     (Mode 600 is highly recommended; icecast.xml contains plain-text
     passwords.)

     Now load icecast.xml in your favorite editor, and:

     Change <basedir> to /var/icecast

     Change <logdir> to /log
     Change <webroot> to /web
     Change <adminroot> to /admin

     Change <chroot> to 1
     Uncomment the <changeowner> directive, replace "nobody" and "nogroup"
         with "_icecast", respectively

  7. Start Icecast and monitor error.log for errors and clues on how to
     solve any issues.

     # icecast -c /var/icecast/icecast.xml

  8. Connect to the server with a source client and have fun. There are
     many different source clients available for different platforms.
     *nix users may find Ices0 to stream MP3, and Ices2 to stream Ogg Vorbis
     useful. For WinAMP and XMMS there is Oddcast DSP on
     http://www.oddsock.org/
     Remember to give your mountpoint a proper name - MP3 streams should
     use no extension, Ogg Vorbis streams should use .ogg, so that dumb or
     broken players can send the stream to the correct decoder.
     For starters, you should let the source client set the mountpoint;
     pre-defined mountpoints are an advanced feature and not necessary
     for basic streaming.
