Skip to content

Get Started Deutsch

holema edited this page Mar 20, 2022 · 3 revisions

1. Download oder Git Clone

Laden Sie sich die Dokumente als .ZIP Archiv auf Ihren lokalen PC oder über SSH mit Git Clone direkt auf den Server herunter.

Entpacken Sie das ZIP Archiv an dem gewünschten Ort und führen Sie die Installation über die Server (SSH) Konsole fort.

In diesem Archiv sind alle SRC und Template Files enthalten. Die Datenbank muss später separat angelegt und eingerichtet werden.

2. Datenbank anlegen

Legen Sie eine leere mySQL Datenbank an. Der mySQL User muss alle Rechte für diese Datenbank erhalten. Der mySQL User muss in die .env.local eingetragen werden.

3. .env.local anlegen

Erstellen Sie eine leere .env.local Datei im Root Verzeichnis von Jitsi Admin und kopieren Sie den Text mit Ihren Anpassungen in das Dokument.

In der ENV muss ein Keycloak Server eingetragen werden. Dafür muss auch auf dem Keycloak ein neuer Client angelegt werden.

Zum Beispiel der .env.local aus dem Master Branch

3.1. Apache Konfiguration

Für den Apache Server wird noch eine VirtualHost Config benötigt.

Symfony benötigt die Option **FollowSymLinks **und mod_rewrite aktivert. Grundsätzlich wird auch eine SSL Verschlüsselung empfohlen.

Apache2 VirtualHost Config

Es wird mindestens php 7.4 benötigt

Die folgenden PHP Erweiterungen sind erforderlich:

php7.4 php7.4-mbstring php7.4-xsl php7.4-dom php7.4-xml php7.4-gd php7.4-zip php7.4-intl php7.4-curl php7.4-mysql libapache2-mod-php7.4 php7.4-ldap

Damit die JS und CSS Dateien genereiert werden können muss nodeJS installiert sein

npm nodejs

Damit alle Abhängigkeiten installiert werden, wird der Jitsi-Admin mit einer composer.phar Datei ausgeliefert.

Composer kann jedoch auch selbst installiert werden.

3.2 Mercure Hub installieren

Es ist unbedingt notwendig den mercure hub auf dem Server zu installieren und diesen als Service laufen zu lassen. Der Mercure hub sorgt für eine bidirektionale Kommunikation zwischen Server und Client.

Install Mercure hub

4. Vendor Dateien mit dem Composer installieren

Im nächsten Schritt müssen Sie alle Vendor Dateien über den composer installieren

Führen Sie dabei den Befehl in der SSH Konsole aus.

php composer.phar install

5. Datenbank initiieren

Erstellen Sie das Datenbank Schema über die SSH Konsole mit einem der folgenden Befehle.

Führen Sie dafür den Befehl in der SSH Konsole auf dem Server aus. Wenn die mySQL Daten korrekt in der .env.local angelegt sind wird das Datenbank Schema angelegt.

php bin/console doctrine:schema:create
php bin/console doctrine:schema:update --force
php bin/console doctrine:mig:mig  --> dies wird einen Fehler werfen, aber das ist so gewollt
php bin/console doctrine:migrations:version --add --all

6. NPM install und NPM run build

Alle statischen JavaScript Dokumente werden nachträglich heruntergeladen und mit WebPack verarbeitet. Für die Erstellung der CSS und JS Daten wird daher NodeJS auf dem Server benötigt. Der erste Durchlauf von npm install kann lange dauern und den Server zu 100% auslasen.

npm install
npm run build

7. Setup Pipeline starten

Nach dem der Setup abgeschlossen ist, noch die Pipeline starten damit noch fehlende Ordner erstellt und Berechtigungen angepasst werden. Es ist wichtig, dass der Cache und Log Ordner die korrekten Berechtigungen des Apache Benutzers haben, da Symfony in diese Ordner schreiben muss.

bash BranchPipeline.sh

8. Server Hardening

Es liegt im Ermessen des Betreibers, den Server gegen Hackerangriffe zu schützen.

Nutzen Sie Server in einer private Cloud zu betreiben und die Angriffsvektoren so gering wie möglich zu halten. Setzten Sie eine Server Firewall und einen nginx Load Ballancer für eine bessere Verfügbarkeit ein. Installieren Sie auditd auf den Servern um mögliche Konfigurationsänderungen festhalten zu können. Nutzen Sie Fail2Ban für einen kontrollierteren SSH Zugriff auf den Servern Konfigurieren Sie ssh Key basierten SSH Zugriff

9. Cron Jobs anlegen

Einige Aufgaben müssen in regelmäígen ABständen durchgeführt werden. Dazu in dem crontab-File folgende Zeile einfügen: * * * * * /var/www/jitsi-admin/bin/console cron:run 1>> /dev/null 2>&1 Danach in den Applikations-Ordner wechseln und dort einige Cronjobs implementieren(/var/www/jitsi-admin). Ein Cron-Job wird mit dem nachfolgenden Befel angelegt: php bin/console cron:create

Die Nachfolgenden Cronjobs müssen angelegt werden:

sendReminder
app:cron:sendReminder
*/10 * * * *
Send the notification 
cleanCron
cron:reports:truncate 30
0 */1 * * *
delete old reports after 30 days
IndexUser
app:index:user
0 */1 * * *
reindex users
CleanupLobby
app:lobby:cleanUp 2
*/10 *  *  *  *
delete old lobby users after 2 hours

10. Setup your first jitsi meeting

Visit this page