mirror of
https://github.com/migatu/conjurer.git
synced 2026-07-14 21:38:38 +00:00
radio: /srv/betoniarka paths, in-container Icecast, drop ffmpeg.pref
Per review of the first radio-container cut:
- radio_conjurer.liq: replace the cargo-culted /home/pi/Conjurer and
/home/pi/MediaFolder paths with the container layout -
/srv/betoniarka/data (playlists, script.params, persistence/radio logs),
/srv/betoniarka/music (library + emergency track) and
/srv/betoniarka/secrets/icecast_credentials.json;
interactive.persistent now uses an absolute path;
output.icecast targets host="localhost" (icecast lives in the container)
- Icecast2 now runs INSIDE the radio container: entrypoint renders
/etc/icecast2/icecast.xml from docker/icecast.xml.tpl, filling
source/admin/relay passwords from the secret provisioned at install time
(same pattern as the bot's netrc); optional admin_password/relay_password
fields default to password; icecast starts as its unprivileged user;
port 8000 exposed for listeners; extra_hosts hack removed
- compose.radio.yaml: same-path mounts for /srv/betoniarka/{data,music,secrets}
- ffmpeg.pref removed from the repo (the pin only mattered against the
RPi OS repo; bookworm ships the right FFmpeg 5.x natively) - verdict
preserved in the docs and the legacy installer note updated
- docs: updated radio section (volumes, secret provisioning, wire-up)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# Radio (Liquidsoap) VM. Run from the repository root:
|
||||
# Radio (Liquidsoap + Icecast) VM. Run from the repository root:
|
||||
# docker compose -f docker/compose.radio.yaml up -d --build
|
||||
#
|
||||
# Version pins are build args - override via environment, e.g.:
|
||||
@@ -21,19 +21,21 @@ services:
|
||||
# host = mount the host pulse socket below and set PULSE_SERVER
|
||||
PULSE_MODE: ${PULSE_MODE:-internal}
|
||||
# PULSE_SERVER: unix:/tmp/pulseaudio.socket
|
||||
extra_hosts:
|
||||
# radio_conjurer.liq streams to host="radio" - point it at icecast.
|
||||
- "radio:${ICECAST_HOST_IP:-192.168.1.12}"
|
||||
# Hostname icecast reports in its status/YP pages:
|
||||
ICECAST_HOSTNAME: ${ICECAST_HOSTNAME:-localhost}
|
||||
ports:
|
||||
- "8000:8000" # icecast - listeners tune in here
|
||||
- "54321:54321" # harbor /skip - the bot's CONJURER_RADIO_HARBOR
|
||||
- "9999:9999" # interactive harbor (keep LAN-only!)
|
||||
volumes:
|
||||
# Playlists, logs, script.params, icecast_credentials.json, the script
|
||||
# itself (seeded on first run) - paths mirror the ones hardcoded in
|
||||
# radio_conjurer.liq so it runs unmodified.
|
||||
- /srv/radio/data:/home/pi/Conjurer
|
||||
# Playlists, logs, script.params and the script itself (seeded on first
|
||||
# run) - same paths inside and outside the container.
|
||||
- /srv/betoniarka/data:/srv/betoniarka/data
|
||||
# The mp3 library. Writable because the entrypoint seeds a silent
|
||||
# emergency-fallback mp3 when the hardcoded single() file is missing.
|
||||
- /srv/radio/music:/home/pi/MediaFolder/mp3
|
||||
- /srv/betoniarka/music:/srv/betoniarka/music
|
||||
# icecast_credentials.json - provision at install like the other
|
||||
# services' secrets (a CHANGE_ME placeholder is seeded if absent).
|
||||
- /srv/betoniarka/secrets:/srv/betoniarka/secrets
|
||||
# PULSE_MODE=host: uncomment and adjust
|
||||
# - /tmp/pulseaudio.socket:/tmp/pulseaudio.socket
|
||||
|
||||
Reference in New Issue
Block a user