+-----------------------------------------------------------------------
| Running icecast on OpenBSD
+-----------------------------------------------------------------------

Icecast v2 is very versatile and can be used in many different
environments.  A streaming service provider has different requirements
than someone who wants to set up a jukebox at home.
This is a small step-by-step guide to get Icecast v2 running in a basic
setup, using its chrooting feature, dropping privileges to an
unprivileged account.

  1. Complete the chroot environment with additional system files.
     While this is optional, it allows YP directory listings (DNS
     lookups are required for those) to work and the log files to
     contain correct timestamps.

     # cp -p /etc/{hosts,localtime,resolv.conf} /var/icecast/etc
     # cp -p /usr/share/misc/mime.types /var/icecast/etc

  2. Adjust /var/icecast/icecast.xml.  Consult the documentation and
     comments about the various options.

     * CHANGE THE DEFAULT PASSWORDS FOR SOURCE CLIENTS, RELAYS AND
       THE ADMIN INTERFACE.

     Mode 600 is highly recommended, for icecast.xml contains plain-text
     passwords.

  3. Start Icecast and monitor the logs in /var/icecast/log and resolve
     any errors.

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

     Add the command line parameter `-b' to daemonize.

  4. Test your server.  Use a source client to create a stream and
     listen to it with your favourite player that supports streaming.

     Also test Icecast's web interface.  Be aware that Icecast sends
     everything located in <webroot> to those who request it like a
     regular (basic) web server.  You can restrict this behaviour to
     serve only .xsl files by setting <fileserve> to 0 in your
     icecast.xml; however, you should definitely take a closer look at
     what you actually want to show the world here.  There is no reason
     for paranoia, it's all safe, but you should spend some time
     thinking about it.  Note that disabling <fileserve> will also
     prevent CSS stylesheets and images from being sent, making the web
     interface less pleasant to look at.

  5. Make Icecast start at boot.

     # rcctl enable icecast

Random hints:

   * Remember to give your mount point 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 appropriate
     decoder.

   * The default configuration is setup to bind to 127.0.0.1 only.
     Changing this to "bind to any address" will use IPv6 only; to
     listen to requests on any IPv4 address, you must bind to 0.0.0.0.
     As mentioned earlier, don't forget to change the default password!
