Reference

Configuration reference by operational task

Find Icecast configuration settings by scope, understand their units and version boundaries, and follow the linked guides before changing behaviour.

On this page

The tables group settings by task. They follow the configuration files, manual and source code shipped with Icecast 2.5.0. Older syntax is labelled. Check your installed version before applying a setting.

Read scope before copying a value

The outer root is <icecast>. Rows containing a slash identify nesting, not literal XML element names. Some names occur at more than one scope: a mount’s listener limit is not the instance-wide client limit, and a relay’s remote mount is not its local public path. Value types and defaults must be checked against the selected release; examples are not defaults.

Back up the working file. Change only the setting needed for the task, validate the XML and read startup/reload messages. Use the linked guides for complete context, prerequisites and behavioural checks.

Server identity

ParameterRole and boundary
hostnameHost name used in generated URLs and publication, not a bind address.
locationDisplay text describing the instance; supply only intentional information.
adminTechnical contact string; directory publication can require a real contact.
fileserveEnables serving webroot files; status-page assets can depend on it.
server-idOverrides identification; usually leave the version-derived default intact.

Global limits and buffering

ParameterRole and boundary
limits/clientsConcurrent clients, including listeners and other HTTP uses.
limits/sourcesActive sources, including active relays in the documented model.
queue-sizeStream queue limit in bytes; can also be mount-specific.
burst-sizeInitial bytes offered to a new listener; keep below the queue.
header-timeoutSeconds permitted for receiving an incoming request header.
source-timeoutSeconds without source data before the source is removed.
client-timeoutDescribed as unused by the supplied manual; do not tune blindly.
burst-on-connectDeprecated control; use the documented burst-size setting instead.
threadpoolHistorical 2.0.2 setting, not a current tuning recommendation.

Credentials and role configuration

ParameterRole and boundary
source-passwordCompatibility-style global source secret; mount policy may override it.
relay-user / relay-passwordCredentials used for authorised relay discovery.
admin-user / admin-passwordSeparate administrator identity and secret.
authentication/role2.5 role-based matching, authentication and access policy.
role/match-methodFilters which HTTP methods the authenticator considers.
role/allow-method / deny-methodPermissions are distinct from selecting a matching request.
role/allow-web / deny-webControls web-resource access for the role.
role/allow-admin / deny-adminControls administration-command access for the role.
role/connections-per-userPer-user connection policy; not the old duplicate-user flag.
role/optionAuthenticator-specific settings such as filename or client_add.

Sockets and response headers

ParameterRole and boundary
listen-socket/portLocal TCP port. Check conflicts with another instance or service.
listen-socket/bind-addressLocal interface address; omission can expose all applicable interfaces.
listen-socket/tlsTLS policy; the 2.5 example uses auto_no_plain for TLS access.
listen-socket/shoutcast-mountCompatibility source path; reserves base port and following port.
http-headers/headerCustom response field with name/value; test global and mount scope.
header/type="cors"2.5 example generates CORS headers through the dedicated header type.

Mount policy

ParameterRole and boundary
mount/typenormal targets an explicit mount; default has distinct fallback semantics.
mount-nameExact stream path; not a command that starts a source.
username / passwordMount-specific source identity in the compatibility form.
max-listenersConcurrent listeners permitted on this mount.
max-listener-durationAllowed listener duration in seconds, subject to authentication policy.
dump-fileOptional incoming-stream dump; plan disk capacity and file permissions.
introWebroot-relative intro media; format must match the stream.
fallback-mountDestination when the stream is unavailable; not a backup encoder.
fallback-overridePermits the returning original source to take listeners back.
fallback-when-fullRoutes new listeners to a fallback when the mount limit is full.
charsetExpected source metadata encoding for applicable legacy streams.
publicDirectory publication override; does not enforce private listening.
hiddenHides a mount from certain listings; not authentication.
stream-name / stream-descriptionDisplay and directory metadata overriding source-provided values.
stream-url / genreDescriptive programme URL and genre, not the socket address.
bitrate / type / subtypePublished media descriptors; these do not transcode media.
icy-metadata-intervalBytes between ICY metadata blocks for applicable new listeners.
event-bindings2.5 source lifecycle events; restrict executable and URL side effects.
on-connect / on-disconnectOlder lifecycle form; compare current event-bindings before migration.

Relay and upstream configuration

ParameterRole and boundary
relay/local-mountPath exposed by the receiving server.
relay/on-demandPulls according to listener demand rather than continuously.
upstream/typenormal describes a feed; default supplies common upstream settings.
upstream/uri2.5 full upstream URI as shown in the shipped example.
upstream/server / port / mountAlternative separate origin coordinates; keep local-mount distinct.
upstream/username / passwordAuthentication required by the requested upstream.
relay-shoutcast-metadataRequests embedded ICY metadata where the upstream supports it.
master-server / master-server-portRemote server coordinates for master relay discovery.
master-username / master-passwordRelay discovery credentials on the remote server.
master-update-intervalSeconds between discovery polls in the documented master model.
relays-on-demandGlobal on-demand preference for applicable relays.

Paths, logging and security

ParameterRole and boundary
paths/basedirBase for chroot; not a universal prefix for every path.
paths/logdirWritable base directory for configured logs.
paths/webroot / adminrootPublic files versus administration transforms; keep private data separate.
paths/pidfileInstance-specific process-ID file.
paths/mime-typesOptional file extension/media-type mapping.
paths/allow-ip / deny-ipOptional IP lists; not a replacement for a complete network policy.
paths/aliasCurrent 2.5 sample uses source and destination attributes.
logging/accesslog / errorlogRequest log and server decision/error log.
logging/playlistlogOptional metadata history, not an audio recording.
logging/loglevelNamed levels in the 2.5 sample; limit debug windows.
logging/logsize / logarchiveRotation size and archive retention behaviour; monitor disk use.
security/chrootChanges filesystem root with platform and startup constraints.
security/changeownerChanges process user/group when supported; real accounts required.
security/tls-context2.5 TLS context holding certificate, key and optional TLS policy.
tls-certificate / tls-keyPEM certificate chain and protected private key inside the context.
security/prng-seedOptional entropy-source configuration; choose according to the target OS.

Follow the behaviour, not just the parser

Use mountpoints, TLS, roles and relay configuration for concrete workflows. Keep a record of the active version and changes. A well-formed XML document can still contain the wrong scope or an obsolete option. Acceptance means the intended source, listener and failure cases behave correctly.

Sources

  • Icecast 2.5.0 source archive (.tar.gz)

    2.5.0 · Retrieved

    Files used from this archive

    • Configuration referencedoc/config_file/index.html
    • Full example configurationconf/icecast.xml.in
    • Configuration parsersrc/cfgfile.c
    • Authentication implementationsrc/auth.c
  • Configuration reference

    2.0.2 (historical) · Retrieved