Icône de Jamulus. Redirige vers la page d'accueil du Wiki.
Premier pasr

Installation d’un serveur sous Linux

Veuillez d’abord vous assurez d’avoir lu la vue générale d’un serveur

Exécuter un serveur avec IUG

Si vous prévoyez d’exécuter le serveur sur votre poste de travail (et que vous avez déjà installé le client Jamulus), vous pouvez exécuter le serveur dans le mode serveur choisi en exécutant Jamulus avec l’option -s comme suit :

  1. Ouvrir une fenêtre de terminal (CTRL+ALT+t sur Ubuntu et distributions associées).
  2. Partant du principe que Jamulus est dans /usr/local/bin, taper Jamulus -s

Appuyez sur entrée et vous devriez voir la fenêtre de contrôle du serveur. Vous pouvez arrêter le serveur en fermant la fenêtre du serveur, ou en tapant CTRL+C dans le terminal.

Pour configurer le serveur, veuillez vous référer aux instructions pour Windows et Macintosh.

Voir aussi les options en ligne de commande pour les autres paramètres que vous pouvez configurer.

Exécuter un serveur sans IUG

Le guide suivant permet d’utiliser Jamulus comme un serveur “pur” sur du matériel sans audio (par exemple sur un hôte tiers ou dans le nuage) et suppose des distributions Ubuntu/Debian utilisant systemd. Nous avons également des instructions pour Raspberry Pi, qui est aussi très bien.

Compilation des sources, création d’un utilisateur

  1. Téléchargez les sources, installez les paquets dépendants comme indiqué dans le guide d’installation du client Linux. À noter que vous n’avez pas besoin d’installer le(s) paquet(s) JACK pour un serveur sans IUG. Si vous prévoyez d’éxecuter un serveur sans IUG sous Gentoo, ou que vous compilez sous Ubuntu pour une utilisation sur une autre machine Ubuntu, voir les notes de bas de page.
  2. Compilez les sources en ignorant la bibliothèque audio JACK :
qmake "CONFIG+=nosound headless" Jamulus.pro
make clean
make
  1. Déplacez le fichier binaire Jamulus résultant vers un emplacement permanent, ou utilisez la commande sudo make install. Vous pouvez désormais retirer le répertoire des sources si vous le désirez.
     
    Le reste de ce guide suppose que vous utilisez /usr/local/bin/Jamulus.

  2. Créez un utilisateur système sans privilège pour le fonctionnement du serveur (il s’exécutera en tant qu’utilisateur jamulus, groupe nogroup.) :

sudo adduser --system --no-create-home jamulus

Création d’un script de démarrage

Après avoir décidé dans quel mode vous souhaitez faire fonctionner votre serveur, utilisez systemd pour le démarrer.

Créez un fichier d’unité systemd qui lancera le serveur au moment du démarrage (merci à David Harrold (en anglais) pour cela).

Le fichier d’unité applique une priorité élevée au processeur et à l’ordonnancement des E/S au traitement du serveur. Ceci est optionnel (et peut être ignoré sur certains hôtes).

Notez aussi que les entrées de journalisation du serveur iront dans journalctl (utilisez journald (en anglais) pour les consulter).

Note : le reste de ce guide suppose que vous êtes en mode “public” en utilisant l’option -e (--centralserver). Ceci précise dans quelle liste de genres musicaux votre serveur apparaîtra. Voir la liste des genres disponibles ici).

[Unit]
Description=Jamulus-Server
After=network.target

[Service]
Type=simple
User=jamulus
Group=nogroup
NoNewPrivileges=true
ProtectSystem=true
ProtectHome=true
Nice=-20
IOSchedulingClass=realtime
IOSchedulingPriority=0

#### Change this to set genre, location and other parameters.
#### See [Command-Line-Options](Command-Line-Options) ####
ExecStart=/usr/local/bin/Jamulus -s -n -e jamulus.fischvolk.de -o "yourServerName;yourCity;[country ID]"

Restart=on-failure
RestartSec=30
StandardOutput=journal
StandardError=inherit
SyslogIdentifier=jamulus

[Install]
WantedBy=multi-user.target

Copier le fichier d’unité dans /etc/systemd/system et donnez lui les permissions :

sudo cp jamulus.service /etc/systemd/system/jamulus.service

sudo chmod 644 /etc/systemd/system/jamulus.service

Testez que ça démarre bien :

sudo systemctl start jamulus

sudo systemctl status jamulus

Vous devriez voir quelque chose comme ceci :

● jamulus.service
   Loaded: loaded (/lib/systemd/system/jamulus.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-03-26 11:52:34 GMT; 4s ago
 Main PID: 1308 (Jamulus)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/jamulus.service
           └─1308 /usr/local/bin/Jamulus -s -n -e jamulus.fischvolk.de -o yourServerName;yourCity;[country ID]

Mar 26 11:52:34 oddjob systemd[1]: Started jamulus.service.
Mar 26 11:52:35 oddjob jamulus[1308]: - server mode chosen
Mar 26 11:52:35 oddjob jamulus[1308]: - no GUI mode chosen
Mar 26 11:52:35 oddjob jamulus[1308]: - central server: jamulus.fischvolk.de
Mar 26 11:52:35 oddjob jamulus[1308]: - server info: yourServerName;yourCity;[country ID]
Mar 26 11:52:35 oddjob jamulus[1308]: - welcome message: Thanks for connecting!
Mar 26 11:52:35 oddjob jamulus[1308]:  *** Jamulus, Version [version]
Mar 26 11:52:35 oddjob jamulus[1308]:  *** Internet Jam Session Software
Mar 26 11:52:35 oddjob jamulus[1308]:  *** Under the GNU General Public License (GPL)

Si tout va bien, activez le service de lancement au démarrage avec :

sudo systemctl enable jamulus

Vous pouvez aussi contrôler Jamulus avec la commande service. Par exemple :

sudo service jamulus status

qui indique si Jamulus fonctionne bien, et affiche les quelques dernières lignes du journal (où vous verrez les connexions actives). Note : pressez q pour quitter le statut de service.

Mettre à jour votre installation vers une nouvelle version

Téléchargez les nouvelles sources comme indiqué dans les instructions ci-dessus et répétez la compilation à l’étape 2 comme pour une nouvelle installation. Arrêtez le serveur, copiez le fichier binaire Jamulus en écrasant l’ancien, et redémarrez le serveur.


Voir aussi les options en ligne de commande pour les autres paramètres que vous pouvez configurer.

Notes de bas de page

Contrôler les enregistrements

Lorsque vous utilisez la fonction d’enregistrement avec l’option en ligne de commande-R, si le serveur reçoit un signal SIGUSR1 pendant un enregistrement, il commencera un nouvel enregistrement dans un nouveau répertoire. SIGUSR2 activera/désactivera l’enregistrement.

Pour envoyer ces signaux en utilisant systemd, créez les deux fichiers .service suivants dans /etc/systemd/system, en les appelant par un nom approprié (par exemple nouvelEnregistrement-Jamulus-server.service).

Pour activer ou désactiver l’enregistrement (en fonction de l’état courant) :

[Unit]
Description=Toggle recording state of Jamulus server
Requisite=Jamulus-Server

[Service]
Type=oneshot
ExecStart=/bin/systemctl kill -s SIGUSR2 Jamulus-Server

Pour démarrer un nouvel enregistrement :

[Unit]
Description=Start a new recording on Jamulus server
Requisite=Jamulus-Server

[Service]
Type=oneshot
ExecStart=/bin/systemctl kill -s SIGUSR1 Jamulus-Server

Note : le nom du service Jamulus dans la ligne ExecStart doit être le même que le nom du fichier .service que vous avez créé lors de la configuration de systemd pour contrôler votre serveur Jamulus. Ainsi dans cet exemple, ça serait Jamulus-Server.service.

Exécutez sudo systemctl daemon-reload pour les sauvegarder pour la première utilisation.

Vous pouvez maintenant les exécuter avec la commande service start, par exemple :

sudo service jamulusTogglerec start (en supposant que vous ayez nommé votre fichier d’unité jamulusTogglerec.service)

Vous pouvez voir le résultat de ces commandes di vous lancez service jamulus status, ou en consultant les journaux.

Consulter les journaux

Jamulus journalisera dans le fichier du système si vous avez laissé le paramètre StandardOutput=journal dans le fichier d’unité. Il est recommandé de se connecter au journal du système, car le système gère le fichier journal pour vous, sans avoir à revenir pour le purger plus tard ou à vous soucier du remplissement de votre disque.

Pour lire le journal, utilisez journalctl (pressez Ctrl-C pour quitter). Par exemple, pour lire le fichier de journalisation du système, filtré sur le service Jamulus :

journalctl -u jamulus

Pour les entrées du jour :

journalctl -u jamulus

Pour la dernière heure :

journalctl -u jamulus --since "1 hour ago"

Filtrez le journal pour voir les messages de connexion de votre serveur Jamulus :

journalctl -u jamulus | grep connected

Suivre (affichez à l’écran) les messages du journal Jamulus en temps réel :

journalctl -f -u jamulus

Que fait le drapeau de compilation « headless » ?

Bien que cela ne soit pas strictement nécessaire, nous recommandons d’utiliser le drapeau headless pour accélérer le processus de construction. Les utilisateurs de Gentoo devraient également éviter d’installer certaines dépendances en conséquence. Plus d’informations ici.

Été 2020 ! Parlez nous de Jamulus - répondez à notre sondage anonyme ! (en anglais)

Cette documentation est sous licence Creative Commons. Voulez-vous contribuer ?