This repository contains the TLIS streamserver in the form of Docker microservices. It is composed of the following containers:
- Icecast (audio stream server)
- Liquidsoap (fallback stream generator)
- Filebrowser (for managing fallback audio files)
Start the server using docker compose up
.
The Icecast web interface is exposed on host port 8000. On port 8080, you will find a simple web-based fileserver which you can use to upload music and jingles for the fallback stream.
First, it is necessary to open the fileserver web interface, login as admin:admin
and change the default admin password. It is also recommended to create a non-admin user, which should then be used to manage the audio files.
NOTE: Do not change the folder structure! Only upload/modify/delete music files in the existing directories. There is a single directory for jingles and 4 directories for different time segments of the day.
NOTE: Until you upload some music files, the fallback stream will be up but you will only hear a test tone and white noise.
- 8000: icecast web interface, also used for publishing audio (streaming from studio)
- 8080: filebrowser
fallback-music
volume is shared between liquidsoap and filebrowser
- explore better ways to manage icecast passwords in this project
- idea for a v2: for switching between studio and fallback, use the liquidsoap script. This should result in smoother changeovers, also there would always be exactly 1 public-facing active icecast mountpoint. This would also simplify listener count logging.
- current icecast mountpoint order: tlis > studio > fallback
- proposed mountpoint order: tlis > mix > live > studio
- liquidsoap takes live and studio as inputs, generates fallback and outputs to mix. If liquidsoap (mix) fails, icecast will automatically switch to live or studio, if they're up.