├── .gitignore ├── docker-compose.yml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .env 3 | data/ 4 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: "3" 2 | services: 3 | icecast: 4 | environment: 5 | - ICECAST_ADMIN_PASSWORD 6 | - ICECAST_PASSWORD 7 | - ICECAST_RELAY_PASSWORD 8 | - ICECAST_SOURCE_PASSWORD 9 | image: moul/icecast:latest 10 | ports: 11 | - 8000:8000 12 | volumes: 13 | - /etc/localtime:/etc/localtime:ro 14 | liquidsoap: 15 | environment: 16 | - ICECAST_HOST=icecast 17 | - ICECAST_PORT=8000 18 | - ICECAST_SOURCE_PASSWORD 19 | command: liquidsoap -v --debug /liquidsoap/liquidsoap.liq 20 | image: moul/liquidsoap:latest 21 | ports: 22 | - 8800:8800 23 | user: liquidsoap 24 | volumes: 25 | - ${LIQUIDSOAP_CONFIG}:/liquidsoap/liquidsoap.liq 26 | - ${LIQUIDSOAP_DATA}:/data 27 | - /etc/localtime:/etc/localtime:ro 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | radio 2 | ===== 3 | 4 | Internet radio with [liquidsoap](http://savonet.sourceforge.net/) and 5 | [icecast](http://icecast.org/) wrapped with [docker](https://www.docker.com/). 6 | 7 | --- 8 | 9 | This is essentially a `docker-compose.yml` with two services; 10 | [moul/icecast](https://hub.docker.com/r/moul/icecast/) and 11 | [moul/liquidsoap](https://hub.docker.com/r/moul/liquidsoap/). 12 | 13 | The idea is that you provide two things: 14 | - A directory of audio and playlists 15 | - A file which describes how to stream the audio 16 | 17 | ## Configuration 18 | 19 | The following environment variables are *required*: 20 | 21 | | Name | Purpose | 22 | |---------------------------|---------------------------------------------------------------| 23 | | `ICECAST_ADMIN_PASSWORD` | Used for administration functions. | 24 | | `ICECAST_RELAY_PASSWORD` | Used when a slave requests the list of streams to relay. | 25 | | `ICECAST_SOURCE_PASSWORD` | Used by sources to connect to Icecast. | 26 | | `LIQUIDSOAP_CONFIG` | An absolute path to the `liquidsoap` configuration. | 27 | | `LIQUIDSOAP_DATA` | An absolute path to a directory of audio files and playlists. | 28 | 29 | ## Deployment 30 | 31 | Start up the service with `docker-compose up -d`. 32 | 33 | Once running you can view the `icecast` interface at `:8000`. 34 | --------------------------------------------------------------------------------