Jamulus benötigt ein Serverprogramm, das auf einem eigenen Rechner (Server) läuft, an dem sich alle Sängerinnen und Sänger anmelden. Es gibt öffentliche Server, die man zwar nutzen kann, doch ist nicht garantiert, dass diese zur gewünschten Zeit auch frei sind. Zudem kann jeder zuhören, wenn man probt. Daher kommt man als Chor eigentlich nicht darum herum, auf einen eigenen Server zu gehen.

Der Anbieter Melomax betreibt Jamulus-Server, die man stundenweise mieten kann. Die Qualität war bei einem Test recht gut; preislich muss man für sich selbst entscheiden, ob auf Dauer nicht eine eigene Serverinstallation günstiger ist.

Mittlerweile bieten auch einige Kirchen und Chorverbände Jamulus für Ihre Mitglieder an, so zum Beispiel das Erzbistum Köln und der Badische Chorverband.

Die Installation eines eigenen Servers ist nicht schwer; mit Grundkenntnissen in Linux ist sie mithilfe der Anleitung im Jamulus-Wiki in wenigen Minuten erledigt. Um die Latenz so kurz wie möglich zu halten, sollte der Server in einem gut angebundenen Rechenzentrum stehen. Man kann theoretisch auch zu Hause einen Server betreiben, dies ist aber kniffliger, da man dazu einen speziellen Internetanschluss braucht (mit IP v4) und seinen Router entsprechend konfigurieren muss; außerdem muss der Anschluss genug Bandbreite in beiden Richtungen haben, wenn man mit mehr als nur einer Handvoll Personen proben will. Wir haben uns daher entschieden, einen virtuellen Server bei einem Hosting-Anbieter zu mieten. (In unserem Fall ist das Ionos von 1und1, da dort auch schon unsere Homepage liegt. Es gibt aber dutzende Anbieter, die dafür geeignete Tarife anbieten.) Mit einem monatlich kündbaren Tarif zahlen wir 10 €/Monat. Wir hatten früher mit einem »Cloud-Tarif« experimentiert, der sich aber für uns nicht lohnt, da man den Server dann in der nicht genutzen Zeit komplett löschen müsste, was zuviel Aufwand wäre für die paar Euro, die das sparen würde.

Wir haben für einen Server mit zwei Rechenkernen gebucht. (Festplatten- und RAM-Größe sind für den reinen Serverbetrieb vernachlässigbar. Für serverseitige Mitschnitte braucht man allerdings viel Festplattenplatz.) Darauf läuft Ubuntu 20 mit dem Low-Latency-Kernel. Bei einer Probe mit 20 gleichzeitigen Teilnehmern war er zu ca. 60 % ausgelastet. Generell hängt die Anzahl benötigter Prozessorkerne vor allem von der Anzahl der gleichzeitigen Benutzer und den verwendeten Parametern ab (Mono oder Stereo, Puffergröße, »Fast Updates«), und natürlich auch von der individuellen Leistung eines Prozessorkerns. Als Faustregel kann man 8–15 Benutzer pro Kern annehmen; auf der GitHub-Seite von Jamulus gibt es dazu eine interessante Diskussion.

Wir starten das Serverprogramm mit folgenden Parametern:

jamulus-headless -s -F -T -p 22124 -u 50

Die Parameter bedeuten:

-s -n
Jamulus als Serverprogramm ohne Benutzerfenster starten.
-F
»Fast Updates«: Setzt die Frame-Größe auf 64 Samples. Hierdurch wird die Latenz weiter verringert, wenn auch die Teilnehmer im Anwendungsprogramm einen Puffer von 64 Samples eingestellt haben. Dies benötigt mehr CPU und Bandbreite, funktioniert aber mit unserem Server ganz gut (s.o.). Mit deutlich mehr als 20 Teilnehmern müsste man mehr Rechenkerne dazubuchen oder diese Option deaktivieren.
-T
Multithreading: Wird benötigt, um von mehreren Rechenkernen zu profitieren
-p 22124
Portnummer. Wir verwenden dies, um mehrere Jamulus-Serverprogramme gleichzeitig laufen zu lassen, um mit unterschiedlichen Gruppen parallel Stimmproben zu machen. Die anderen gestarteten Programme bekommen dann die Ports 22125, 22126 usw. Die Sänger verbinden sich dann z.B. über server.meinchor.de:22125

-u 50
Maximalzahl gleichzeitiger Benutzer, Standard ist 10. Einstellbar sind bis zu 150.

Um den Server einfacher erreichbar zu machen, haben wir ihm eine lesbare Adresse (wie z.B. server.meinchor.de) gegeben. Dabei muss man beachten, dass Jamulus derzeit nur IPv4 unterstützt. (Unterstützung für IPv6 ist in Arbeit.) Der DNS-Eintrag darf daher nur einen A-Record enthalten und keinen AAAA-Record, sonst schlägt der Verbindungsaufbau in Jamulus fehl.