Install Radio Server denga icecast

Assalamu’alaikum Wr Wb,

Oke…kali ini, penulis ingin membahas bagaimana install radio server dengan icecast di FreeBSD. Penulis anggap pembaca sudah dapat menginstall webserver seperti pembahasan sebelumnya dan juga sudah dapat menginstall radio streaming dengan darkice seperti pembahasan sebelumnya juga🙂, jadi penulis tidak perlu membahasnya lagi…Is it right ?

Oke…ini cara install yang penulis suguhkan, adalah cara install yg diminati banyak orang, tapi tidak diminati pecinta BSD sesungguhnya ( katanya sech ), yaitu install via ports😀

1. Masuk ke directory ports icecast

latihan# cd /usr/ports/audio/icecast2/

2. Install

latihan# make && make install

3. Copy configurasi icecast

latihan# cp /usr/local/etc/icecast.xml.sample /usr/local/etc/icecast.xml

4. Edit Configurasi icecast

latihan# ee /usr/local/etc/icecast.xml

Berikut isi icecast.xml secara lengkap

<icecast>
<limits>
<clients>100</clients>
<sources>2</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</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,
it also significantly increases latency between the source
client and listening client. For low-latency setups, you
might want to disable this. –>
<burst-on-connect>1</burst-on-connect>
<!– 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>65535</burst-size>
</limits>

<authentication>
<!– Sources log in with username ‘source’ –>
<source-password>hackme</source-password>
<!– Relays log in username ‘relay’ –>
<relay-password>hackme</relay-password>

<!– Admin logs in with the username given below –>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

<!– Uncomment this if you want directory listings –>
<!–
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://dir.xiph.org/cgi-bin/yp-cgi</yp-url&gt;
</directory>
<directory>
<yp-url-timeout>15</yp-url-timeout>
<yp-url>http://www.oddsock.org/cgi-bin/yp-cgi</yp-url&gt;
</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>localhost</hostname>

<!– You can use these two if you only want a single listener –>
<!–<port>8000</port> –>
<!–<bind-address>127.0.0.1</bind-address>–>

<!– You may have multiple <listener> elements –>
<listen-socket>
<port>8000</port>
<!– <bind-address>127.0.0.1</bind-address> –>
</listen-socket>
<!–
<listen-socket>
<port>8001</port>
</listen-socket>
–>

<!–<master-server>127.0.0.1</master-server>–>
<!–<master-server-port>8001</master-server-port>–>
<!–<master-update-interval>120</master-update-interval>–>
<!–<master-password>hackme</master-password>–>
<!– setting this makes all relays on-demand unless overridden, this is
useful for master relays which do not have <relay> definitions here.
The default is 0 –>
<!–<relays-on-demand>1</relays-on-demand>–>

<!–
<relay>
<server>127.0.0.1</server>
<port>8001</port>
<mount>/example.ogg</mount>
<local-mount>/different.ogg</local-mount>
<on-demand>0</on-demand>

<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>
–>

<!– Only define a <mount> section if you want to use advanced options,
like alternative usernames or passwords
<mount>
<mount-name>/example-complex.ogg</mount-name>

<username>othersource</username>
<password>hackmemore</password>

<max-listeners>1</max-listeners>
<dump-file>/tmp/dump-example1.ogg</dump-file>
<burst-size>65536</burst-size>
<fallback-mount>/example2.ogg</fallback-mount>
<fallback-override>1</fallback-override>
<fallback-when-full>1</fallback-when-full>
<intro>/example_intro.ogg</intro>
<hidden>1</hidden>
<no-yp>1</no-yp>
<authentication type=”htpasswd”>
<option name=”filename” value=”myauth”/>
<option name=”allow_duplicate_users” value=”0″/>
</authentication>
<on-connect>/home/icecast/bin/stream-start</on-connect>
<on-disconnect>/home/icecast/bin/stream-stop</on-disconnect>
</mount>

<mount>
<mount-name>/auth_example.ogg</mount-name>
<authentication type=”url”>
<option name=”mount_add” value=”http://myauthserver.net/notify_mount.php”/&gt;
<option name=”mount_remove” value=”http://myauthserver.net/notify_mount.php”/&gt;
<option name=”listener_add” value=”http://myauthserver.net/notify_listener.php”/&gt;
<option name=”listener_remove” value=”http://myauthserver.net/notify_listener.php”/&gt;
</authentication>
</mount>

–>

<fileserve>1</fileserve>

<!– set the mountpoint for a shoutcast source to use, the default if not
specified is /stream but you can change it here if an alternative is
wanted or an extension is required
<shoutcast-mount>/live.nsv</shoutcast-mount>
–>

<paths>
<!– basedir is only used if chroot is enabled –>
<basedir>/usr/local/share/icecast</basedir>

<!– Note that if <chroot> is turned on below, these paths must both
be relative to the new root, not the original root –>
<logdir>/usr/local/var/log/icecast</logdir>
<webroot>/usr/local/share/icecast/web</webroot>
<adminroot>/usr/local/share/icecast/admin</adminroot>
<!– <pidfile>/usr/local/share/icecast/icecast.pid</pidfile> –>

<!– Aliases: treat requests for ‘source’ path as being for ‘dest’ path
May be made specific to a port or bound address using the “port”
and “bind-address” attributes.
–>
<!–
<alias source=”/foo” dest=”/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”/>
</paths>

<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<!– <playlistlog>playlist.log</playlistlog> –>
<loglevel>4</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.
Default is non-archive mode (i.e. overwrite)
–>
<!– <logarchive>1</logarchive> –>
</logging>
<security>
<chroot>0</chroot>
<!–
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
–>
</security>
</icecast>

Yang perlu dirubah , antara lainsebagai berikut

<authentication>
<!– Sources log in with username ‘source’ –>
<source-password>hackme</source-password>
<!– Relays log in username ‘relay’ –>
<relay-password>hackme</relay-password>

<!– Admin logs in with the username given below –>
<admin-user>admin</admin-user>
<admin-password>hackme</admin-password>
</authentication>

<!– 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>localhost</hostname>

5. Jalankan icecastnya

latihan# /usr/local/bin/icecast -c /usr/local/etc/icecast.xml &
[1] 69282
latihan# ERROR: You should not run icecast2 as root
Use the changeowner directive in the config file

Ups…Error, tidak boleh dijalankan as root🙂

bisa 2 langkah, bisa dijalankan dengan user biasa, atau meruah sedikti setting di icecast.xlmlnya

<chroot>0</chroot>
<!–
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
–>
</security>
</icecast>

menjadi :

<security>
<chroot>0</chroot>
<changeowner>
<user>nobody</user>
<group>nogroup</group>
</changeowner>
</security>
</icecast>

Penulis coba jalankan lagi🙂, error lagi…!!

latihan# /usr/local/bin/icecast -c /usr/local/etc/icecast.xml &
[1] 69284
latihan# Changed groupid to 65533.
Changed userid to 65534.
FATAL: could not open error logging (/usr/local/var/log/icecast/error.log): No such file or directory
FATAL: could not open access logging (/usr/local/var/log/icecast/access.log): No such file or directory
FATAL: Could not start logging

Oke…tambahkan file error.log dan access.log spt permitnaan diatas…

latihan# touch error.log
latihan# touch access.log
latihan# chown -R nobody:nogroup access.log
latihan# chown -R nobody:nogroup error.log

latihan# /usr/local/bin/icecast -c /usr/local/etc/icecast.xml &
[1] 69333
latihan# Changed groupid to 65533.Changed userid to 65534.

Kalau hendak melihat Adminstraion pagenya icecast, langsung akses saja http://domain:8000 atau http://ipnya:8000

6. Finish dan selamat mencoba!

Leave a comment

No comments yet.

Comments RSS TrackBack Identifier URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s