Ludzie lubią telefony, telefony nie lubią Shoutcasta 1. Ja lubię Shoutcasta1, nie lubię telefonów ale lubię niektórych ludzi, którzy lubią jednak telefony.
Co teraz?
Stwierdziłem, że dla webowego streamingu drobnej skromnej niepozornej takiej tam pewnej rzeczy warto by uruchomić jednak tego Icecasta. Ale dosyłka na moim domowym łączu jako kolejny strumyk tegoż wynalazku to kolejne niezbyt potrzebne jej obciążenie. Dlatego stwierdziłem, a, pykniemy sobie relaya.
Dopisałem najpierw do configa zdefiniowany relay i mountpoint, który miał uruchamiać się na konkretnym porcie.
Co z tego, jak widoczny był na całym Icecaście?
Pogadałem ze znajomymi i dostałem info że nie da siętak zrobić. No to jak nie łopatą, to kilofem, albo w ostateczności siekierą czy młotkiem.
Naprowadzeniem był fakt, że jednak jest to do zrobienia. Potrzeba tylko mieć dwa Icecasty. Ale jak?
Icecast po poprawnej instalacji uruchamia się jako usługa systemowa, którą możemy zarządzać przez systemctl.
Można go jednak odpalić z palca aczkolwiek nie pozwala się włączyć z Roota, to też potrzebny nam będzie inny użytkownik.
Stworzyłem osobny plik konfiguracyjny przeznaczony tylko dla wyznaczonego przeze mnie celu restreamu na konkretnym porcie i uruchomiłem to z palca ale nadal był problem. W domyśle Icecast zapisuje logi w lokalizacji
/var/log/icecast2
do której z poziomu mojego osobnego użytkownika w domyśle nie miał dostępu.
Ponoć możemy nadać mu ten dostęp przez Chown, ale po co? Mam 2 radiowe serwery, to niech zapisują mi logi osobno. Będzie przynajmniej wiadomo co do czego się odnosi.
W configu linijkę
/var/log/icecast2
zmieniłem na
/home/nazwauzytkownika/icecastlog
A teraz przejdźmy do uruchomienia i poradnika właściwego.
Tworzymy sobie użytkownika np krowa
adduser krowa
Następnie odpalamy nano lub kopiujemy przez ftp plik icecast.xml na swój komputer.
Znajdziecie go w
/etc/icecast2/icecast.xml
Edytujemy wedle własnego uznania.
Teraz wystarczy zmienić mu nazwę i wrzucić do katalogu. Tego samego, bo użytkownicy mają dostęp do /etc.
Teraz przechodzimy do /usr/bin/
cd /usr/bin
Tam znajdziemy plik icecast2.
Do odpalenia serwera z przysłowiowej kociej łapy wystarczy już tylko wpisanie:
./icecast2 -c /etc/icecast2/naszadrugainstancja.xml
Ale serwer sam nie wstanie bez naszej pomocy. W tej sytuacji przyda się utworzenie drugiej usługi.
Aby tego dokonać, należy utworzyć odpowiedni plik. Do tego celu wykorzystamy wbudowany w Linuxa edytor Nano.
sudo nano /etc/systemd/system/icecastalt.service
Alt, abyśmy wiedzieli, który to icecast.
Następnie wklejamy poniższe dostosowując oczywiście linijki do swojej konfiguracji serwera:
[Unit]
Description=Icecast Streaming Media Server alternative service
After=network.target
[Service]
Type=simple
User=krowa
Group=krowa
ExecStart=/usr/bin/icecast2 -c /etc/icecast2/naszadrugainstancja.xml
[Install]
WantedBy=multi-user.target
Drobne objaśnienie:
Czym jest description tłumaczyć raczej nie trzeba.
User=krowa
Tutaj podajemy nazwę użytkownika, na którym ma uruchamiać się nasza usługa.
Group=krowa
Grupa, do której przynależy nasz użytkownik.
ExecStart=/usr/bin/icecast2 -c /etc/icecast2/naszadrugainstancja.xml
Lokalizacja pliku wykonywalnego oraz pliku konfiguracyjnego drugiej instancji Icecasta.
Naciskamy CTRL+X aby zapisać plik. Potwierdzamy enterem i…
Teraz wystarczy tylko przeładować daemona
systemctl daemon-reload
I uruchomić usługę
systemctl start icecastalt
systemctl enable icecastalt
I gotowe!
Możemy dublować sobie setki Icecastów na dowolnych portach i nic nie będzie ze sobą kolidowało.
A jak zrobić relay? O tym już mówi oficjalna dokumentacja, tak więc nie będę dublować bytów.
Mam nadzieję, że komuś się to przyda, a i oszczędzi nerwów i przeklinaniana czym tylko świat stoi.