Jitsi Meet Server - dl0dx/clubstation GitHub Wiki
Wegen der Corona-Pandemie können zur Zeit (d.h. seit 2020-03-22) keine Clubtreffen in der Clubstation von R01 stattfinden. Als Ersatz wird deshalb zur gewohnten Zeit eine Videokonferenz mit Jitsi durchgeführt. Jitsi ist eine freie Videokonferenzsoftware, die direkt per Webbrowser genutzt werden kann. Auf meet.jit.si kann man Jitis ohne Anmeldung direkt ausprobieren und ein erster Test mit diesem Server verlief sehr erfolgreich.
Aus technischem Interesse wurde für das zweite Online-Clubtreffen testweise ein eigener Jitsi-Meet Server aufgesetzt. Vorteile eines eigenen Servers:
-
Keine Abhängigkeit von einem Gastzugang auf einem fremden Server.
-
Bessere Datenschutz.
-
Zusätzliche Features (z.B. Passwort geschützte Videokonferenzen).
-
Zugriff auf die Technik.
NixOS ist ein Betriebssystem auf Linux-Basis mit vielen interessanten Features. NixOS hiflt dabei, ein Linux-System reproduzierbar zu konfigurieren und zu installieren.
Der Jitsi-Server wurde mit AWS aufgesetzt. Die folgende Beschreibung konzentriert sich auf die Konfiguration des eigentlichen Servers mit NixOS und ist nicht AWS spezifisch.
Folgendes wird vorausgesetzt:
-
Der Server ist im Internet über eine öffentliche IP Adresse erreichbar. Bei AWS muss man außerdem die entsprechenden Ports für Jitsi in der (AWS)-Firewall öffnen.
-
Der Server hat einen DNS-Eintrag.
-
Auf dem Server ist NixOS-20.09 vorinstalliert. Bei AWS kann man z.B.
ami-01d4a0c2248cbfe38
verwenden. -
Ein Server mit 4GB RAM und ca. 10GB Festplatte und schneller Internetanbindung sollte genügen.
Achtung: Bei Amazon kostet 1GB ausgehende Daten ca 9 Cent. Zwei Stunden Videokonferenz mit ca 10 Teilnehmern erzeugen ca. 50GB Datenvolumen (4,50 Euro). Zum Testen wurde Jitsi-Meet ohne Zugangskontrolle oder Passwort betrieben. Man sollte den Server in dieser Konfiguration nicht "unbeaufsichtigt" laufen lassen ! Es können erhebliche Kosten entstehen.
Nachdem man einen entsprechenden Server (z.B. bei AWS) provisioniert hat, sind nur zwei Schritte erforderlich um Jitsi-Meet zu installieren:
-
Die Konfigurationsdatei anpassen.
-
Die Konfiguration bauen, starten und installieren.
In /etc/nixos/configuration.nix
wird der komplette Server mit allen
Diensten und der gesamten installierten Software konfiguriert.
Für AWS kann /etc/nixos/configuration.nix
z.B. so aussehen:
[root@ip-172-31-63-288:~]# cat /etc/nixos/configuration.nix
{ modulesPath, ... }: {
# AWS spezifischer Teil
imports = [ "${modulesPath}/virtualisation/amazon-image.nix" ];
ec2.hvm = true;
# Allgemeiner Teil (nicht AWS spezifisch)
services.jitsi-meet = {
enable = true;
config = {
enableWelcomePage = true;
defaultLang = "de";
noticeMessage = "Mein online meeting";
gatherStats = false;
disableThirdPartyRequests = true;
localRecording.enabled = false;
};
hostName = "meinhostname.meinedomain.de";
};
services.jitsi-videobridge = {
enable = true;
openFirewall = true;
};
networking = {
firewall.enable = true;
firewall.allowPing = true;
firewall.allowedTCPPorts = [ 80 443];
};
security.acme.email = "[email protected]";
security.acme.acceptTerms = true;
}
Je nachdem welche Dienste konfiguriert werden, kann die Konfiguration
beliebig umfangreich werden.
/etc/nixos/configuration.nix
kann auch weitere Unterkonfigurationen importieren.
Für AWS wird zum Beispiel <nixpkgs/nixos/modules/virtualisation/amazon-image.nix>
importiert,
andere Setups importieren /etc/nixos/hardware-configuration.nix
Falls z.B. ein Server von Hetzner oder ein lokaler Server verwendet werden soll,
muss die existierende Konfiguration in /etc/nixos/configuration.nix
angepasst werden.
Das heißt, die Einträge für services.jitsi-meet
und security.acme
hinzufügen
und die anderen Teile der Konfigurationsdatei erhalten.
TODO: Konkrete Hetzner-Config hinzufügen
Man installiert die Konfiguration mit:
[root@ip-172-31-63-288:~]# nixos-rebuild test
[root@ip-172-31-63-288:~]# nixos-rebuild switch
Dieser Schritt dauert beim ersten Aufruf einige Minuten.
Weitere Optionen sind:
-
nixos-rebuild build
: Baue die Konfiguration -
nixos-rebuild test
: Baue die Konfiguration und starte alle Services -
nixos-rebuild switch
: Baue die Konfiguration, starte Services und trage die Konfiguration als default im Bootloader ein.
-
NixOS speichert alle Pakete und Konfiguration unter
/nix/store
. In einem Dateisystem können gleichzeitig beliebig viele verschieden Version von NixOS installiert sein. -
Verschiedene Versionen von NixOS, die in
/nix/store
installiert sind, sind (fast) komplett unabhängig voneinander. Identische Pakete belegen nur einmal Speicherplatz. -
nixos-rebuild switch
legt eine neue Version des Betriebssystems an. Die alte Version bleibt erhalten und kann jederzeit wieder aktiviert werden. -
Garbage-Collection: Nachdem man den Jitsi-Meet-Server installiert hat, kann man eine Garbage-Collection durchführen und hat (fast) keine Spuren mehr vom der NixOS Version, die auf dem Festplattenimage vorinstalliert war.
-
Installierte System-Versionen anzeigen:
ls -al /nix/var/nix/profiles
-
Die Referenz auf die
system-1-link
löschen:rm /nix/var/nix/profiles/system-1-link
(Das aktuelle System/nix/var/nix/profiles/system
darf nicht gelöscht werden). -
Garbage löschen:
nix-collect-garbage -d
Vom ersten Login bis zur fertigen Installation dauert die ganze Prozedur ca. 10 Minuten. In der Zeit werden die NixOS Pakete aus dem Netz geladen. Es gibt aber einen Haken an der Sache:
NixOS beruht darauf sämtliche Pakete reproduzierbar aus den Quellcodes zu compilieren. Da compilieren aber in der Praxis sehr zeitaufwendig ist, wird normalerweise ein Binary Cache benutzt (oder mehrere). Wenn ein Paket mit einer bestimmten Konfiguration und mit bestimmten Abhängigkeiten schon im Binary Cache als vorcompiliertes Paket vorhanden ist, wird es einfach runter geladen. Der voreingestellte Binary Cache enthält die Pakete der Haupt-Releases. Wenn man allerdings andere Versionen benutzt, kann es durchaus sein, dass Pakete erst compiliert werden müssen. (Wenn man selbst Pakete entwickelt - natürlich auch).
Vom ersten Login bis zur fertigen Installation sind nur 4 Schritte nötig.
-
Die Konfigurationsdatei von oben runterladen.
-
Hostname und EMail-Adresse anpassen.
-
Dann Konfiguration nach
/etc/nixos/configuration.nix
kopieren. -
Danach:
nixos-rebuild switch