From 5e4a8f0b150bb74fe9812c71377932fdfdee0b72 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Mon, 12 Oct 2015 18:23:17 +0000 Subject: [PATCH] Added deleted files --- radio/LICENSE.md | 22 ++ radio/README.md | 60 +++++ radio/etc/icecast2/admin/listclients.xsl | 101 ++++++++ radio/etc/icecast2/admin/listmounts.xsl | 84 +++++++ radio/etc/icecast2/admin/manageauth.xsl | 98 ++++++++ radio/etc/icecast2/admin/moveclients.xsl | 63 +++++ radio/etc/icecast2/admin/response.xsl | 56 +++++ radio/etc/icecast2/admin/stats.xsl | 124 ++++++++++ radio/etc/icecast2/admin/updatemetadata.xsl | 67 ++++++ radio/etc/icecast2/admin/xspf.xsl | 74 ++++++ radio/etc/icecast2/icecast.xml | 174 ++++++++++++++ radio/etc/icecast2/web/auth.xsl | 57 +++++ radio/etc/icecast2/web/server_version.xsl | 91 +++++++ radio/etc/icecast2/web/status.xsl | 122 ++++++++++ radio/etc/icecast2/web/status2.xsl | 12 + radio/etc/icecast2/web/style.css | 250 ++++++++++++++++++++ radio/etc/supervisord.conf | 33 +++ radio/examples/docker-compose.yml | 12 + radio/start.sh | 25 ++ 19 files changed, 1525 insertions(+) create mode 100644 radio/LICENSE.md create mode 100644 radio/README.md create mode 100644 radio/etc/icecast2/admin/listclients.xsl create mode 100644 radio/etc/icecast2/admin/listmounts.xsl create mode 100644 radio/etc/icecast2/admin/manageauth.xsl create mode 100644 radio/etc/icecast2/admin/moveclients.xsl create mode 100644 radio/etc/icecast2/admin/response.xsl create mode 100644 radio/etc/icecast2/admin/stats.xsl create mode 100644 radio/etc/icecast2/admin/updatemetadata.xsl create mode 100644 radio/etc/icecast2/admin/xspf.xsl create mode 100644 radio/etc/icecast2/icecast.xml create mode 100644 radio/etc/icecast2/web/auth.xsl create mode 100644 radio/etc/icecast2/web/server_version.xsl create mode 100644 radio/etc/icecast2/web/status.xsl create mode 100644 radio/etc/icecast2/web/status2.xsl create mode 100644 radio/etc/icecast2/web/style.css create mode 100644 radio/etc/supervisord.conf create mode 100644 radio/examples/docker-compose.yml create mode 100755 radio/start.sh diff --git a/radio/LICENSE.md b/radio/LICENSE.md new file mode 100644 index 0000000..f7cc6d1 --- /dev/null +++ b/radio/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License +=============== + +Copyright (c) **2013-2015 Manfred Touron ([@moul](https://twitter.com/moul))** + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/radio/README.md b/radio/README.md new file mode 100644 index 0000000..e7e116b --- /dev/null +++ b/radio/README.md @@ -0,0 +1,60 @@ +# Icecast in Docker [![Build Status](https://travis-ci.org/moul/docker-icecast.svg?branch=master)](https://travis-ci.org/moul/docker-icecast) + +Icecast2 Dockerfile + +[![](http://dockeri.co/image/moul/icecast)](https://index.docker.io/u/moul/icecast/) + +## Run + +Run with default password, export port 8000 + +```bash +docker run -p 8000:8000 moul/icecast +$BROWSER localhost:8000 +``` + +Run with custom password + +```bash +docker run -p 8000:8000 -e ICECAST_SOURCE_PASSWORD=aaaa -e ICECAST_ADMIN_PASSWORD=bbbb -e ICECAST_PASSWORD=cccc -e ICECAST_RELAY_PASSWORD=dddd moul/icecast +``` + +Run with custom configuration + +```bash +docker run -p 8000:8000 -v /local/path/to/icecast/config:/etc/icecast2 moul/icecast +docker run -p 8000:8000 -v /local/path/to/icecast.xml:/etc/icecast2/icecast.xml moul/icecast +``` + +Extends Dockerfile + +```Dockerfile +FROM moul/icecast +ADD ./icecast.xml /etc/icecast2 +``` + +Docker-compose + +```yaml +icecast: + image: moul/icecast + volumes: + - logs:/var/log/icecast2 + - /etc/localtime:/etc/localtime:ro + environment: + - ICECAST_SOURCE_PASSWORD=aaa + - ICECAST_ADMIN_PASSWORD=bbb + - ICECAST_PASSWORD=ccc + - ICECAST_RELAY_PASSWORD=ddd + ports: + - 8000:8000 +``` + +## Examples + +- https://github.com/ultreme/scc-radio/ + + +## License + +[MIT](https://github.com/moul/docker-icecast/blob/master/LICENSE.md) diff --git a/radio/etc/icecast2/admin/listclients.xsl b/radio/etc/icecast2/admin/listclients.xsl new file mode 100644 index 0000000..2fb7fe9 --- /dev/null +++ b/radio/etc/icecast2/admin/listclients.xsl @@ -0,0 +1,101 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + + +

Listener Stats

+
+
+ +
+
+ +
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source +
+
+ + + + + + + + + + + + + + + + +
IP
Seconds Connected
User Agent
Action
()Kick
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/admin/listmounts.xsl b/radio/etc/icecast2/admin/listmounts.xsl new file mode 100644 index 0000000..23f9276 --- /dev/null +++ b/radio/etc/icecast2/admin/listmounts.xsl @@ -0,0 +1,84 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + +

Active Mountpoints

+
+
+ +
+
+ +
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source + Manage Authentication +
+
+

Listener(s)

+

+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/admin/manageauth.xsl b/radio/etc/icecast2/admin/manageauth.xsl new file mode 100644 index 0000000..4c1ab9d --- /dev/null +++ b/radio/etc/icecast2/admin/manageauth.xsl @@ -0,0 +1,98 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ +
+
+ +
+
+ + + + +

+ +()

+ + + +
+ List Clients + Move Listeners + Update Metadata + Kill Source +
+

+
+ + + + + + + + + + + + +
User Id
delete
+ + + + + + + + + + + + +
User IdPassword
+ + +
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/admin/moveclients.xsl b/radio/etc/icecast2/admin/moveclients.xsl new file mode 100644 index 0000000..99a8a9e --- /dev/null +++ b/radio/etc/icecast2/admin/moveclients.xsl @@ -0,0 +1,63 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + +

Moving Listeners From ()

+
+
+ +
+
+

Move to which mountpoint ?

+ + + + + + + +
Move from () to () ListenersMove Clients
+
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + + +
+
diff --git a/radio/etc/icecast2/admin/response.xsl b/radio/etc/icecast2/admin/response.xsl new file mode 100644 index 0000000..6c584b4 --- /dev/null +++ b/radio/etc/icecast2/admin/response.xsl @@ -0,0 +1,56 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home | + List Mountpoints | + Move Listeners | + Index +
+
+ +
+
+
+
+ +

Icecast Server Response

+
+
+ +
+
+

Response

+ +Message :

+Return Code:

+
+
+
+
+
+ +
+
+
Support icecast development at www.icecast.org
+ + + +
+
diff --git a/radio/etc/icecast2/admin/stats.xsl b/radio/etc/icecast2/admin/stats.xsl new file mode 100644 index 0000000..e09f249 --- /dev/null +++ b/radio/etc/icecast2/admin/stats.xsl @@ -0,0 +1,124 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ + + +
+
+ +
+
+

Global Server Stats

+ + + + + + + + + + + +
+
+
+ +
+
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + +

Mount Point

Login + M3U + XSPF
+
+ + + +
+ List Clients + Move MountPoints + Update Metadata + Kill Source + Manage Authentication +
+
+ + + + + + + +
+
+
+ +
+
+
+
+
+
+  + + + +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/admin/updatemetadata.xsl b/radio/etc/icecast2/admin/updatemetadata.xsl new file mode 100644 index 0000000..0d86aa5 --- /dev/null +++ b/radio/etc/icecast2/admin/updatemetadata.xsl @@ -0,0 +1,67 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Admin

+
+ +
+
+ +
+ + + +
+ Admin Home + List Mountpoints + Move Listeners + Index +
+
+ +
+
+
+
+ +

Update Metadata

+
+
+ +
+
+ +

+ +()

+ +
+ + + +
Metadata :
+ + + +
+ +
+
+
+  +
+
+ +
+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/admin/xspf.xsl b/radio/etc/icecast2/admin/xspf.xsl new file mode 100644 index 0000000..5ca1082 --- /dev/null +++ b/radio/etc/icecast2/admin/xspf.xsl @@ -0,0 +1,74 @@ + + + + + + + <xsl:value-of select="server" /> + + + + + + + + + + + +<xsl:value-of select="title" /> + + +Stream Title: + +Stream Description: +Content Type: + +Bitrate: + +Quality: + +Video Quality: + +Framesize: + +Framerate: + +Current Listeners: + +Peak Listeners: + +Stream Genre: + + + + + + + + + + + + + diff --git a/radio/etc/icecast2/icecast.xml b/radio/etc/icecast2/icecast.xml new file mode 100644 index 0000000..8c5835a --- /dev/null +++ b/radio/etc/icecast2/icecast.xml @@ -0,0 +1,174 @@ + + + 1000 + 42 + 5 + 524288 + 30 + 15 + 10 + + 1 + + 65535 + + + + + hackme + + hackme + + + admin + hackme + + + + + + + + + localhost + + + + 8000 + + + + + + + + + + + + + + + + + + 1 + + + + /usr/share/icecast2 + + + /var/log/icecast2 + /usr/share/icecast2/web + /usr/share/icecast2/admin + + + + + + + + + + access.log + error.log + + 3 + 10000 + + + + + + 0 + + + diff --git a/radio/etc/icecast2/web/auth.xsl b/radio/etc/icecast2/web/auth.xsl new file mode 100644 index 0000000..0d8c97e --- /dev/null +++ b/radio/etc/icecast2/web/auth.xsl @@ -0,0 +1,57 @@ + + + + + +Icecast Streaming Media Server + + + + + + + + +
+

Authorization Page

+
+
+ +
+
+ + + + + +

()

+
+ + + + +
Username :
Password :
+ +
+
+
+ +

- Not Connected

+
+
+

+

+
+&nbsp; +
+
+ +
+
+



+
+
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/web/server_version.xsl b/radio/etc/icecast2/web/server_version.xsl new file mode 100644 index 0000000..bcf610b --- /dev/null +++ b/radio/etc/icecast2/web/server_version.xsl @@ -0,0 +1,91 @@ + + + + + +Icecast Streaming Media Server + + + +

Server Information

+
+ +
+
+ +
+ + + + +
+ Administration + Server Status + Version
+
+ +
+
+
+
+ + +
+
+ +
+
+

Server Information

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Location
Admin
Host
Version
Downloadicecast.org
Subversionclick here
Documentationclick here
Stream Directory dir.xiph.org
Communityforum.icecast.org
+
+
+ +
+
+
+
+ +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/web/status.xsl b/radio/etc/icecast2/web/status.xsl new file mode 100644 index 0000000..b7049a2 --- /dev/null +++ b/radio/etc/icecast2/web/status.xsl @@ -0,0 +1,122 @@ + + + + + +Icecast Streaming Media Server + + + +

Icecast2 Status

+
+ +
+
+ +
+ + + + +
+ Administration + Server Status + Version
+
+ +
+
+
+
+ + + + + +
+
+ +
+
+
+ + + + + + + + + + + + + +

Mount Point

Login M3U XSPF
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Stream Title:
Stream Description:
Content Type:
Mount started:
Bitrate:
Quality:
Video Quality:
Framesize:
Framerate:
Current Listeners:
Peak Listeners:
Stream Genre:
Stream URL:
Current Song: + -
+
+
+ +
+
+
+
+
+ +

- Not Connected

+
+
+ +
+&nbsp; + + +
Support icecast development at www.icecast.org
+ + +
+
diff --git a/radio/etc/icecast2/web/status2.xsl b/radio/etc/icecast2/web/status2.xsl new file mode 100644 index 0000000..689dbef --- /dev/null +++ b/radio/etc/icecast2/web/status2.xsl @@ -0,0 +1,12 @@ + + + +
+MountPoint,Connections,Stream Name,Current Listeners,Description,Currently Playing,Stream URL 
+Global,Client: Source: ,,,,
+
+,,,,, - ,
+
+
+
+
diff --git a/radio/etc/icecast2/web/style.css b/radio/etc/icecast2/web/style.css new file mode 100644 index 0000000..129d49d --- /dev/null +++ b/radio/etc/icecast2/web/style.css @@ -0,0 +1,250 @@ +/****************************************************************************** + + This file styles the bar that goes across the top of all Xiph.Org + pages. + + The style that comes from this was first (to my knowledge) at + http://alistapart.com/stories/practicalcss/ in the + "Splitting the Difference" section. + +******************************************************************************/ + +/* This effect doesn't work at all if all content is pinched in a bit. */ +html, body { + margin: 0; + padding: 0; +} + +body { + margin-left: 50px; + margin-right: 25px; + background-color: #000; +} + +.xiphnav { + font-family: Verdana, sans-serif; + font-weight: normal; + padding: .25em; + margin-bottom: .5em; + border-bottom: 1px solid #000; + color: #000; + background: #aaa; +} +h2 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 3em; + color: #fff; + padding: 10px 0px 10px 80px; + margin-top:3px; + background: transparent url(/icecast.png) no-repeat scroll left center +} +h1 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 100%; + color: #fff; + margin-top:3px; +} +.nav { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #fff; +} +.nav:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + color: #f8ef64; +} +.xiphnav_a { + text-decoration: none; + font-weight: normal; + color: #000; +} +.news { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + color: #fff; +} +.newsheader { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 110%; + color: #f8ef64; + background: #444; +} +.streamtd { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 85%; + color: #fff; + padding:15px; +} +.streamtd_alt { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + font-size: 85%; + color: #fff; +} + +.streamtd_alt_2 { + font-family: Verdana, sans-serif; + text-decoration: underline; + font-weight: normal; + font-size: 85%; + color: #fff; +} + +td { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: normal; + color: #fff; +} +.roundcont { + width: 90%; + background-color: #656565; + color: #fff; +} +.roundcont a { + margin: 0px 10px; +} +.newscontent { + margin: 0 20px; +} +h3 { + margin: 0px; + padding: 0px; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #f8ef64; +} +.newscontent h3 { + margin-bottom: 10px; + border-bottom: 1px groove #ACACAC; +} +.newscontent h4 { + margin: 10px 0px; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + font-size: 110%; + color: #f8ef64; +} +.newscontent p { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; +} +.newscontent td { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; +} +.newscontent td.streamdata { + margin: 0 0; + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: none; + font-size: 90%; + color: #f8ef64; +} +.streamheader table { + width: 100%; + margin-bottom: 5px; + border-bottom: 1px groove #ACACAC; +} +.streamheader td { + margin: 0px; + padding-top: 10px; + padding-bottom: 10px; + padding: 10 5 10 5; + border: 0px solid white; +} +.streamheader h3 { + border: 0px; +} +.streamheader a { + padding: 8px 5px 3px 30px; + text-decoration: none; + background: transparent url("/tunein.png") no-repeat left center; +} +.streamheader a.auth { + padding-top: 10px; + padding-bottom: 10px; + padding-left: 32px; + background: transparent url("/key.png") no-repeat left center; +} +.newscontent a { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + margin: 0px; + color: #f8ef64; +} +.newscontent a:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + color: #fff; +} +.newscontent a.nav2 { + font-family: Verdana, sans-serif; + text-decoration: none; + font-weight: bold; + padding: 2px 9px; + background: #444; + color: #f8ef64; +} +.newscontent a.nav2:hover { + font-family: Verdana, sans-serif; + text-decoration: none; + background: #777; + font-weight: bold; + color: #fff; +} +.poster { + font-family: Verdana, sans-serif; + margin: 50px 120px 20px 0px; + display: block; + text-decoration: none; + font-size: 100%; + color: #f8ef64; + padding: 5px; + border-top: 1px groove #ACACAC; +} +.roundcont p { + margin: 10px 50px; +} + +.roundtop { + background: url(/corner_topright.jpg) no-repeat top right; +} + +.roundbottom { + background: url(/corner_bottomright.jpg) no-repeat top right; +} + +img.corner { + width: 15px; + height: 15px; + border: none; + display: block !important; +} + + diff --git a/radio/etc/supervisord.conf b/radio/etc/supervisord.conf new file mode 100644 index 0000000..be7c901 --- /dev/null +++ b/radio/etc/supervisord.conf @@ -0,0 +1,33 @@ +[unix_http_server] +file=/tmp/supervisor.sock + +[supervisord] +logfile=/tmp/supervisord.log +logfile_maxbytes=50MB +logfile_backups=10 +loglevel=info +pidfile=/tmp/supervisord.pid +nodaemon=false +minfds=1024 +minprocs=200 +user=icecast2 + +[rpcinterface:supervisor] +supervisor.rpcinterface_factory=supervisor.rpcinterface:make_main_rpcinterface + +[supervisorctl] +serverurl=unix:///tmp/supervisor.sock + +[program:icecast2] +user=icecast2 +command=icecast2 -n -c /etc/icecast2/icecast.xml +stopsignal=6 +stdout_events_enabled=true +stderr_events_enabled=true +autorestart=true + +[eventlistener:stdout] +command=supervisor_stdout +buffer_size=100 +events=PROCESS_LOG +result_hander=supervisor_stdout:event_handler diff --git a/radio/examples/docker-compose.yml b/radio/examples/docker-compose.yml new file mode 100644 index 0000000..824200b --- /dev/null +++ b/radio/examples/docker-compose.yml @@ -0,0 +1,12 @@ +icecast: + image: moul/icecast:latest + volumes: + - logs:/var/log/icecast2 + - /etc/localtime:/etc/localtime:ro + environment: + - ICECAST_SOURCE_PASSWORD=changeme + - ICECAST_ADMIN_PASSWORD=changeme + - ICECAST_PASSWORD=changeme + - ICECAST_RELAY_PASSWORD=changeme + ports: + - 8000:8000 diff --git a/radio/start.sh b/radio/start.sh new file mode 100755 index 0000000..79dc99b --- /dev/null +++ b/radio/start.sh @@ -0,0 +1,25 @@ +#!/bin/sh + +env + +set -x + +if [ -n "$ICECAST_SOURCE_PASSWORD" ]; then + sed -i "s/[^<]*<\/source-password>/$ICECAST_SOURCE_PASSWORD<\/source-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_RELAY_PASSWORD" ]; then + sed -i "s/[^<]*<\/relay-password>/$ICECAST_RELAY_PASSWORD<\/relay-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_ADMIN_PASSWORD" ]; then + sed -i "s/[^<]*<\/admin-password>/$ICECAST_ADMIN_PASSWORD<\/admin-password>/g" /etc/icecast2/icecast.xml +fi + +if [ -n "$ICECAST_PASSWORD" ]; then + sed -i "s/[^<]*<\/password>/$ICECAST_PASSWORD<\/password>/g" /etc/icecast2/icecast.xml +fi + +cat /etc/icecast2/icecast.xml + +supervisord -n -c /etc/supervisord.conf