Streaming Service with Icecast: Difference between revisions
Jump to navigation
Jump to search
| Line 23: | Line 23: | ||
=== Basic Configuration === | === Basic Configuration === | ||
Simple setup with <code>icecast</code> changing process ownership to <code>nobody:nogroup</code> and running in a <code>chroot</code>. | |||
<code>/usr/local/etc/icecast.xml</code>: | |||
=== Service file and autostart (systemd) === | === Service file and autostart (systemd) === | ||
Revision as of 22:20, 16 December 2019
Note: we will be using the icecast-kh fork that contains some extra stuff (FIXME: unpack stuff).
Installation
Software
Note: At time of writing, icecast-kh suffers from a small compilation problem with OpenSSL.
- Install dependencies (Debian)
apt install libxslt1-dev libogg-dev libvorbis-dev libtheora-dev libcurl4-openssl-dev
- Get the sources
cd /usr/src git clone https://github.com/karlheyes/icecast-kh
- Compile and install
cd icecast-kh ./configure --with-openssl make make install
Firewall
- Make sure you listen on 8000, adjust your
iptables:
-A INPUT -p tcp -m tcp --dport 8000 -j ACCEPT
You can adjust to your liking, 8000 is the default for Icecast.
Basic Configuration
Simple setup with icecast changing process ownership to nobody:nogroup and running in a chroot.
/usr/local/etc/icecast.xml:
Service file and autostart (systemd)
- Create a
systemdservice file:
[Unit] Description=Icecast After=network.target [Service] Type=simple ExecStart=/usr/local/bin/icecast -c /usr/local/etc/icecast.xml ExecReload=/usr/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
- Enable the service on boot:
systemctl enable icecast
- Manage the service with
service icecast start service icecast status service icecast stop