The tables group KH settings by where they are used. They follow the supplied documentation and the pinned source code. A slash shows the path to a setting; @ marks an attribute. Do not include these characters in XML element names.

Apply a setting in the right place

Keep one outer <icecast> root. An instance-wide limit, mount override and relay origin are separate contexts even when names resemble one another. The supplied full configuration is an example, not a set of universal defaults. Replace credentials and paths before use.

Check XML syntax, then verify parser acceptance and the resulting request behaviour on the exact binary. A well-formed document can still contain a misspelled option. In particular, documentation and implementation disagree about a few names, which are marked below.

Instance and network

ParameterRole and boundary
hostnamePublic name for generated stream URLs; not a bind address.
location / adminIntentionally public descriptive/contact strings.
listen-socket/port / bind-addressLocal port and interface; verify external reachability separately.
listen-socket/sslEnable socket TLS when compiled with support.
listen-socket/shoutcast-mountCompatibility source mount with related source-port handling.
http-headers/headerName/value response fields; review CORS and information exposure.

Limits and queues

ParameterRole and boundary
limits/clients / sourcesInstance-wide concurrent client and source limits.
limits/queue-sizeMaximum media queue; KH supports documented sizing forms.
limits/burst-size / min-queue-sizeInitial burst and retained minimum; compare the maximum.
limits/header-timeout / source-timeoutTimeouts in seconds for headers and missing source data.
limits/client-timeoutLegacy configuration knob; do not infer a modern idle policy.
limits/workersKH worker count; measure before changing it.

Exact and patterned mounts

ParameterRole and boundary
mount/mount-nameExact path or supported wildcard pattern.
mount/priorityLower numeric value wins among applicable patterns; exact match first.
username / passwordMount-specific source credentials.
max-listenersConcurrent listener limit for the chosen mount.
max-listener-durationListener session duration in seconds.
queue-size / burst-size / min-queue-sizeMount buffering overrides; byte and time forms need rate context.
source-timeoutMount-specific seconds without source data.
fallback-mountBackup destination; optional rate attribute for supported file fallback.
fallback-override / fallback-when-fullReturn-to-source policy and full-mount routing.
hijackExplicit source takeover permission; protect source credentials.
linger-forSeconds to retain source state after disconnect in supported flow.
intro / dump-fileIntro media and optional incoming recording; plan format and disk access.
public / hiddenDirectory/list visibility controls, not listener authentication.
stream-name / stream-description / stream-url / genrePublished descriptors; these do not change media encoding.
metadata-interval / mp3-metadata-intervalKH names for ICY metadata interval in bytes.
allow-url-ogg-metadataHyphenated parser name; do not copy the manual underscore typo.
skip-accesslogSuppress this mount in the access log; reduces diagnostic evidence.

Authentication

ParameterRole and boundary
authentication/source-passwordGlobal source secret; mount rules may override it.
authentication/admin-user / admin-passwordSeparate management credentials.
authentication/relay-user / relay-passwordCredentials for permitted relay discovery.
mount/authentication/@typeClassic htpasswd or URL backend; not 2.5 role XML.
option filename / allow_duplicate_usersPrivate htpasswd file and duplicate-account concurrency switch.
option listener_add / listener_removeKH admission and departure callback URLs.
option stream_auth / mount_add / mount_removeSource authorization and mount lifecycle callbacks.
option auth_header / timelimit_headerResponse header contracts, not arbitrary successful status codes.
option headers / header_prefixForward selected request fields; singular header_prefix is implemented.

Relay origins and discovery

ParameterRole and boundary
relay/local-mountStable local public mount independent of origin path.
relay/host/server / port / mountOrigin coordinates inside each host candidate.
relay/host/priorityOrder candidates; lower configured values have higher priority.
relay/username / passwordUpstream credentials where required.
relay/on-demandFetch according to demand; test first-listener latency.
relay/retry-delaySeconds between relay retry attempts.
relay/relay-shoutcast-metadataRequest ICY metadata from a compatible origin.
master-server / master-server-port / master-passwordGlobal master discovery coordinates and credential.
master-update-interval / relays-on-demandDiscovery interval in seconds and global demand policy.
master-redirect / max-redirect-slavesOptional redirect policy; redirects are not moving an existing TCP stream.

Files, TLS, directories and logs

ParameterRole and boundary
paths/basedir / webroot / adminroot / logdirSeparate base, public files, admin stylesheets and logs.
paths/pidfile / mime-typesProcess-ID file and media-type mappings.
paths/alias @source / @destKH alias attributes; 2.5 destination is a different contract.
paths/ssl-certificate / ssl-private-keyCertificate chain and private key in the classic KH layout.
logging/accesslog / errorlog / playlistlogRequest, diagnostic and metadata logs.
logging/loglevelClassic numeric level; 3 informational, 4 debug.
logging/logsize / logarchiveClassic rotation size in kilobytes and archiving behaviour.
directory/yp-url / yp-url-timeoutDirectory endpoint and timeout in seconds.
security/chroot / changeownerFilesystem isolation and supported user/group change.

Follow the relevant operating procedure

Use the guides for mount priority, multiple origins, URL admission and TLS. They explain prerequisites, fragments and failure cases. Configuration review does not replace a source/listener test or a rollback exercise.