-
Notifications
You must be signed in to change notification settings - Fork 48
Get Started Deutsch
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.
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.
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
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.
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.
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.
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
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
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
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
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
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