]> git.parisson.com Git - telecaster-server.git/commitdiff
update icecast conf
authorGuillaume Pellerin <yomguy@parisson.com>
Tue, 24 Jan 2023 20:03:57 +0000 (21:03 +0100)
committerGuillaume Pellerin <yomguy@parisson.com>
Tue, 24 Jan 2023 20:03:57 +0000 (21:03 +0100)
src/etc/icecast2/icecast.xml

index 7859b0faed01cd238881ac65bfef1111d0c75eee..dc1c1e657ee014725735fafedb00ad79e840596c 100644 (file)
@@ -1,12 +1,24 @@
 <icecast>
+    <!-- location and admin are two arbitrary strings that are e.g. visible
+         on the server info page of the icecast web interface
+         (server_version.xsl). -->
+    <location>Earth</location>
+    <admin>icemaster@localhost</admin>
+
+    <!-- IMPORTANT!
+         Especially for inexperienced users:
+         Start out by ONLY changing all passwords and restarting Icecast.
+         For detailed setup instructions please refer to the documentation.
+         It's also available here: http://icecast.org/docs/
+    -->
+
     <limits>
         <clients>100</clients>
-        <sources>20</sources>
-        <threadpool>16</threadpool>
-        <queue-size>524288</queue-size>
-        <client-timeout>30</client-timeout>
-        <header-timeout>15</header-timeout>
-        <source-timeout>10</source-timeout>
+        <sources>50</sources>
+       <queue-size>4194304</queue-size>
+        <client-timeout>60</client-timeout>
+        <header-timeout>30</header-timeout>
+        <source-timeout>20</source-timeout>
         <!-- If enabled, this will provide a burst of data when a client 
              first connects, thereby significantly reducing the startup 
              time for listeners that do substantial buffering. However,
         <!-- same as burst-on-connect, but this allows for being more
              specific on how much to burst. Most people won't need to
              change from the default 64k. Applies to all mountpoints  -->
-        <burst-size>65536</burst-size>
+       <burst-size>1048576</burst-size>
     </limits>
 
     <authentication>
         <!-- Sources log in with username 'source' -->
         <source-password>source2parisson</source-password>
-        <!-- Relays log in username 'relay' -->
-        <relay-password>hackme</relay-password>
+        <!-- Relays log in with username 'relay' -->
+        <relay-password>relay2parisson</relay-password>
 
         <!-- Admin logs in with the username given below -->
         <admin-user>admin</admin-user>
-        <admin-password>hackme</admin-password>
+        <admin-password>admin2parisson</admin-password>
     </authentication>
 
     <!-- set the mountpoint for a shoutcast source to use, the default if not
         <yp-url-timeout>15</yp-url-timeout>
         <yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url>
     </directory>
-     -->
+    -->
 
     <!-- This is the hostname other people will use to connect to your server.
-    It affects mainly the urls generated by Icecast for playlists and yp
-    listings. -->
-    <hostname>127.0.0.1</hostname>
+         It affects mainly the urls generated by Icecast for playlists and yp
+         listings. You MUST configure it properly for YP listings to work!
+    -->
+    <hostname>localhost</hostname>
 
-    <!-- You may have multiple <listener> elements -->
+    <!-- You may have multiple <listen-socket> elements -->
     <listen-socket>
         <port>8000</port>
         <!-- <bind-address>127.0.0.1</bind-address> -->
     </listen-socket>
     <!--
     <listen-socket>
-        <port>8001</port>
+        <port>8080</port>
+    </listen-socket>
+    -->
+    <!--
+    <listen-socket>
+        <port>8443</port>
+        <ssl>1</ssl>
     </listen-socket>
     -->
 
+
+    <!-- Global header settings 
+         Headers defined here will be returned for every HTTP request to Icecast.
+
+         The ACAO header makes Icecast public content/API by default
+         This will make streams easier embeddable (some HTML5 functionality needs it).
+         Also it allows direct access to e.g. /status-json.xsl from other sites.
+         If you don't want this, comment out the following line or read up on CORS. 
+    -->
+    <http-headers>
+        <header name="Access-Control-Allow-Origin" value="*" />
+    </http-headers>
+
+
+    <!-- Relaying
+         You don't need this if you only have one server.
+         Please refer to the documentation for a detailed explanation.
+    -->
     <!--<master-server>127.0.0.1</master-server>-->
     <!--<master-server-port>8001</master-server-port>-->
     <!--<master-update-interval>120</master-update-interval>-->
     <!--
     <relay>
         <server>127.0.0.1</server>
-        <port>8001</port>
+        <port>8080</port>
         <mount>/example.ogg</mount>
         <local-mount>/different.ogg</local-mount>
         <on-demand>0</on-demand>
     </relay>
     -->
 
-    <!-- Only define a <mount> section if you want to use advanced options,
+
+    <!-- Mountpoints
+         Only define <mount> sections if you want to use advanced options,
          like alternative usernames or passwords
-    <mount>
+    -->
+
+    <!-- Default settings for all mounts that don't have a specific <mount type="normal">.
+    -->
+    <!-- 
+    <mount type="default">
+        <public>0</public>
+        <intro>/server-wide-intro.ogg</intro>
+        <max-listener-duration>3600</max-listener-duration>
+        <authentication type="url">
+                <option name="mount_add" value="http://auth.example.org/stream_start.php"/>
+        </authentication>
+        <http-headers>
+                <header name="foo" value="bar" />
+        </http-headers>
+    </mount>
+    -->
+
+    <!-- Normal mounts -->
+    <!--
+    <mount type="normal">
         <mount-name>/example-complex.ogg</mount-name>
 
         <username>othersource</username>
         <fallback-when-full>1</fallback-when-full>
         <intro>/example_intro.ogg</intro>
         <hidden>1</hidden>
-        <no-yp>1</no-yp>
+        <public>1</public>
         <authentication type="htpasswd">
                 <option name="filename" value="myauth"/>
                 <option name="allow_duplicate_users" value="0"/>
         </authentication>
+        <http-headers>
+                <header name="Access-Control-Allow-Origin" value="http://webplayer.example.org" />
+                <header name="baz" value="quux" />
+        </http-headers>
         <on-connect>/home/icecast/bin/stream-start</on-connect>
         <on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
     </mount>
+    -->
 
-    <mount>
+    <!--
+    <mount type="normal">
         <mount-name>/auth_example.ogg</mount-name>
         <authentication type="url">
             <option name="mount_add"       value="http://myauthserver.net/notify_mount.php"/>
             <option name="mount_remove"    value="http://myauthserver.net/notify_mount.php"/>
             <option name="listener_add"    value="http://myauthserver.net/notify_listener.php"/>
             <option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
+            <option name="headers"         value="x-pragma,x-token"/>
+            <option name="header_prefix"   value="ClientHeader."/>
         </authentication>
     </mount>
-
     -->
 
     <fileserve>1</fileserve>
 
     <paths>
-               <!-- basedir is only used if chroot is enabled -->
+        <!-- basedir is only used if chroot is enabled -->
         <basedir>/usr/share/icecast2</basedir>
 
         <!-- Note that if <chroot> is turned on below, these paths must both
              and "bind-address" attributes.
           -->
         <!--
-        <alias source="/foo" dest="/bar"/>
-          -->
+        <alias source="/foo" destination="/bar"/>
+        -->
         <!-- Aliases: can also be used for simple redirections as well,
              this example will redirect all requests for http://server:port/ to
              the status page
-          -->
-        <alias source="/" dest="/status.xsl"/>
+        -->
+        <alias source="/" destination="/status.xsl"/>
+        <!-- The certificate file needs to contain both public and private part.
+             Both should be PEM encoded.
+        <ssl-certificate>/usr/share/icecast2/icecast.pem</ssl-certificate>
+        -->
     </paths>
 
     <logging>
         <accesslog>access.log</accesslog>
         <errorlog>error.log</errorlog>
         <!-- <playlistlog>playlist.log</playlistlog> -->
-       <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
-       <logsize>10000</logsize> <!-- Max size of a logfile -->
+        <loglevel>3</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
+        <logsize>10000</logsize> <!-- Max size of a logfile -->
         <!-- If logarchive is enabled (1), then when logsize is reached
              the logfile will be moved to [error|access|playlist].log.DATESTAMP,
              otherwise it will be moved to [error|access|playlist].log.old.