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
| Setting | Responsibility |
|---|---|
basedir | Base relevant to a configured chroot |
logdir | Base directory for logs |
webroot | Files and public transforms available to HTTP requests |
adminroot | Shipped administration transforms |
pidfile | Process identifier file for that instance |
mime-types | Optional extension-to-media-type mapping |
reportxmldb | Report 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:
<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.