podcast/mpd-ympd-proxy-pause/scratch/mpd-ympd

93 lines
1.9 KiB
Bash
Executable File

#! /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