Marvin Preuss xsteadfastx photo

github twitter mastodon flickr

golang

Jitsi-Meet in Corana Zeiten

/// defaa88 /// jitsi communication voip linux docker ansible golang covid19 prometheus raspberrypi

Social Distancing gehört eigentlich zu meinen Stärken. Soziale Kontakte kostet mich einen riesigen Aufwand. Auf einmal wurden wir alle Zuhausebleiber zu Helden der Corona-Zeit. Ich hätte es nicht gedacht, diese Distanz tat mir nicht gut. Ich scrollte durch viele “witzige” Screenshots von Gruppenvideochats. Vor ein paar Jahren probiere ich mal Jitsi-Meet aus. Ein kleiner Testlauf für die Firma, mit mäßigen Erfolg. Ab drei Teilnehmern ging der Server in die Knie. Nachdem ich diesen Bugreport sah, wurde mich auch klar wieso: Es gibt ein Firefox Bug, der die Verbindungen stark einschränkt, und das für alle Beteiligen.

Social Distancing gehört eigentlich zu meinen Stärken. Soziale Kontakte kostet mich einen riesigen Aufwand. Auf einmal wurden wir alle Zuhausebleiber zu Helden der Corona-Zeit. Ich hätte es nicht gedacht, diese Distanz tat mir nicht gut. Ich scrollte durch viele “witzige” Screenshots von Gruppenvideochats.

Vor ein paar Jahren probiere ich mal Jitsi-Meet aus. Ein kleiner Testlauf für die Firma, mit mäßigen Erfolg. Ab drei Teilnehmern ging der Server in die Knie. Nachdem ich diesen Bugreport sah, wurde mich auch klar wieso: Es gibt ein Firefox Bug, der die Verbindungen stark einschränkt, und das für alle Beteiligen. Egal. Ich kannte Jitsi schon aus meinen XMPP-Hype Jahren. Damals noch als Java Client der auch schon Audio und Video kannte. Er nutze dabei XMPP Jingle für das Aushandeln der Verbindungen. Da ich keine Lust darauf habe kommerzielle, closed Source Geschichten zu benutzen (aus Überzeugung), wollte ich etwas eigenes Aufsetzen. Jitsi musste wieder her halten.

In meiner Fantasie als Mega Super Admin rolle ich gleich mehrere Instanzen aus. Aus diesem Grund muss es eine Ansible Rolle1 sein. Diese wäre Teil meiner persöhnlichen Infrastruktausrollung. Ich schlug mich durch bereits vorhandene Ansible Rollen. Ein scharzer Tag innerhalb schwarzer Tage. Ich setze immer wieder frische virtualle Hetzner Server auf. Egal ob Debian oder Ubuntu, immer bekam ich andere Fehler. Anscheinend baut Jitsi intern viel um und will nun NGINX als neuen als Reverseproxy nutzen. Zumindestens nehme ich diese Aussage als Ausrede meines Nichtkönnens. Es gab aber noch eine andere Alternative: das docker-compose Setup. Aufgesetzt, funktioniert. Wieso also der Hassle?

Meine Ansible Rolle1 setzt ein funktionierendes Docker Setup voraus. Dann als Ansible Variabel den Host setzen:

    jitsi_meet__host: foo.bar.tld

Die meiste Arbeit steckt in dem offiziellen docker-compose File. Es kümmert sich sogar um letsencrypt SSL Zertifikate. Ich klickte mir erstmal den billigsten vServer in der Hetzner-Cloud. Natürlich muss ich auch mitbekommen wie sich die Zahlen der Konferenzen und User auf den Ressourcen-Verbrauch auswirkt. Ich brauchte einen Prometheus Exporter. Auch hier gab es was, dies beinahaltet Gefummel am XMPP Server. Keine Lust darauf wenn ich sowas automatisiert ausrollen möchte. Und da ich gerade eh mit go rumspiele musste ich es einfach selber machen. Stellt sich raus, die Videobridge Komponente in Jitsi kann Statistiken. Ich nehme die angebotenen Werte und baue daraus Prometheus Metriken. Ein Hack. Aber es macht was es soll. Der jitsiexporter2!

Nun treffen wir uns einmal Morgends, frühstücken zusammen. Ich habe soviel soziale Kontakte wie noch nie. Diese Zeiten erzeugen eine Sensucht nach Nähe. Dies ist priviligiertes Gejammer aus der Quarantäne, das ist mir bewusst.


  1. https://github.com/xsteadfastx/ansible-xsfx-jitsi_meet ↩︎

  2. https://github.com/xsteadfastx/jitsiexporter ↩︎



Neu Mit Hugo

/// aef5a80 /// blog golang hugo

Ich nenne es auch Motivation zum bloggen durch technische Veränderungen. Wer wäre ich denn wenn ich nicht auf jeden vor mir haltenden Zug aufspringen würde. Ich durchlebe gerade etwas, was ich nie dachte erleben zu würden: Das lernen einer zweiten Programmiersprache. In diesem Zuge stelle ich auch einige meiner genutzen Programme auf Software um die in dieser Sprache geschrieben sind. Und nun bin ich da. Hugo statt Pelican. Ich hbe mir ja immer eingeredet “nimm statische Blog Generatoren… dann wird alles gut.

Ich nenne es auch Motivation zum bloggen durch technische Veränderungen. Wer wäre ich denn wenn ich nicht auf jeden vor mir haltenden Zug aufspringen würde. Ich durchlebe gerade etwas, was ich nie dachte erleben zu würden: Das lernen einer zweiten Programmiersprache. In diesem Zuge stelle ich auch einige meiner genutzen Programme auf Software um die in dieser Sprache geschrieben sind. Und nun bin ich da. Hugo statt Pelican. Ich hbe mir ja immer eingeredet “nimm statische Blog Generatoren… dann wird alles gut. Markdown ole. Wenn mal Softwarewechsel… kein Ding”. Ja, so ist das. Nichts ist so. Jeder hat dann doch seinen eigenen Flavor. Also saß ich dran und programmierte einen Migrationsscript. Manche alte Zöpfe mussten gehen (neue Feed URL, Jupyter-Notebooks) und manche Sachen sind noch nicht da (die Suche). Ich hoffe auf endlose Motivation. Wo auch immer diese sich versteckt.



1 of 1