Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Installation d’un serveur radio ShoutCast

Installation d’un serveur radio ShoutCast

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 :

  1. # On va dans notre home
  2. cd ~
  3. # On crée le répertoire shoutcast
  4. mkdir shoutcast
  5. # On rentre dans le répertoire shoutcast
  6. cd shoutcast
  7. # On y récupère l'archive du serveur
  8. wget http://download.nullsoft.com/shoutcast/tools/sc_serv2_linux_x64-latest.tar.gz
  9. # Décompression de l'archive
  10. tar xvzf sc_serv2_linux_x64-latest.tar.gz

Télécharger

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 ;
  1. nano sc_serv.conf

Ce fichier doit ressembler à quelque chose comme cela [1] :

  1. ; NOTE: for any relative paths specified are relative to
  2. ; sc_serv and not to where the conf file is being stored
  3.  
  4. log=1
  5.  
  6. ; here we will setup where the log and other related files
  7. ; will be stored. make sure that these folders exist else
  8. ; sc_serv will throw an error and will close itself down.
  9. logfile=/var/log/shoutcast/sc_serv.log
  10.  
  11. ; we will make the logs save to the sc_serv2 directory
  12. banfile=/etc/shoutcast/sc_serv.ban
  13. ripfile=/etc/shoutcast/sc_serv.rip
  14.  
  15. pidfile=/var/run/shoutcast/shoutcast.pid
  16.  
  17. screenlog=1
  18. w3cenable=1
  19. w3clog=/var/log/shoutcast/sc_w3c.log
  20. shoutcastsourcedebug=1
  21.  
  22. SrcIP=ANY
  23. DestIP=ANY
  24.  
  25. ; for testing we will make the server only work locally
  26. ; (i.e. localhost / 127.0.0.1) though if this is left out
  27. ; or set to publicserver=always then we attempt to make a
  28. ; connection to the YP for listing - do not forget to add
  29. ; in a 'streamauthhash' value for any public streams made
  30. publicserver=allways
  31.  
  32. ; if you want to use a different port to use for any
  33. ; connections then you can use this option e.g. to use 80
  34. ; otherwise port 8000 is used as the default to listen on.
  35. portbase=8002
  36.  
  37. ; password used by sc_trans or the Winamp dsp plug-in
  38. ; NOTE: remember to change this to something else
  39. password=pass_stream
  40.  
  41. ; password used for accessing the administation pages
  42. ; NOTE: remember to change this to something else
  43. ; NOTE: this password should be different than the previous "password" directive
  44. adminpassword=password_admin
  45. maxuser=200
  46.  
  47. ; now we will specify the details of the stream we are going
  48. ; to serve which can be done as follows
  49. ;streamid=1
  50. ;streampath=/point_de_montage
  51. ;streamauthhash=hash_fournit_par_shoutcast
  52.  
  53. ; or
  54.  
  55. ; it can be done like this which is how it needs to be done
  56. ; if you are going to provide multiple streams from sc_serv
  57. streamid_1=1
  58. streampath_1=/point_de_montage_stream_1
  59. streamauthhash_1=hash_fournit_par_shoutcast_stream_1
  60. ;streamid_2=2
  61. ;streampath_2=/test2.aac

Télécharger

Point d’attention du fichier de configuration :

  • password et adminpassword
  • 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 :

  1. chmod +x sc_serv
  2. sudo cp sc_serv /usr/local/bin/sc_serv
  3. sudo cp cacert.pem /usr/local/bin/

Télécharger

On crée ensuite un utilisateur système qui fera tourner le serveur :

  1. 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 :

  1. sudo mkdir /etc/shoutcast
  2. sudo cp sc_serv.conf /etc/shoutcast
  3. sudo chown -Rvf shoutcast:shoutcast /etc/shoutcast

Télécharger

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) :

  1. sudo mkdir -p /var/run/shoutcast
  2. sudo chown shoutcast:shoutcast /var/run/shoutcast

Télécharger

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 :

  1. sudo mkdir -p /var/log/shoutcast
  2. sudo chown shoutcast:shoutcast /var/log/shoutcast

Télécharger

Création d’un script d’initialisation

On ouvre un fichier en écriture :

  1. nano shoutcast.init

On y ajoute le contenu suivant :

  1. #!/bin/bash
  2. ### BEGIN INIT INFO
  3. # Provides: shoutcast
  4. # Required-Start: $syslog $network
  5. # Required-Stop: $syslog $network
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # X-Interactive: true
  9. # Short-Description: Shoutcast - Radio streaming server
  10. # Description: Shoutcast provide a radio streaming server.
  11. ### END INIT INFO
  12.  
  13. # Source function library.
  14. . /lib/lsb/init-functions
  15.  
  16. NAME=shoutcast
  17. DESC="Shoutcast radio streaming server"
  18. DAEMON=/usr/local/bin/sc_serv
  19. CONF_FILE=/etc/shoutcast/sc_serv.conf
  20.  
  21. # Pid file
  22. PIDFILE="/var/run/$NAME.pid"
  23.  
  24. USER=shoutcast
  25. GROUP=shoutcast
  26.  
  27. [ "$NETWORKING" = "no" ] && exit 0
  28. [ -f "$DAEMON" ] || exit 1
  29. [ -f "$CONF_FILE" ] || exit 1
  30.  
  31. RETVAL=0
  32.  
  33. start() {
  34. echo -n "Starting $DESC: "
  35. start-stop-daemon --start --background --quiet --make-pidfile --pidfile $PIDFILE \
  36. --chuid $USER:$GROUP --user $USER --group $GROUP --name sc_serv \
  37. --exec $DAEMON $CONF_FILE
  38. echo "$NAME."
  39. }
  40.  
  41. stop() {
  42. echo -n "Stopping $DESC : "
  43. start-stop-daemon --stop --quiet --pidfile $PIDFILE \
  44. --oknodo
  45. echo "$NAME."
  46. }
  47.  
  48. restart() {
  49. stop
  50. sleep 5
  51. start
  52. }
  53.  
  54. status() {
  55. PID=$(cat $PIDFILE)
  56. if [ -n "$PID" ]; then
  57. log_success_msg "$DESC is running (pid $PID)."
  58. exit 0
  59. else
  60. log_failure_msg "$DESC is not running."
  61. exit 1
  62. fi
  63. }
  64.  
  65. case "$1" in
  66. start)
  67. start
  68. ;;
  69. stop)
  70. stop
  71. ;;
  72. status)
  73. status
  74. ;;
  75. restart|reload)
  76. restart
  77. ;;
  78. *)
  79. echo "Usage: {start|stop|status|restart}"
  80. RETVAL=1
  81. esac
  82.  
  83. exit $RETVAL

Télécharger

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 :

  1. sudo cp shoutcast.init /etc/init.d/shoutcast
  2. sudo chmod +x /etc/init.d/shoutcast
  3. sudo update-rc.d shoutcast defaults

Télécharger

Démarrer, arrêter, redémarrer le serveur

Pour démarrer le serveur, il vous suffit donc de lancer la commande :

  1. sudo /etc/init.d/shoutcast start

Pour l’arrêter :

  1. sudo /etc/init.d/shoutcast stop

Et pour le redémarrer :

  1. 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.

Articles complémentaires

Notes

[1On décide de démarrer le serveur sur le port 8002 pour ne pas rentrer en conflit avec icecast sur le même serveur qui utilise le port 8000 comme la configuration par défaut de shoutcast

  • Auteur :
  • Publié le :
  • Mis à jour : 13/04/18

25 commentaires


Qui êtes-vous ?
  • [Se connecter]
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.