add mpd
This commit is contained in:
parent
3d3fbe5c00
commit
9d72f4397b
11
mpd/Dockerfile
Normal file
11
mpd/Dockerfile
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
ARG BUILD_FROM
|
||||||
|
FROM $BUILD_FROM
|
||||||
|
|
||||||
|
RUN apk add --no-cache \
|
||||||
|
mpc=0.35-r0 \
|
||||||
|
mpd=0.23.15-r2 \
|
||||||
|
ympd=1.3.0-r12
|
||||||
|
|
||||||
|
ENTRYPOINT [ "/init" ]
|
||||||
|
CMD []
|
||||||
|
COPY root /
|
6
mpd/build.yaml
Normal file
6
mpd/build.yaml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
build_from:
|
||||||
|
armhf: ghcr.io/home-assistant/armhf-base:3.21
|
||||||
|
armv7: ghcr.io/home-assistant/armv7-base:3.21
|
||||||
|
aarch64: ghcr.io/home-assistant/aarch64-base:3.21
|
||||||
|
amd64: ghcr.io/home-assistant/amd64-base:3.21
|
||||||
|
i386: ghcr.io/home-assistant/i386-base:3.21
|
25
mpd/config.yaml
Normal file
25
mpd/config.yaml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
name: MPD
|
||||||
|
version: dev
|
||||||
|
slug: mpd
|
||||||
|
panel_icon: mdi:music-circle
|
||||||
|
description: Music Player Daemon is a free and open source music player. It plays audio files, organizes playlists and maintains a music database
|
||||||
|
url: https://forgejo.owo.monster/chaos/hass-mpd
|
||||||
|
arch:
|
||||||
|
- armv7
|
||||||
|
- armhf
|
||||||
|
- aarch64
|
||||||
|
- amd64
|
||||||
|
- i386
|
||||||
|
init: false
|
||||||
|
audio: true
|
||||||
|
devices:
|
||||||
|
- /dev/snd
|
||||||
|
map:
|
||||||
|
- share:rw
|
||||||
|
- media:rw
|
||||||
|
ports:
|
||||||
|
6600/tcp: 6600
|
||||||
|
ports_description:
|
||||||
|
6600/tcp: MPD
|
||||||
|
options:
|
||||||
|
schema:
|
BIN
mpd/icon.png
Normal file
BIN
mpd/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
BIN
mpd/logo.png
Normal file
BIN
mpd/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
29
mpd/root/etc/mpd.conf
Normal file
29
mpd/root/etc/mpd.conf
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
|
||||||
|
music_directory "/media/mpd/music"
|
||||||
|
playlist_directory "/media/mpd/playlists"
|
||||||
|
db_file "/data/database/mpd.db"
|
||||||
|
sticker_file "/data/sticker.sql"
|
||||||
|
filesystem_charset "UTF-8"
|
||||||
|
|
||||||
|
log_file "syslog"
|
||||||
|
log_level "default"
|
||||||
|
bind_to_address "0.0.0.0"
|
||||||
|
port "6600"
|
||||||
|
zeroconf_enabled "no"
|
||||||
|
host_permissions "127.0.0.1 read,add,control,admin"
|
||||||
|
|
||||||
|
audio_output {
|
||||||
|
type "pulse"
|
||||||
|
name "Home Assistant Pulseaudio"
|
||||||
|
}
|
||||||
|
audio_output_format "48000:24:2"
|
||||||
|
audio_buffer_size "4096"
|
||||||
|
resampler {
|
||||||
|
plugin "soxr"
|
||||||
|
quality "very high"
|
||||||
|
threads "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
replaygain "track"
|
||||||
|
auto_update "yes"
|
||||||
|
metadata_to_use "title,artist"
|
0
mpd/root/etc/s6-overlay/s6-rc.d/mpd/producer-for
Normal file
0
mpd/root/etc/s6-overlay/s6-rc.d/mpd/producer-for
Normal file
57
mpd/root/etc/s6-overlay/s6-rc.d/mpd/run
Normal file
57
mpd/root/etc/s6-overlay/s6-rc.d/mpd/run
Normal file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/command/with-contenv bashio
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# Enable Jemalloc for better memory handling
|
||||||
|
export LD_PRELOAD="/usr/local/lib/libjemalloc.so.2"
|
||||||
|
|
||||||
|
bashio::log.info 'Setup Folders'
|
||||||
|
|
||||||
|
MEDIA_FOLDER=$(bashio::config 'media_folder')
|
||||||
|
PLAYLIST_FOLDER=$(bashio::config 'playlist_folder')
|
||||||
|
|
||||||
|
mkdir -p /data/database \
|
||||||
|
"/media/mpd/media" \
|
||||||
|
"/media/mpd/playlists"
|
||||||
|
|
||||||
|
bashio::log.info 'Setup settings'
|
||||||
|
|
||||||
|
if [ "$(bashio::config 'custom_config')" != 'null' ]; then
|
||||||
|
bashio::log.info 'Use custom config'
|
||||||
|
cp "$(bashio::config 'custom_config')" '/etc/mpd.conf'
|
||||||
|
else
|
||||||
|
bashio::log.info 'Set media folder'
|
||||||
|
MEDIA_FOLDER=$(bashio::config 'media_folder')
|
||||||
|
sed -i "s/music_directory.*/music_directory \"${MEDIA_FOLDER//\//\\/}\"/" /etc/mpd.conf
|
||||||
|
|
||||||
|
bashio::log.info 'Set playlist folder'
|
||||||
|
PLAYLIST_FOLDER=$(bashio::config 'playlist_folder')
|
||||||
|
sed -i "s/playlist_directory.*/playlist_directory \"${PLAYLIST_FOLDER//\//\\/}\"/" /etc/mpd.conf
|
||||||
|
|
||||||
|
if [ "$(bashio::config 'volume_normalization')" == 'true' ]; then
|
||||||
|
sed -i "/^#volume_normalization/s/^#//" /etc/mpd.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(bashio::config 'verbose')" == 'true' ]; then
|
||||||
|
sed -i "/^log_level/s/default/verbose/" /etc/mpd.conf
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$(bashio::config 'httpd_output')" == 'true' ]; then
|
||||||
|
printf '\n
|
||||||
|
audio_output { \n
|
||||||
|
type "httpd" \n
|
||||||
|
name "HTTPd Output" \n
|
||||||
|
port "8000" \n
|
||||||
|
bitrate "192" \n
|
||||||
|
always_on "yes" \n
|
||||||
|
}' >> /etc/mpd.conf
|
||||||
|
bashio::log.info 'HTTPd output enabled'
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
chown root:root /usr/bin/mpd
|
||||||
|
chown root:root /usr/bin/mpc
|
||||||
|
chmod 0774 /usr/bin/mpd
|
||||||
|
chmod 0774 /usr/bin/mpc
|
||||||
|
|
||||||
|
bashio::log.info 'Start MPD'
|
||||||
|
mpd --stdout --no-daemon
|
1
mpd/root/etc/s6-overlay/s6-rc.d/mpd/type
Normal file
1
mpd/root/etc/s6-overlay/s6-rc.d/mpd/type
Normal file
|
@ -0,0 +1 @@
|
||||||
|
longrun
|
0
mpd/root/etc/s6-overlay/s6-rc.d/user/contents.d/mpd
Normal file
0
mpd/root/etc/s6-overlay/s6-rc.d/user/contents.d/mpd
Normal file
3
repository.yaml
Normal file
3
repository.yaml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
name: MPD Plugin Repo
|
||||||
|
url: 'https://forgejo.owo.monster/chaos/hass-mpd'
|
||||||
|
maintainer: chaos <chaos@owo.monster>
|
Loading…
Reference in a new issue