ShoutCast est un serveur de streaming radio propriétaire ne gérant que le format sonore MP3. Il a un équivalent libre, Icecast, cependant ce dernier ne peut pas publier ses flux dans le répertoire des radios de shoutcast qui est énormément consulté.
Après connexion au serveur, on procède à l’installation de shoutcast.
Récupération et configuration du logiciel
Dans un premier temps, on récupère la dernière version disponible sur le site officiel :
- # On va dans notre home
- cd ~
- # On crée le répertoire shoutcast
- mkdir shoutcast
- # On rentre dans le répertoire shoutcast
- cd shoutcast
- # On y récupère l'archive du serveur
- wget http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64-latest.tar.gz
- # Décompression de l'archive
- tar xvzf sc_serv2_linux_x64-latest.tar.gz
Le binaire du serveur est le fichier sc_serv
. Il est nécessaire de créer un fichier de configuration sc_serv.conf
avant son utilisation, quatre fichiers d’exemples sont fournis dans la distribution :
-
sc_serv_basic.conf
; -
sc_serv_debug.conf
; -
sc_serv_public.conf
; -
sc_serv_relay.conf
;
- nano sc_serv.conf
Ce fichier doit ressembler à quelque chose comme cela [1] :
- ; NOTE: for any relative paths specified are relative to
- ; sc_serv and not to where the conf file is being stored
- log=1
- ; here we will setup where the log and other related files
- ; will be stored. make sure that these folders exist else
- ; sc_serv will throw an error and will close itself down.
- logfile=/var/log/shoutcast/sc_serv.log
- ; we will make the logs save to the sc_serv2 directory
- banfile=/etc/shoutcast/sc_serv.ban
- ripfile=/etc/shoutcast/sc_serv.rip
- pidfile=/var/run/shoutcast/shoutcast.pid
- screenlog=1
- w3cenable=1
- w3clog=/var/log/shoutcast/sc_w3c.log
- shoutcastsourcedebug=1
- SrcIP=ANY
- DestIP=ANY
- ; for testing we will make the server only work locally
- ; (i.e. localhost / 127.0.0.1) though if this is left out
- ; or set to publicserver=always then we attempt to make a
- ; connection to the YP for listing - do not forget to add
- ; in a 'streamauthhash' value for any public streams made
- publicserver=allways
- ; if you want to use a different port to use for any
- ; connections then you can use this option e.g. to use 80
- ; otherwise port 8000 is used as the default to listen on.
- portbase=8002
- ; password used by sc_trans or the Winamp dsp plug-in
- ; NOTE: remember to change this to something else
- password=pass_stream
- ; password used for accessing the administation pages
- ; NOTE: remember to change this to something else
- ; NOTE: this password should be different than the previous "password" directive
- adminpassword=password_admin
- maxuser=200
- ; now we will specify the details of the stream we are going
- ; to serve which can be done as follows
- ;streamid=1
- ;streampath=/point_de_montage
- ;streamauthhash=hash_fournit_par_shoutcast
- ; or
- ; it can be done like this which is how it needs to be done
- ; if you are going to provide multiple streams from sc_serv
- streamid_1=1
- streampath_1=/point_de_montage_stream_1
- streamauthhash_1=hash_fournit_par_shoutcast_stream_1
- ;streamid_2=2
- ;streampath_2=/test2.aac
Point d’attention du fichier de configuration :
-
password
etadminpassword
- la ligne
pidfile=/var/run/shoutcast/shoutcast.pid
est bien renseigné - les répertoires pour le fichier pid et pour les fichiers de logs existent bien et shoutcast peut écrire à l’intérieur (voir plus bas dans l’installation définitive)
Installation définitive
Pour finir l’installation, on va copier le binaire du serveur dans le répertoire des autres binaires en lui donnant les droits d’exécution :
- chmod +x sc_serv
- sudo cp sc_serv /usr/local/bin/sc_serv
- sudo cp cacert.pem /usr/local/bin/
On crée ensuite un utilisateur système qui fera tourner le serveur :
- sudo adduser shoutcast
On déplace également le fichier de configuration dans un endroit plus habituel et on donne les droits à notre utilisateur de l’utiliser :
- sudo mkdir /etc/shoutcast
- sudo cp sc_serv.conf /etc/shoutcast
- sudo chown -Rvf shoutcast:shoutcast /etc/shoutcast
On crée ensuite le répertoire où shoutcast stockera son fichier pid (bien vérifier que la ligne pidfile=/var/run/shoutcast/shoutcast.pid
soit dans le fichier de configuration) :
- sudo mkdir -p /var/run/shoutcast
- sudo chown shoutcast:shoutcast /var/run/shoutcast
Enfin, on va créer le répertoire où les logs du serveurs seront déposés et donner les droits d’écriture sur ce dossier à l’utilisateur qui fera tourner le serveur shoutcast :
- sudo mkdir -p /var/log/shoutcast
- sudo chown shoutcast:shoutcast /var/log/shoutcast
Création d’un script d’initialisation
On ouvre un fichier en écriture :
- nano shoutcast.init
On y ajoute le contenu suivant :
- #!/bin/bash
- ### BEGIN INIT INFO
- # Provides: shoutcast
- # Required-Start: $syslog $network
- # Required-Stop: $syslog $network
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # X-Interactive: true
- # Short-Description: Shoutcast - Radio streaming server
- # Description: Shoutcast provide a radio streaming server.
- ### END INIT INFO
- # Source function library.
- . /lib/lsb/init-functions
- NAME=shoutcast
- DESC="Shoutcast radio streaming server"
- DAEMON=/usr/local/bin/sc_serv
- CONF_FILE=/etc/shoutcast/sc_serv.conf
- # Pid file
- PIDFILE="/var/run/$NAME.pid"
- USER=shoutcast
- GROUP=shoutcast
- [ "$NETWORKING" = "no" ] && exit 0
- [ -f "$DAEMON" ] || exit 1
- [ -f "$CONF_FILE" ] || exit 1
- RETVAL=0
- start() {
- echo -n "Starting $DESC: "
- start-stop-daemon --start --background --quiet --make-pidfile --pidfile $PIDFILE \
- --chuid $USER:$GROUP --user $USER --group $GROUP --name sc_serv \
- --exec $DAEMON $CONF_FILE
- echo "$NAME."
- }
- stop() {
- echo -n "Stopping $DESC : "
- start-stop-daemon --stop --quiet --pidfile $PIDFILE \
- --oknodo
- echo "$NAME."
- }
- restart() {
- stop
- sleep 5
- start
- }
- status() {
- PID=$(cat $PIDFILE)
- if [ -n "$PID" ]; then
- log_success_msg "$DESC is running (pid $PID)."
- exit 0
- else
- log_failure_msg "$DESC is not running."
- exit 1
- fi
- }
- case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- restart|reload)
- restart
- ;;
- *)
- echo "Usage: {start|stop|status|restart}"
- RETVAL=1
- esac
- exit $RETVAL
Pour activer le script d’initialisation, il est ensuite nécessaire de le copier au bon endroit, de lui donner des droits d’exécution et de l’activer aux différentes étapes de lancement et de d’extinction du serveur en lançant les trois commandes suivantes :
- sudo cp shoutcast.init /etc/init.d/shoutcast
- sudo chmod +x /etc/init.d/shoutcast
- sudo update-rc.d shoutcast defaults
Démarrer, arrêter, redémarrer le serveur
Pour démarrer le serveur, il vous suffit donc de lancer la commande :
- sudo /etc/init.d/shoutcast start
Pour l’arrêter :
- sudo /etc/init.d/shoutcast stop
Et pour le redémarrer :
- sudo /etc/init.d/shoutcast restart
Interface d’administration
Vous devriez avoir accès dorénavant à l’interface web d’administration à l’adresse : http://domaine.tld:8002/index.html
Pour la connexion administrateur, il suffit d’utiliser le nom d’utilisateur admin
et le mot de passe que vous avez mis dans la configuration à la ligne adminpassword
.