This a ready, set and deploy music stack built under docker.
- mpd: My favorite music server application
- icecast: To stream the audio over the world
- sima: Autoqueue client. Never stop listen!
- ympd: A minimal Web GUI.
- More incoming...
MPD + Icecast would be the essential configuration to be prepared to listen music. The other apps are cool add-ons for a beautiful stack
You have two options to execute all the stack, using docker-compose or launching the containers one-by-one, your choice.
The default access to applications are:
- mpd:
http://localhost:6600
orhttp://docker_machine_ip:6600
- icecast streaming:
http://localhost:8000/mpd
orhttp://docker_machine_ip:8000/mpd
- ympd gui:
http://localhost:8080
orhttp://docker_machine_ip:8080
Clone this repo. Edit docker-compose.yml and add your host volumes for your music, playlists and/or database, then:
docker-compose up -d
-
Create a bridge network
docker network create -d bridge music_stack
-
Run Icecast
docker run -p 8000:8000 --net music_stack --name=icecast -d vitiman/alpine-icecast:latest
-
Run MPD
Use host volumes or create your own volumes for your music, playlists and/or database
docker run -d -p 6600:6600 --net music_stack \
-v your_music_volume:/var/lib/mpd/music \
-v your_playlists_volume:/var/lib/mpd/playlists \
-v your_database_volume:/var/lib/mpd/database \
--name mpd vitiman/alpine-mpd:latest
-
(Optional) Run sima
docker run --net music_stack --name=sima -d vitiman/alpine-sima:latest
-
(Optional) Run ympd
docker run -p 8080:8080 --net music_stack --name=ympd -d vitiman/alpine-ympd:latest
It's strongly recommended to change passwords in icecast.xml and mpd.conf.
The passwords in configuration are setted for development purposes.
- icecast.xml: default configuration for icecast.
- mpd.conf: basic configuration for mpd, using shoutcast stream
- sima.conf: basic configuration for sima autoqueuing
When you set up your current passwords, you need only to build using docker-compose with the other YAML file docker-compose.yml.custom. Don't forget to set your volumes!
docker-compose -f docker-compose.yml.custom build
docker-compose -f docker-compose.yml.custom up -d
- Template version for docker compose
- Capture sima and ympd SIGTERM signal to stop quickly the container
- Some permissions inside containers