- CSS 32.4%
- JavaScript 30.2%
- Shell 16.8%
- XSLT 16.2%
- Dockerfile 4.4%
| icestreamp3 | ||
| docker-compose.yml | ||
| README.md | ||
GitHub repositories are now mirror only
Due to recent changes in GitHub's direction, development has migrated to: https://git.ribas89.co.uk/
Have a issue/question? https://link.ribas89.co.uk/ask
Thank you for your support ❤️!
IceStreamMP3
A lightweight Icecast + ezstream Docker setup for streaming MP3 files directly from disk.
Ideal for:
- Low-power servers (VPS, NAS, Raspberry Pi)
- Always-on radio streams
- Archival or background music stations
Features
- MP3 passthrough streaming (no transcoding), making it very lightweight and low on CPU usage
- Automatic playlist and ezstream configuration generation from your music library
- Custom web frontend to easily browse and listen to all available radio stations
How to install
-
Clone or download this repository
-
Build the container image:
docker compose build icestreamp3 -
Edit the Icecast configuration and change the passwords:
./icecast/icecast.xml -
Start the server:
docker compose up -d icestreamp3 -
If you want to modify something on ezstream or its playlists (like shuffle), the generated files are in
/ezstream
Accessing streams
Each subdirectory inside the music library becomes its own stream:
/musiclib/rock/
--song1.mp3
--song2.mp3
/musiclib/jazz/
--track1.mp3
--track2.mp3
/musiclib/rock → http://host:8000/rock.mp3
/musiclib/jazz → http://host:8000/jazz.mp3
Streams are available at:
http://<host>:8000/<foldername>.mp3
Examples:
http://localhost:8000/rock.mp3
http://localhost:8000/jazz.mp3
Icecast web interface:
http://<host>:8000/
Example host layout
icestreamp3/
--build/
----Dockerfile
--icecast/
----icecast.xml
----frontpage/
--ezstream/
--docker-compose.yml
Why is it so lightweight?
-
MP3 passthrough
- No decoding or re-encoding
- Files are streamed exactly as stored
-
Very low CPU usage
- ezstream only reads files and pushes bytes
-
Minimal software stack
- Icecast
- ezstream
- a small Bash entrypoint
-
Fast startup
- Streams are generated automatically at container launch
Requirements
- Docker
- Docker Compose
- A directory containing MP3 files organized by folders