Apache OpenMeetings ist eine Open-Source-Plattform für Webkonferenzen. Die Anwendung wurde in Java entwickelt und unterstützt verschiedene Datenbankserver. Zu den Hauptfunktionen gehören Audio- und Videokommunikation, Bildschirmfreigabe, Dateiverwaltung, Benutzerverwaltung, private Nachrichten, ein integriertes Adressbuch, ein Kalender zur Terminplanung und vieles mehr. Zudem besteht die Möglichkeit, Sitzungen aufzuzeichnen. OpenMeetings bietet SOAP/REST-APIs sowie zahlreiche Plugins zur Integration mit Plattformen wie Moodle, Jira, Joomla, Confluence und weiteren.
Voraussetzungen
- Ein CentOS-7-Server mit mindestens 4 GB RAM.
- Zugriff auf ein Benutzerkonto mit Sudo-Rechten.
- Eine Domain, die korrekt auf den Server zeigt.
In dieser Anleitung steht 192.168.1.1 für die öffentliche IP-Adresse des Servers und meetings.example.com für die konfigurierte Domain. Ersetze diese Angaben entsprechend durch deine tatsächlichen Werte.
Aktualisiere zuerst dein System gemäß der Anleitung „Wie man CentOS 7 aktualisiert“. Nach erfolgreichem Update geht es mit der Installation von Java weiter.
Passende Infrastruktur bei centron
Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →
Java installieren
Da OpenMeetings auf Java basiert, wird eine Java Runtime Environment (JRE) benötigt. Lade zunächst das neueste Oracle SE JDK 8 RPM-Paket herunter, welches sowohl JRE als auch JDK enthält.
wget --header 'Cookie: oraclelicense=a' http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.rpmInstalliere anschließend das heruntergeladene RPM-Paket:
sudo rpm -Uvh jdk-8u161-linux-x64.rpmNach erfolgreicher Installation überprüfe die installierte Java-Version:
java -versionDie Ausgabe sollte etwa so aussehen:
[user@centron~]$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)Bevor es weitergeht, müssen die Umgebungsvariablen JAVA_HOME und JRE_HOME eingerichtet werden. Bestimme zunächst den absoluten Pfad der Java-Binärdatei:
readlink -f $(which java)Die Ausgabe sollte ähnlich wie folgt aussehen:
[user@centron~]$ readlink -f $(which java)
/usr/java/jdk1.8.0_161/jre/bin/javaLege anschließend die Variablen JAVA_HOME und JRE_HOME entsprechend fest:
echo "export JAVA_HOME=/usr/java/jdk1.8.0_161" >> ~/.bash_profile
echo "export JRE_HOME=/usr/java/jdk1.8.0_161/jre" >> ~/.bash_profileAktiviere das Profil, damit die Änderungen wirksam werden:
source ~/.bash_profileÜberprüfe abschließend die Umgebungsvariable JAVA_HOME:
[user@centron~]$ echo $JAVA_HOME
/usr/java/jdk1.8.0_161Benötigte Abhängigkeiten installieren
Starte die Installation, indem du die Bibliotheken ImageMagick und GhostScript einrichtest:
sudo yum -y install epel-release
sudo yum -y install ImageMagick ghostscriptImageMagick ermöglicht das Hochladen und Einfügen von Bildern auf dem Whiteboard, während GhostScript das Hochladen von PDF-Dateien unterstützt.
Nach der Installation überprüfe die Versionen, um sicherzustellen, dass beide Programme korrekt installiert wurden:
[user@centron~]$ identify -version
Version: ImageMagick 6.7.8-9 2016-06-16 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2012 ImageMagick Studio LLC
Features: OpenMP
[user@centron~]$ ghostscript -v
GPL Ghostscript 9.07 (2013-02-14)
Copyright (C) 2012 Artifex Software, Inc. All rights reserved.Außerdem muss entweder Apache OpenOffice oder LibreOffice installiert werden, um Dokumente wie .doc, .docx, .ppt, .pptx und .xls in OpenMeetings zu importieren. In diesem Leitfaden wird Apache OpenOffice verwendet.
Wechsle in das temporäre Verzeichnis und lade das Apache OpenOffice RPM-Paket herunter:
cd /tmp
wget https://downloads.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/en-US/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gzEntpacke das heruntergeladene Archiv und installiere alle enthaltenen RPM-Pakete:
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_en-US.tar.gz
cd en-US/RPMS
sudo rpm -Uvh *.rpm
sudo rpm -Uvh desktop-integration/openoffice4.1.5-redhat-menus-*.rpmÜberprüfe danach die erfolgreiche Installation von OpenOffice mit folgendem Befehl:
[user@centron~]$ openoffice4 -h
OpenOffice 4.1.5 415m1(Build:9789)
Usage: soffice [options] [documents...]
Options:
-minimized keep startup bitmap minimized.
...FFmpeg und SoX installieren
Installiere das RPMFusion-Repository, welches vorgefertigte Pakete für FFmpeg und Sound eXchange (SoX) bereitstellt:
sudo rpm -Uvh https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpmInstalliere nun FFmpeg und SoX:
sudo yum -y install ffmpeg soxFFmpeg und SoX sind essenziell für die Aufnahme von Meetings sowie das Einfügen von Medienformaten wie .avi, .flv, .mov und .mp4 in das Whiteboard. Überprüfe deren Installation, indem du ihre Versionen prüfst:
[user@centron~]$ sox --version
sox: SoX v14.4.1
[user@centron~]$ ffmpeg -version
ffmpeg version 2.8.13 Copyright (c) 2000-2017 the FFmpeg developers
built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-11)PostgreSQL für OpenMeetings installieren und konfigurieren
OpenMeetings unterstützt verschiedene Datenbanksysteme wie MySQL, PostgreSQL, Apache Derby und Oracle. In dieser Anleitung verwenden wir PostgreSQL als Datenbankserver für OpenMeetings.
PostgreSQL ist ein leistungsstarkes, objekt-relationales Datenbanksystem, das für seine Stabilität und Schnelligkeit bekannt ist. Da das Standard-Repository von CentOS eine veraltete Version von PostgreSQL enthält, muss das offizielle PostgreSQL-Repository hinzugefügt werden, um auf die neueste Version zugreifen zu können:
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpmInstalliere den PostgreSQL-Server sowie zusätzliche Pakete:
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10Initialisiere das Datenbank-Cluster:
sudo /usr/pgsql-10/bin/postgresql-10-setup initdbStarte den PostgreSQL-Dienst und richte ihn so ein, dass er automatisch beim Systemstart geladen wird:
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10Ändere das Passwort des Standard-PostgreSQL-Benutzers:
sudo passwd postgresWechsle in das Benutzerkonto von PostgreSQL:
sudo su - postgresErstelle einen neuen PostgreSQL-Benutzer für OpenMeetings:
createuser openmeetings(Du kannst den Benutzernamen openmeetings durch einen anderen Namen deiner Wahl ersetzen.) Öffne anschließend die PostgreSQL-Shell:
psqlLege ein sicheres Passwort für den neuen Benutzer fest:
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';Ersetze DBPassword dabei mit einem sicheren Passwort.
Erstelle nun eine neue Datenbank für OpenMeetings und weise dem erstellten Benutzer die Eigentümerschaft zu:
CREATE DATABASE openmeetings OWNER openmeetings;Verlasse die PostgreSQL-Shell:
\qWechsle zurück in die Umgebung des sudo-Benutzers:
exitBearbeite die Datei pg_hba.conf, um die Authentifizierung auf MD5 umzustellen:
sudo nano /var/lib/pgsql/10/data/pg_hba.confÄndere die Methode für lokale Verbindungen auf md5:
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5Speichere die Änderungen und schließe den Editor. Starte anschließend den PostgreSQL-Dienst neu, damit die Änderungen wirksam werden:
sudo systemctl restart postgresql-10Apache OpenMeetings installieren und konfigurieren
Nachdem alle notwendigen Abhängigkeiten installiert wurden, erstelle einen dedizierten Benutzer für OpenMeetings. Der Betrieb unter einem Nicht-Root-Benutzer erhöht die Serversicherheit:
sudo adduser -b /var -s /sbin/nologin openmeetingsDurch diesen Befehl wird auch das Home-Verzeichnis /var/openmeetings für den Benutzer angelegt.
Besuche die Download-Seite von Apache OpenMeetings und lade die aktuelle Version herunter:
cd /tmp
wget http://www-us.apache.org/dist/openmeetings/4.0.1/bin/apache-openmeetings-4.0.1.tar.gzEntpacke das Archiv in das Verzeichnis des OpenMeetings-Benutzers:
sudo tar xf apache-openmeetings-4.0.1.tar.gz -C /var/openmeetingsÜbertrage die Besitzrechte der extrahierten Dateien an den OpenMeetings-Benutzer:
sudo chown -R openmeetings:openmeetings /var/openmeetingsFirewall-Regeln anpassen
Öffne vor dem Start von OpenMeetings die benötigten Ports in der Firewall:
sudo firewall-cmd --zone=public --permanent --add-port=5080/tcp
sudo firewall-cmd --zone=public --permanent --add-port=1935/tcp
sudo firewall-cmd --reloadApache OpenMeetings starten
Starte die OpenMeetings-Anwendung mit folgendem Befehl:
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetingsRufe anschließend im Browser die URL http://192.168.1.1:5080/openmeetings auf.
Du solltest die Willkommensseite sehen, die Anweisungen zur Installation von GhostScript anzeigt.
Da GhostScript bereits installiert wurde, fahre fort und gib die Datenbankdetails ein. Wähle PostgreSQL als Datenbanktyp und trage die entsprechenden Zugangsdaten ein.
Prüfe die Datenbankverbindung mit der Schaltfläche "Check". Bei Erfolg erscheint die Meldung: "Database check was successful."
OpenMeetings-Installation konfigurieren
Fülle nun folgende Felder aus:
- Administrator-Benutzerkonto und Gruppenname
- Selbstregistrierung aktivieren oder deaktivieren
- Option für E-Mail-Verifizierung
- Standardsprache für die Plattform
Gib auch die SMTP-Serverdetails ein. Falls noch kein SMTP-Server bereitsteht, kannst du dies später über das Admin-Dashboard nachholen.
Beim Festlegen der Pfade zu externen Programmen:
- /usr/bin für ImageMagick, FFmpeg und SoX
- /opt/openoffice4 für OpenOffice
Falls es Probleme bei den Pfadangaben gibt, verwende den Befehl:
which <binary_name>Zum Beispiel:
which ffmpegAls Ergebnis sollte /usr/bin/ffmpeg erscheinen.
Standardmäßig kannst du in der nächsten Konfigurationsmaske die Vorgaben übernehmen und auf "Finish" klicken, um die Datenbank zu schreiben und die Installation abzuschließen.
Nach der Installation
OpenMeetings wurde erfolgreich auf deinem Server installiert. Im nächsten Schritt wird empfohlen, Systemd zur Verwaltung des Dienstes einzurichten und Nginx mit Let's Encrypt SSL als sicheren Reverse Proxy zu konfigurieren.
Systemd für Apache OpenMeetings einrichten
Auch wenn OpenMeetings manuell gestartet werden kann, empfiehlt es sich, einen Systemd-Dienst einzurichten, damit OpenMeetings automatisch beim Booten startet und nach Abstürzen neu gestartet wird.
Beende zuerst den aktuell laufenden OpenMeetings-Prozess:
sudo pkill -KILL -u openmeetingsErstelle dann eine neue Systemd-Unit-Datei:
sudo nano /etc/systemd/system/openmeetings.serviceFüge folgenden Inhalt ein:
[Unit]
Description=OpenMeeting Service
After=network.target
[Service]
Type=simple
User=openmeetings
WorkingDirectory=/var/openmeetings
ExecStart=/var/openmeetings/red5.sh
Restart=always
[Install]
WantedBy=multi-user.targetStarte und aktiviere den Dienst:
sudo systemctl start openmeetings
sudo systemctl enable openmeetingsÜberprüfe den Status des OpenMeetings-Dienstes:
sudo systemctl status openmeetingsDie Ausgabe sollte etwa wie folgt aussehen:
[root@centron openmeetings]# sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2018-01-31 15:40:56 UTC; 38s ago
Main PID: 10522 (java)
CGroup: /system.slice/openmeetings.service
└─10522 /bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m...Nginx als SSL-geschützten Reverse-Proxy konfigurieren
Standardmäßig läuft OpenMeetings über Port 5080 ohne Verschlüsselung, was ein potenzielles Sicherheitsrisiko darstellt. Um die Verbindung abzusichern, wird Nginx als Reverse-Proxy für HTTPS-Verbindungen eingerichtet.
Installiere Nginx:
sudo yum -y install nginxStarte und aktiviere den Nginx-Dienst:
sudo systemctl start nginx
sudo systemctl enable nginxInstalliere Certbot, um SSL-Zertifikate von Let's Encrypt zu beantragen:
sudo yum -y install certbotErlaube HTTP- und HTTPS-Verkehr durch die Firewall:
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reloadStelle sicher, dass die Domain korrekt auf den Server zeigt. Beantrage danach ein SSL-Zertifikat:
sudo certbot certonly --webroot -w /usr/share/nginx/html -d meetings.example.comDie Zertifikate befinden sich anschließend unter:
/etc/letsencrypt/live/meetings.example.com/fullchain.pem(SSL-Zertifikat)/etc/letsencrypt/live/meetings.example.com/privkey.pem(privater Schlüssel)
Da Let's Encrypt-Zertifikate alle 90 Tage ablaufen, richte eine automatische Verlängerung ein:
sudo crontab -eFüge folgende Zeile hinzu, um die Erneuerung täglich um 5:30 Uhr zu prüfen:
30 5 * * * /usr/bin/certbot renew --quietNginx für OpenMeetings konfigurieren
Entferne zunächst default_server aus der Standard-Nginx-Konfiguration:
sudo sed -i 's/default_server//g' /etc/nginx/nginx.confErstelle danach eine neue Konfigurationsdatei für OpenMeetings:
sudo nano /etc/nginx/conf.d/meetings.example.com.confFüge folgenden Inhalt ein:
server {
listen 80;
server_name meetings.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name meetings.example.com;
ssl_certificate /etc/letsencrypt/live/meetings.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meetings.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/openmeetings.access.log;
location / {
proxy_pass http://localhost:5080;
proxy_set_header host $host;
proxy_http_version 1.1;
proxy_set_header upgrade $http_upgrade;
proxy_set_header connection "upgrade";
}
}Überprüfe die Nginx-Konfiguration auf Fehler:
sudo nginx -tFalls alles in Ordnung ist („syntax is ok“ und „test is successful“), starte Nginx neu:
sudo systemctl restart nginxOpenMeetings abschließend konfigurieren
Melde dich im Administrationsbereich von OpenMeetings an. Gehe zu Administration >> Konfiguration und ändere den Wert von application.base.url auf https://meetings.example.com. Speichere die Änderungen.
Starte danach den OpenMeetings-Dienst neu:
sudo systemctl restart openmeetingsJetzt kannst du deine OpenMeetings-Installation unter https://meetings.example.com aufrufen und nutzen.
Fazit
Mit dieser Anleitung hast du Apache OpenMeetings erfolgreich auf einem CentOS 7-Server installiert und abgesichert. Die Anwendung ist nun durch Nginx mit Let's Encrypt SSL geschützt. Systemd sorgt für die automatische Verwaltung und einen zuverlässigen Neustart des Dienstes. In dieser sicheren Umgebung kannst du OpenMeetings für Online-Meetings, Webinare und Zusammenarbeit verwenden. Lade deine Kollegen ein und starte noch heute deine Webkonferenzen!
Testen Sie Ihr Setup auf ccloud³
Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.