Good morning,
I'm having a few problems configuring Icecast and I'm hoping someone can point me in the right direction.
My config is shown below.
I would preferably like requests to show.stuartlawler.ie to be directed to show.stuartlawler.ie:8080/playlist.m3u.
I see that there's an aliases section, but I just cant see from the config file instructions how this is accomplished. This is mainly because I've not seen where the mount point is set up or even if a mount point for this stream is needed considering I only need to host one for the time being anyway.
I also see that port 8000 is open but 8001 is not? Both are configured in the config file though.
I would like the admin UI to be available at www.stuartlawler.ie/icecast/admin I've created an alias to that but I haven't got the correct directory specified? I'm currently pointed to /usr/local/share/icecast/web/
With the config file in /etc/icecast/icecast.conf do I still need a file in /etc/icecast.xml?
Thanks.
# This be a comment, I like comments.
# To use this file, copy it to etc/icecast.conf in the icecast base directory
################################################################################
# I suggest you read this file carefully, and don't do anything silly
# cause the configuration file parser is pretty lame.
# If not stated otherwize, you can change these while the server is
# running (through the admin console). Or by changing this file
# and using the rehash command (or (if supported) sending SIGHUP)
# Please use the admin console though, cause that's what its there for :)
################################################################################
############### Server Location and Resposible Person ##########################
# Server meta info, please fill out these.
# They get displayed when listing directories, streams, and
# if the client supports it, among the other stream headers.
# You can put anything here, it's just for show.
###############
location Dublin, Ireland
rp_email mail.domain.ie #Changed...
server_url http://www.stuartlawler.ie
########################### Server Limits ######################################
# These describe the maximum number of simultaneous connections allowed.
# When reached, the server will refuse access.
# There is a builtin bandwidth measuring tool inside the icecast server,
# and when icecast thinks that it is using more than "throttle" MB/s, then
# no clients or sources will be allowed until the bandwidth usage goes back
# down below the limit. Use this with caution, since the bandwidth measurement
# is in no way an exact science.
###########################
max_clients 900
max_clients_per_source 900
max_sources 10
max_admins 5
throttle 10.0
########################## Stream Meta Data ####################################
# This is a experimental feature, at best.
# When it does not work, it will put the whole stream out of synk on the client
# side, and you will get a big mess.
# use_meta_data controls whether this icecast server will use title streaming at
# all. It's turned off by default, cause it creates chirps in the
# stream if you're not careful.
# streamtitletemplate is a the template for creating the title that gets sent to
# the client and the directory server. %s will be
# substituted for the actual filename.
# streamurl is the default url for each stream.
# nametemplate is a template for the name of each stream.
# desctemplate is a template for the description of each stream.
##########################
use_meta_data 0
streamurllock 0
streamtitletemplate %s
streamurl http://show.stuartlawler.ie
nametemplate %s
desctemplate %s
######################## Mountpoint fallback ###################################
# By default, if a user requests a stream that is not found, this user will be
# given the default stream instead. The default stream is per default the oldest
# stream on the server, but this can be changed with the priority value in the
# 'modify' command.
# If you don't want the user to get the default mount, but instead a
# HTTP 404 Stream Not Found, then set this to 0
########################
mount_fallback 1
######################### Server passwords #####################################
# icecast for Debian has been compiled with crypt support.
# Thus, you have to create a crypted version of the password.
# You can generate encrypted passwords with makepasswd.
# Please *change* default password before using it.
#########################
encoder_password YAtutg4TIWqEA #hackme
admin_password YAtutg4TIWqEA #hackme
oper_password YAtutg4TIWqEA #hackme
######################## Directory servers #####################################
# A directory server is a "meta-server" where you, for free, can list
# your own icecast server. This is a great way of getting more listeners.
# The touch_freq is how often to "update" the directory server with information
# from your server. (e.g number of listeners, stream info, etc..)
########################
icydir yp.shoutcast.com
icydir yp.breakfree.com
icydir yp.musicseek.net
icydir yp.van-pelt.com
icydir yp.radiostation.de
directory yp.icecast.org
directory yp.mp3.de
touch_freq 5
############# Server IP/port configuration (IMPORTANT) #########################
# If no hostname is specified, icecast will listen on all available interfaces,
# i.e INADDR_ANY. This is probably what you want.
# If you want icecast to _only_ listen on a specified ip, then change the
# "hostname" parameter. The "port" parameter is rather self-explanatory.
# As of icecast 1.3, all connections use port 8000. Admins, encoders, clients,
# the whole thing. So no more messing with 3 different ports in the firewall
# rules.
# The server_name can currently ONLY be specified here, and ONLY when you start
# the server. Changing it later on will not have the desired effect.
# The server_name specifies the hostname of the server, don't set it to an ip,
# and don't even THINK about setting it to a hostname not pointing to your ip.
# - WARNING - WARNING - WARNING - (important, get it?)
# It is VERY important that this server_name does actually resolv to the ip you
# are running your server at. If not, BAD THINGS<tm> will happen.
# E.g localhost is definately probably not what you want :)
# Using your ip will probably work.. but it will look nicer with your hostname.
# The problem is that if you specify something that doesn't resolve to yourself,
# then virtual host support will get fscked up, and default server action
# might not work either.
# Also, changing the port here will not affect the server when doing a 'rehash'
# since binding to a port is done only once, when the server is started.
# server is started.
# Users on dialup connections with dynamic ip:s are in trouble here, I know.
# You will just have to live without the virtual hosts support, cause there is
# no portable way of getting all the ip:s the process is binding to. Either
# edit this file before starting icecast and fill in the current ip, or just
# live with it. Setting the value to "dynamic", will tell the icecast server
# that there is no reliable hostname for this machine.
#
# you can now use multiple ports. the default port is the first one defined.
# define PORT, and PORT+1 for shoutcast compatibility.
#############
#hostname 78.xxx.xxx.xxx
port 8000
port 8001
server_name show.stuartlawler.ie
####################### Directory server options ##############################
# You can now force the directory server to use the server_name value instead
# of the originating ip. For most people this is unnecessary, since it is the
# same. But for people behind proxies, this should be very useful.
# Set it to 1 if you want to force use of the server_name variable.
#######################
force_servername 0
######################## Main Server Logfile ##################################
# This is the file where icecast prints all the information about
# connections, warnings, errors, etc...
# You cannot change this in the admin console, but changing it here
# and then rehashing the server will work.
# logfiledebuglevel is the debugging level for all output to the main logfile.
# consoledebuglevel is the debugging level to the icecast console.
# accessfile is the file where all connects/disconnects goes
# usagefile is a file for periodic bandwidth and usage information goes
########################
logfile icecast.log
accessfile access.log
usagefile usage.log
logfiledebuglevel 0
consoledebuglevel 0
########################## Reverse Lookups ####################################
# Set this to 1 if you want ip:s to be looked up (using reverse lookup)
# or 0 if you just want the ip:s (which is slightly faster)
##########################
reverse_lookups 1
############################ Console mode #####################################
# Use 0 if you want stdin to become a local admin console with log tailing
# Use 1 if you want stdin to become a local admin console
# Use 2 if you just want the console to become a log window
# Use 3 if you want the icecast server to be launched in the background (not available for Win32)
############################
console_mode 3
########################### Client Timeout ####################################
# (How to deal with clients when no encoder is connected)
# A negative value means keep them forever
# 0 (zero) means kick them out instantly
# X > 0 means keep them X seconds
###########################
client_timeout 30
######################### Kicking clients #####################################
# If set to 1, then clients whose source has disconnected will
# be kicked. If set to 0, they will simply be moved to another
# stream. This only has an effect if client_timeout is <= 0.
#########################
kick_clients 0
###################### Static file directory ##################################
# This enables the http-server file streaming support in icecast.
# If you don't want to go through the trouble of setting up apache
# or roxen or whatever, then you can just specify a directory here,
# and then http://your_server:port/file/file.mp3 will be equivalent
# to /staticdir/file.mp3
# The http server support is of course very limited, don't try to
# do anything fancy. Also, only .mp3 files will be displayed.
######################
#staticdir c:\windows\desktop
staticdir /usr/share/icecast/static
############################# Templates ######################################
# the icecast server uses templtes to format output for list.cgi and
# various errors. you can specify the directory that these are read from
# please use absolute paths if possible
#############################
templatedir /usr/share/icecast/templates
############################# Statistics ######################################
# The icecast server dumps statistics to a file on a regular basis.
# You can specify how often (stats_time), and to what file (stats_log)
# StatsTime (how often to dump stats, in seconds)
# 0 (zero) means to not dump stats
# X > 0 means dump stats every X seconds to the file specified by stats_log
#############################
logdir /var/log/icecast
stats_log stats.log
statshtml_log stats.html
stats_time 60
############# Aliases (including virtual host support) ########################
# In icecast servers prior to the 1.3 release, you could run a icecast
# server as a relay for another icecast server, simply acting as a
# client on the other server and serving the local clients. This was
# of course a neat way of increasing the number of possible listeners
# for your broadcast. You could build a tree-like structure of relays
# and broadcast to 1000 listeners without problem with the originating
# stream on a cable modem or whatever.
# In icecast 1.3.0 and above, we make this procedure much simpler.
# If you want to relay a stream from another server, simply add an
# alias for that server. Say you want to relay the broadcast originating
# from my machine (laika.linux.tm:8000/laika), on your machine, do this:
# alias laika http://laika.linux.tm:8000/laika
# What happens is that when a listeners connects to your server and
# requests the /laika stream, then your icecast server will connect
# as a client to my machine, and then feed my stream to the listener.
# All subsequent requests for /laika will use the same feed (i.e only
# one connect will be made to my machine). Icecast will automagically
# shut the link from my machine down when no one is listening. I.e
# no bandwidth will be wasted.
# The old functionality (i.e adding a more or less static relay) is still
# there, but you have to do it from the admin console. Just do
# relay pull http://laika.linux.tm:8000, and that will be accessible as
# http://your_machine:port/laika.linux.tm:8000/ (you can change this with
# the -m option to relay pull.
# There is also a possibity to do it the other way around, starting at
# the originating server. Just do "relay push <source_id> host:port", and
# your stream will be relayed to the remote server.
# In theory, this should enable virtual host support, cause you can
# specify an alias like so:
# alias http://virtual.host.com:port/whatever /something
# This will make all requests to virtual.host.com:port/whatever use the
# stream /something. This is not really thorougly tested, but it should
# work if your server_name is correctly set, and the client is sending
# the valid Host: <host:port> http header.
#############
alias radiofri http://195.7.65.207:6903
############################ Kick Relays ######################################
# How long to keep aliased sources when no clients are left listening to it.
############################
kick_relays 10
############################ Transparent proxy ################################
# This is somewhat equivalent to making _all_ request to aliased sources. So
# instead of adding an alias for all streams in the world, turn on the
# transparent proxy support. Using this on a server that has streams of it's
# own can be quite tricky, and then, as usual it is _very_ important that
# the server_name is correct.
# Most mp3 playing clients have support for a http proxy
# (afaik x11amp and winamp do, anyway). If listeners set your machine as this
# proxy, and you turn on transparent_proxy, then when a client requests
# http://whatever.com:port/whatever, then your icecast server will connect
# to whatever.com and feed the whatever-stream to the client. All subsequent
# request for this stream will use the same feed, just as if it was an alias.
# When running icecast with your own broadcasts, then you should turn this off,
# or anyone can bring your network down with a lot of relaying connects.
# Don't turn this on if you don't have a server_name set
############################
transparent_proxy 0
######################## Access Control Lists ##################################
# Perhaps you don't care who connects to your server, but I guess most people
# do. Icecast has 2 different ways of keeping people out. The first is using
# libwrap (tcpd, tcp wrappers, whatever you want to call it). It is a separate
# library written by Wietse Venema that over the years has become more or less
# a security standard in Unix. It should compile on every sane and unsane unix
# platform, and perhaps other platforms as well, I don't know.
# libwrap uses the files hosts.deny and hosts.allow, usually found in /etc
# or /usr/local/etc. You probably have to be root to edit these files.
# Try the man pages for tcpd and hosts_access for more information.
# There are 4 different icecast control thingies to use in hosts.deny/allow.
# First just "icecast", which controls _all_ connections, and kick in before
# anything is written or read on the socket. If a connection is denied here
# then it's bye bye. If it is allowed then depending on the type of the
# connection (admin/client/source), the controls "icecast_client",
# "icecast_admin", "icecast_source" describe who gets in.
# So to deny all clients except those matching *.se, add
# "icecast_client: ALL EXCEPT *.se" to hosts.deny. There are millions of
# variations on how to build a complete defence, and it's quite simple too.
# libwrap is a very powerful tool, consult the manpages for more information.
####
# The second way (which is always available) is using icecast's internal
# acl lists. The functionality is the same, but it is not as powerful when it
# comes to configuration and flexibilty as libwrap.
# You can specify acl rules either here in icecast.conf, or using the
# admin console. The syntax in icecast.conf is:
# allow <all|client|source|admin> <hostmask>
# deny <all|client|source|admin> <hostmask>
# So, using the same rule as above (allowing only clients from *.se)
# deny <client> *
# allow <client> *.se
# When using the internal acl rules, you need to specify a policy.
# This rule kick in when no allow or deny rule affects a connection.
# If you set acl_policy to 0, then connections who are not allowed by any
# allow rule will be denied, and the other way around if you set it to 1.
#########################
acl_policy 1
#deny all *
#allow all *.ryd.student.liu.se
################################################################################
Maintained by the ILUG website team. The aim of Linux.ie is to
support and help commercial and private users of Linux in Ireland. You can
display ILUG news in your own webpages, read backend
information to find out how. Networking services kindly provided by HEAnet, server kindly donated by
Dell. Linux is a trademark of Linus Torvalds,
used with permission. No penguins were harmed in the production or maintenance
of this highly praised website. Looking for the
Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!