#! /bin/bash set -u set -e name="$(basename ${BASH_SOURCE})" dir="$(dirname $(realpath ${BASH_SOURCE}))" mntme="$dir/$name-mnt" mkdir -p $mntme chmod -R 777 $mntme || true docker rm -f \ mpd \ ympd \ rompr \ icecast \ || true # network docker network create mpdnet || true # MPD // server mkdir -p $mntme/mpd/{playlists,db} touch $mntme/mpd/{conf,state} if [ ! -e $mntme/mpd/media ]; then ln -s /volume1/video/Bel/Podcast $mntme/mpd/media fi sudo docker run -d \ --restart=unless-stopped \ --name=mpd \ --network=mpdnet \ --net-alias mpd \ --net-alias mpd.mpd \ -v $mntme/mpd/conf:/etc/mpd.conf \ -v $mntme/mpd/state:/state \ -v $mntme/mpd/playlists:/playlists \ -v $mntme/mpd/media:/media \ -v $mntme/mpd/db:/db \ -p 6600:6600 \ -p 6501-6510:6501-6510 \ -p 8000:8000 \ vimagick/mpd sleep 2 for cmd in update "consume 1" clear "load RESTORE" play pause; do docker exec -i mpd mpc $cmd done # YMPD // remote sudo docker run -d \ --restart=unless-stopped \ --name=ympd \ --network=mpdnet \ --net-alias ympd \ -p 4041:8080 \ vitiman/alpine-ympd # rompr // remote #sudo docker run -d \ # --restart=unless-stopped \ # --name=rompr \ # --network=mpdnet \ # --net-alias rompr \ # -p 4042:80 \ # rawdlite/rompr # icecast // remote+player #sudo docker run -d \ # --restart=unless-stopped \ # --name=icecast \ # --network=mpdnet \ # --net-alias icecast \ # -p 8000:8000 \ # vitiman/alpine-icecast # rompr // remote docker exec -i mpd apk add --no-cache fcron docker exec -i mpd mkdir -p /etc/periodic/15min || true echo ' #! /bin/sh mpc rm RESTORE mpc save RESTORE echo "Done: $(date)" >> /var/log/mpd_save ' | docker exec -i mpd sh -c 'cat > /mpd_save.sh' echo ' */25 * * * * sh /mpd_save.sh ' | docker exec -i mpd sh -c 'cat > /save_cron' docker exec -i mpd chmod +x /mpd_save.sh docker exec -i mpd crond docker exec -i mpd crontab /save_cron echo DONE