add streaming and mobile-app instructions

This commit is contained in:
2026-05-18 12:27:39 +02:00
parent ee6e7b806f
commit 0e40a23828
12 changed files with 726 additions and 3 deletions
+23
View File
@@ -0,0 +1,23 @@
FROM debian:bookworm-slim
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
icecast2 \
gettext-base \
apache2-utils \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
COPY icecast.xml.template /etc/icecast2/icecast.xml.template
EXPOSE 8000
HEALTHCHECK --interval=10s --timeout=5s --start-period=5s \
CMD curl -fsS http://localhost:8000/ > /dev/null || exit 1
CMD ["/bin/sh", "-c", "\
envsubst '${ICECAST_SOURCE_PASSWORD}${ICECAST_RELAY_PASSWORD}${ICECAST_ADMIN_PASSWORD}' \
< /etc/icecast2/icecast.xml.template > /etc/icecast2/icecast.xml \
&& htpasswd -cb /etc/icecast2/listeners.htpasswd \
listener \"${ICECAST_LISTENER_PASSWORD:-groove_listen}\" \
&& exec icecast2 -c /etc/icecast2/icecast.xml"]
+63
View File
@@ -0,0 +1,63 @@
<icecast>
<location>Groove Audio</location>
<admin>admin@localhost</admin>
<limits>
<clients>10</clients>
<sources>1</sources>
<queue-size>131072</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65536</burst-size>
</limits>
<authentication>
<source-password>${ICECAST_SOURCE_PASSWORD}</source-password>
<relay-password>${ICECAST_RELAY_PASSWORD}</relay-password>
<admin-user>admin</admin-user>
<admin-password>${ICECAST_ADMIN_PASSWORD}</admin-password>
</authentication>
<hostname>0.0.0.0</hostname>
<listen-socket>
<port>8000</port>
</listen-socket>
<http-headers>
<header name="Access-Control-Allow-Origin" value="*" />
<header name="Access-Control-Allow-Headers" value="Origin, Accept, X-Requested-With, Content-Type" />
<header name="Access-Control-Allow-Methods" value="GET, OPTIONS, HEAD" />
</http-headers>
<!-- Listener authentication on the stream mount.
Clients must supply ?username=listener&password=ICECAST_LISTENER_PASSWORD
in the URL, or set Authorization: Basic ... header. -->
<mount type="normal">
<mount-name>/stream.flac</mount-name>
<authentication type="htpasswd">
<option name="filename" value="/etc/icecast2/listeners.htpasswd"/>
<option name="allow_duplicate_users" value="1"/>
</authentication>
</mount>
<paths>
<basedir>/usr/share/icecast2</basedir>
<logdir>/var/log/icecast2</logdir>
<webroot>/usr/share/icecast2/web</webroot>
<adminroot>/usr/share/icecast2/admin</adminroot>
<alias source="/" destination="/status.xsl" />
</paths>
<logging>
<accesslog>-</accesslog>
<errorlog>-</errorlog>
<loglevel>3</loglevel>
</logging>
<security>
<chroot>0</chroot>
</security>
</icecast>