diff --git a/Dockerfile b/Dockerfile
index b2bf565..c151787 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -54,10 +54,11 @@ RUN \
&& sleep 1
COPY root/ /
-RUN chmod +x /usr/local/bin/run.sh
+RUN chmod +x /usr/local/bin/{run,entrypoint}.sh
EXPOSE 6600 6680 8000 5555/udp
VOLUME /data /music /playlists
LABEL description "Open source media server"
+ENTRYPOINT ["entrypoint.sh"]
CMD ["run.sh"]
diff --git a/root/defaults/icecast.xml b/root/defaults/icecast.xml
index 2c8ca9c..2e50946 100644
--- a/root/defaults/icecast.xml
+++ b/root/defaults/icecast.xml
@@ -20,9 +20,9 @@
3ds6ksvNGm6WeccXrd
- music.log1x.cloud
- Central, USA
- noreply@log1x.cloud
+ icecast.local
+ unknown
+ noreply@icecast.local
1
@@ -36,22 +36,19 @@
1
-
- /data/.config/icecast2
- /data/logs/icecast2
- /data/.config/icecast2/web
- /data/.config/icecast2/admin
+
+ /usr/share/icecast
+ /data/logs/icecast
+ /usr/share/icecast/web
+ /usr/share/icecast/admin
-
- access.log
- error.log
- 3
- 10000
-
-
0
+
+ mopidy
+ mopidy
+
diff --git a/root/usr/local/bin/entrypoint.sh b/root/usr/local/bin/entrypoint.sh
new file mode 100644
index 0000000..b94f9ab
--- /dev/null
+++ b/root/usr/local/bin/entrypoint.sh
@@ -0,0 +1,23 @@
+#!/bin/sh
+
+set -euo pipefail
+
+if [ ! -r /data/.config/mopidy.conf ]; then
+ mkdir -p /data/.config
+ cp /defaults/mopidy.conf /data/.config
+fi
+
+if [ ! -r /data/.config/icecast.xml ]; then
+ mkdir -p /data/.config
+ cp /defaults/icecast.xml /data/.config
+fi
+
+if [ ! -r /data/logs ]; then
+ mkdir -p /data/logs/mopidy
+ mkdir -p /data/logs/icecast
+fi
+
+chown -R mopidy:mopidy /data
+
+su-exec mopidy mopidy --config /data/.config/mopidy.conf local scan
+exec "${@}"
diff --git a/root/usr/local/bin/run.sh b/root/usr/local/bin/run.sh
index aedb091..b4192d8 100755
--- a/root/usr/local/bin/run.sh
+++ b/root/usr/local/bin/run.sh
@@ -1,22 +1,7 @@
#!/bin/sh
-if [ ! -r /data/.config/mopidy.conf ]; then
- mkdir -p /data/.config && cp /defaults/mopidy.conf /data/.config && chown -R mopidy:mopidy /data
-fi
-
-if [ ! -r /data/.config/icecast.xml ]; then
- mkdir -p /data/.config && cp /defaults/icecast.xml /data/.config && chown -R mopidy:mopidy /data
-fi
-
-if [ ! -r /data/.config/icecast2/web/silence.mp3 ]; then
- mkdir -p /data/.config/icecast2/web && cp /defaults/silence.mp3 /data/.config/icecast2/web && chown -R mopidy:mopidy /data
-fi
-
-if [ ! -r /data/logs ]; then
- mkdir -p /data/logs/mopidy /data/logs/icecast2 && chown -R mopidy:mopidy /data
-fi
trap "kill $PID" HUP INT TERM
-su-exec mopidy icecast -c /data/.config/icecast.xml -b &
+icecast -c /data/.config/icecast.xml -b &
su-exec mopidy mopidy --config /data/.config/mopidy.conf "${@}" &
PID=$!
wait $PID
diff --git a/root/defaults/silence.mp3 b/root/usr/share/icecast/web/silence.mp3
similarity index 100%
rename from root/defaults/silence.mp3
rename to root/usr/share/icecast/web/silence.mp3