Guides

Arrange files, aliases and XSLT safely

Locate Icecast web and admin files, understand 2.5 alias syntax and keep logs, password files and custom transforms in appropriate directories.

On this page

A file’s location determines both whether Icecast can use it and whether a listener can request it. Start from your installation’s file list. Paths from a source-build example are not proof of the layout used by a distribution package.

Give each directory one job

SettingResponsibility
basedirBase relevant to a configured chroot
logdirBase directory for logs
webrootFiles and public transforms available to HTTP requests
adminrootShipped administration transforms
pidfileProcess identifier file for that instance
mime-typesOptional extension-to-media-type mapping
reportxmldbReport database path in the 2.5.0 shipped example

The runtime account needs the required read or write access. Logs, user password files, private keys and source configuration must not be placed in the webroot. With chroot, evaluate paths relative to the new root and test access there. Do not use chroot as a substitute for a least-privilege service account.

Use the release’s alias form

This is a 2.5.0 excerpt inside the existing <paths> block:

xml · Code example
<alias source="/listen" destination="/live.ogg"/>

The current sample uses destination; older material uses dest. An alias changes request routing and does not create media. Test how authentication, generated playlists and statistics refer to the final mount. A convenient alternate URL is not automatically a separate stream.

Maintain transforms as code

Icecast renders its internal statistics through XSLT. The standard admin pages map to known operations; adding a random file to adminroot does not add a new management API. The documented public customization path uses transforms in the webroot based on available statistics.

Keep a backup of packaged transforms and compare them during upgrades. A custom public transform can accidentally expose information available in its input; output only the data intended for public readers. Check MIME type, escaping, missing fields and the no-source case. A page looking correct once does not prove it remains correct after the next source disconnect.

Sources

  • Icecast 2.5.0 source archive (.tar.gz)

    2.5.0 · Retrieved

    Files used from this archive

    • Configuration referencedoc/config_file/index.html
    • Administrationdoc/admin_interface/index.html
    • Full example configurationconf/icecast.xml.in
    • Configuration parsersrc/cfgfile.c
  • Configuration reference

    2.0.2 (historical) · Retrieved