# Radio (Liquidsoap) 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.: # LIQUIDSOAP_VERSION=2.1.4 OCAML_VERSION=4.13.0 \ # docker compose -f docker/compose.radio.yaml up -d --build services: conjurer-radio: build: context: .. dockerfile: docker/Dockerfile.radio args: OPAM_VERSION: ${OPAM_VERSION:-2.1.5} OCAML_VERSION: ${OCAML_VERSION:-4.14.2} LIQUIDSOAP_VERSION: ${LIQUIDSOAP_VERSION:-2.1.4} image: conjurer-radio:latest container_name: conjurer-radio restart: unless-stopped environment: # internal = null-sink pulse inside the container (headless VM default) # 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}" ports: - "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 # 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 # PULSE_MODE=host: uncomment and adjust # - /tmp/pulseaudio.socket:/tmp/pulseaudio.socket