Aufgrund der aktuellen Corona-Kriese, entstand schnell der Plan, das ich einen Jitsi-Server aufsetzen möchte, um die Kommunikaiton für mich, aber auch anderen Leuten zu erleichtern. Da ich ja elles gerne mit Docker löse, war der Plan natürlich auch hier wieder existent. Einen Reverse-Proxy mit einer Let’s Encrypt Zertifizierungs-Routine besitze ich ja bereits, also einfach einen Container dran, und Fertig – Fast! 🙂
Glücklicherweise gibt es ja eine fertige Docker-Repo direkt von Jitsi. Also wie beschrieben dasn ganze mit einem Git Clone herunter laden, und die Einstellungen vornehmen.
Einrichtung
Grundsäzlich muss natürlich für die Gewünschte Domain ein A und am besten auch ein AAA Eintrag auf den Server bestehen. Hier gehe ich jetzt aber nicht weiter drauf ein.
Umgebungsvariablen (.env)
Als Erstes kopieren wir uns die env.example
nach .env
. Hier werden wir sämtliche Einstellungen für Jits vornehmen. Aber bevor wird damit starten, sollten wir sich Passwörter von Jitsi korrekt setzen. Dies geschieht durch das Ausführen von ./gen_passwords.sh
.
Nun als editieren der .env Datei. Nur zur Info, nicht wundern falls ihr die .env
Datei bei einem einfachen .ls
nicht seht. Das liegt daran das Dateien welche mit einem Punkt anfangen, versteckte Datein sind. Versucht es mal mit einem ls -a
. Nun also Los, wir öffnen die Datei .env
mit einem Editor der Wahl, bei mir ist es VIM.
Hier finden wir eine ganze Menge an Konfigurationsmöglichkeiten. Starten wir mit CONFIG
. Hier wird der Host-Seitige Pfad angegeben, indem sämtliche Daten gesichert werden. Ich habe mir angewöhnt hier den gleichen Pfad wie die docker-compose.yaml
zu verwenden, damit ich anschließend alles gut in einem Zuge Backupen kann. Die Variablen HTTP_PORT
sowie HTTPS_PORT
habe ich gelöscht, da ich diese Einstellungen anschließend in der docker-compose.yaml
vornehme. Der ParameterPUBLIC_URL
sollte selbsterklärend sein, hier gebe ich die URL natürlich mit https://
an. Abschließend muss ich nur noch die DOCKER_HOST_ADDRESS
angegeben werden, dies ist die IP-Adresse meines Servers.
Die Nachfolgende Let’s Encrypt-Configuration kann ebenfalls gelöscht werden, da ich dies ja über meinen Reverse-Proxy machen lasse. Die Etherpad-Intergration möchte ich gerne nutzen, daher gebe ich in der Variable ETHERPAD_URL_BASE
die neue Domain meiner Etherpad-Instanz ein, diese werde ich auch nachher in der docker-compose.yaml
anlegen.
Da ich die Benutzung des Servers auch für andere Freigeben möchte, schreibe ich ENABLE_AUTH
auf 0. Das Einzige was nun noch fehlt, ist die JWT_APP_ID
. Hier baue ich mir einfach einen Namen (ohne Punkte) aus meiner Domain zusammen. Somit bin ich hier auch eindeutig.
Docker-Compose(.yml)
Die Docker-Compose.yml wirkt vielleicht anfangs etwas abschreckend, im Großteil werden hier aber nur die Umgebungsvariablen der .env
Datei übergeben. Man kann hier die in der .env
Datei nicht mehr Existenten Initialisierungen auch heraus löschen, ich habe mir die Arbeit allerdings nicht gemacht. Den Block Ports
habe ich jedoch komplett entfernt (bzw. auskommentiert). Zusätzlich musste ich noch die Umgebungsvariablen von Let’s Encrypt ergänzen. Diese sind die, die entsprechend der Dokumentation von docker-letsencrypt-nginx-proxy-companion definiert werden müssen.
- VIRTUAL_HOST=jitsi.example.com - VIRTUAL_PORT=80 - LETSENCRYPT_HOST=jitsi.example.com - LETSENCRYPT_EMAIL=error_lets_encrypt@example.com
Nun kopieren wir noch die Etherpad Konfiguration aus der etherpad.yml
in den die docker-compose.yml
. Theoretisch könnte man auch die beiden Instanzen starten, ich muss aber ohnehon noch Let’s Encrypt anpassen, also kann ich es auch gerade mit rüber nehmen, und ich habe alles zusammen.
etherpad: image: jitsi/etherpad environment: - VIRTUAL_HOST=jitsi_ether.example.com - VIRTUAL_PORT=9001 - LETSENCRYPT_HOST=jitsi_ether.example.com - LETSENCRYPT_EMAIL=error_lets_encrypt@example.com networks: meet.jitsi: aliases: - etherpad.meet.jitsi
Und zum Abschluss nun noch das Netzwerk meet.jitsi
dem externen Netzwerk meines Reverse-Proxys zuweisen.
networks: meet.jitsi: external: name: nginx-proxy
Und wir gehen Online
Naja, jetzt geht es eigentlich ganz schnell. Mit einem docker-compose up -d && docker-compose logs -f
hab ich den Container gestartet, und gebe auch sofort die Logs aus. Ein Besuch der Domain zeigt mir nun auch die fertige Jitsi-Seite an.