Apache OpenMeetings est une application de conférence Web open source. Il est écrit en Java et prend en charge plusieurs serveurs de base de données. Il offre de nombreuses fonctionnalités, telles que la conférence audio et vidéo, le partage d'écran, l'explorateur de fichiers, un système de modération utilisateur, des messages et contacts privés, un calendrier intégré pour les plans de réunion et bien d'autres. Vous pouvez également enregistrer des sessions de conférence. Il fournit une API SOAP / REST et plusieurs plugins pour s'intégrer facilement à Moodle, Jira, Joomla, Confluence et plus encore.
Conditions préalables
- Une instance de serveur Vultr Ubuntu 16.04 avec au moins 4 Go de RAM.
- Un utilisateur sudo .
- Un nom de domaine pointé vers le serveur.
Pour ce didacticiel, nous utiliserons 192.168.1.1
comme adresse IP publique et meetings.example.com
comme nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple d'adresse IP et de nom de domaine par celle-ci.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour Ubuntu 16.04 . Une fois votre système mis à jour, installez Java.
Installer Java
OpenMeetings est écrit en Java, il nécessite donc Java Runtime Environment (JRE) pour fonctionner. Ajoutez le référentiel Ubuntu pour Oracle Java 8.
sudo add-apt-repository --yes ppa:webupd8team/java
sudo apt update
Installez Java.
sudo apt -y install oracle-java8-installer
Vérifiez la version de Java.
java -version
Vous verrez la sortie suivante.
user@vultr:~$ 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)
Définissez le chemin par défaut pour Java en installant le package suivant.
sudo apt -y install oracle-java8-set-default
Vous pouvez vérifier que cela JAVA_HOME
est défini en exécutant ce qui suit.
echo $JAVA_HOME
Vous verrez une sortie similaire.
user@vultr:~$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle
Si vous ne voyez aucune sortie, vous devrez vous déconnecter du shell actuel et vous reconnecter.
Installer les dépendances
Installez les bibliothèques ImageMagick et GhostScript.
sudo apt -y install imagemagick ghostscript libxt6 libxrender1
ImageMagick prend en charge le téléchargement d'images et leur importation sur le tableau blanc. GhostScript vous permet de télécharger des PDF sur le tableau blanc.
Vérifiez la version d'ImageMagick et de GhostScript pour vous assurer qu'ils ont été installés avec succès.
user@vultr:~$ identify -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
user@vultr:~$ ghostscript -v
GPL Ghostscript 9.18 (2015-10-05)
Copyright (C) 2015 Artifex Software, Inc. All rights reserved.
Furthur, nous devrons également installer Apache OpenOffice ou LibreOffice sur le système. L' installation de ces deux OpenMeetings permettra d'importer les fichiers dans des formats de documents Office tels que .doc
, .docx
, .ppt
, .pptx
ou .xlx
. Dans ce tutoriel, nous allons installer Apache OpenOffice.
Basculez vers le répertoire temporaire et téléchargez le package Apache OpenOffice pour Ubuntu.
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-deb_en-US.tar.gz
Extrayez l'archive et installez tous les packages DEB.
tar xf Apache_OpenOffice_4.1.5_Linux_x86-64_install-deb_en-US.tar.gz
cd en-US/DEBS
sudo dpkg -i *.deb
sudo dpkg -i desktop-integration/openoffice4.1-debian-menus_4.1.5*.deb
Installez le PPA pour la dernière version de FFmpeg.
sudo add-apt-repository --yes ppa:jonathonf/ffmpeg-3
sudo apt update
Installez FFmpeg et SoX.
sudo apt -y install ffmpeg sox
FFmpeg et SoX vous permettront d'enregistrer des réunions. Ils seront également l' aide dans les médias tels que l' importation de fichiers .avi
, .flv
, .mov
et .mp4
dans le tableau blanc. Vérifiez l'installation en vérifiant les versions de FFmpeg et SoX.
user@vultr:~$ sox --version
sox: SoX v14.4.1
user@vultr:~$ ffmpeg -version
ffmpeg version 3.4.2-1~16.04.york0.2 Copyright (c) 2000-2018 the FFmpeg developers
built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.9) 20160609
Installer PostgreSQL
OpenMeetings prend en charge plusieurs types de serveurs de bases de données, tels que MySQL, PostgreSQL, Apache Derby et Oracle. Dans ce tutoriel, nous utiliserons PostgreSQL pour héberger la base de données OpenMeeting.
PostgreSQL est un système de base de données relationnelle objet, connu pour sa stabilité et sa vitesse. Le référentiel Ubuntu par défaut contient une ancienne version de PostgreSQL, alors ajoutez le référentiel PostgreSQL.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Installez le serveur de base de données PostgreSQL.
sudo apt -y install postgresql
Démarrez le serveur PostgreSQL et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Modifiez le mot de passe de l'utilisateur PostgreSQL par défaut.
sudo passwd postgres
Connectez-vous en tant qu'utilisateur PostgreSQL.
sudo su - postgres
Créez un nouvel utilisateur PostgreSQL pour l'utilisateur OpenMeetings.
createuser openmeetings
Vous pouvez utiliser n'importe quel nom d'utilisateur au lieu de openmeetings
.
Basculez vers le shell PostgreSQL.
psql
Définissez un mot de passe pour l'utilisateur nouvellement créé pour la base de données OpenMeetings.
ALTER USER openmeetings WITH ENCRYPTED password 'DBPassword';
Remplacez-le DBPassword
par un mot de passe sécurisé.
Créez une nouvelle base de données pour l'installation d'OpenMeetings.
CREATE DATABASE openmeetings OWNER openmeetings;
Sortez du psql
shell.
\q
Passez à l' sudo
utilisateur.
exit
Enregistrez le fichier et quittez l'éditeur.
Installation d'OpenMeetings
Étant donné que toutes les dépendances requises sont installées, créez un nouvel utilisateur pour OpenMeetings. L'utilisation d'un utilisateur non root pour exécuter OpenMeetings est recommandée pour la sécurité du serveur.
sudo adduser --home /var/openmeetings --disabled-login --disabled-password --gecos "OpenMeetings User" openmeetings
La commande ci-dessus créera également le répertoire personnel de l' openmeetings
utilisateur dans /var/openmeetings
.
Consultez la page de téléchargement d'Apache OpenMeetings pour obtenir le lien vers la dernière version disponible. Téléchargez l'archive OpenMeetings.
cd /tmp
wget http://www-eu.apache.org/dist/openmeetings/4.0.2/bin/apache-openmeetings-4.0.2.tar.gz
Extrayez l'archive dans le /var/openmeetings
répertoire.
sudo tar xf apache-openmeetings-*.tar.gz -C /var/openmeetings
Attribuez la propriété des fichiers à l'utilisateur OpenMeetings que nous avons créé précédemment.
sudo chown -R openmeetings:openmeetings /var/openmeetings
Vous pouvez maintenant démarrer l'application.
sudo su -s /bin/bash -c 'cd /var/openmeetings/ && sh red5.sh' openmeetings
Vous pouvez maintenant accéder http://192.168.1.1:5080/openmeetings
à votre navigateur préféré. Vous verrez l'écran de bienvenue avec des instructions pour installer GhostScript.
Puisque nous avons déjà installé GhostScript, continuez. Sur l'interface suivante, vous serez invité à fournir les détails du serveur de base de données. Sélectionnez le type de base de données " PostgreSql
" et fournissez les détails de votre serveur de base de données que vous avez configurés lors de l'installation de PostgreSQL.
Cliquez sur le Check
bouton "" et vous obtiendrez le message: " Database check was successful
". Fournissez les détails de votre compte administrateur et un nom de groupe dans la prochaine interface.
Configurez les paramètres de base de votre installation; afin d'autoriser l'enregistrement automatique, la vérification des e-mails et la langue par défaut. Fournissez également les détails de votre serveur SMTP. Si vous n'avez pas de serveur SMTP prêt, vous pouvez également fournir les détails SMTP ultérieurement dans le tableau de bord administrateur.
Il vous sera demandé le chemin vers les binaires de différentes applications. Fournissez /usr/bin
comme chemin pour ImageMagick, FFmpeg et SoX. Si l'application fournit des erreurs pour le chemin d'accès entré, vous pouvez utiliser which <binary_name>
pour trouver le chemin absolu vers le binaire. Par exemple, which ffmpeg
devrait vous donner /usr/bin/ffmpeg
en sortie. Utilisez-le /opt/openoffice4
comme chemin vers les binaires OpenOffice.
Vous pouvez ignorer la configuration sur la prochaine interface car nous allons utiliser les valeurs par défaut. Enfin, cliquez sur le Finish
bouton "" pour installer l'application et écrire la base de données.
OpenMeetings est maintenant installé sur votre serveur. Pour le rendre plus convivial pour la production, nous allons configurer Systemd pour gérer le serveur OpenMeetings. Nous allons également configurer Nginx avec un SSL Let's Encrypt en tant que proxy inverse sécurisé pour servir l'application.
Configuration de Systemd
Il est recommandé de configurer une unité de service Systemd pour gérer l'application. Cela garantira que le service démarre automatiquement au démarrage et en cas d'échec.
Arrêtez le serveur OpenMeetings en appuyant sur CTRL+ Cou en tuant le shell de l' openmeetings
utilisateur.
sudo pkill -KILL -u openmeetings
Créez un nouveau fichier d'unité Systemd pour OpenMeetings.
sudo nano /etc/systemd/system/openmeetings.service
Remplissez le fichier.
[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.target
Démarrez le serveur OpenMeetings et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start openmeetings
sudo systemctl enable openmeetings
Pour vérifier l'état du service, vous pouvez exécuter ce qui suit.
sudo systemctl status openmeetings
Vous verrez une sortie similaire.
user@vultr:~$ sudo systemctl status openmeetings
● openmeetings.service - OpenMeeting Service
Loaded: loaded (/etc/systemd/system/openmeetings.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2018-04-08 19:08:33 UTC; 52s ago
Main PID: 8788 (java)
CGroup: /system.slice/openmeetings.service
└─8788 /usr/bin/java -Dred5.root=/var/openmeetings -Djava.security.debug=failure -Xms256m
Apr 08 19:08:40 vultr red5.sh[8788]: [INFO] [main] org.apache.catalina.core.StandardService - Starti
Apr 08 19:08:40 vultr red5.sh[8788]: Apr 08, 2018 7:08:40 PM org.apache.catalina.core.StandardEngine
...
Configurer Nginx comme proxy inverse
Par défaut, OpenMeetings écoute le port 5080
. Si la connexion entre le navigateur et le serveur n'est pas cryptée avec SSL, les connexions et autres informations seront envoyées en texte brut. Cela pourrait être une menace potentielle car une personne qui espionne sur le réseau pourrait obtenir les informations. Pour atténuer ce problème, nous allons configurer Nginx comme proxy inverse qui écoutera le HTTPS
port par défaut et procurera toutes les demandes au serveur OpenMeetings.
Installez Nginx.
sudo apt -y install nginx
Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start nginx
sudo systemctl enable nginx
Ajoutez le référentiel Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Installez Certbot, qui est l'application cliente de Let's Encrypt CA.
sudo apt -y install certbot
Remarque: Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.
Générez les certificats SSL.
sudo certbot certonly --webroot -w /var/www/html -d meetings.example.com
Les certificats générés sont susceptibles d'être stockés dans /etc/letsencrypt/live/meetings.example.com/
. Le certificat SSL sera stocké sous fullchain.pem
et la clé privée sera stockée sous privkey.pem
.
Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.
Ouvrez le fichier de tâche cron.
sudo crontab -e
Ajoutez la ligne suivante à la fin du fichier.
30 5 * * * /usr/bin/certbot renew --quiet
La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il sera automatiquement renouvelé.
Créez un nouveau fichier de configuration pour OpenMeetings.
sudo nano /etc/nginx/sites-available/openmeetings
Remplissez le fichier.
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";
}
}
Active la configuration.
sudo ln -s /etc/nginx/sites-available/openmeetings /etc/nginx/sites-enabled/openmeetings
Recherchez les erreurs dans le nouveau fichier de configuration.
sudo nginx -t
Si vous voyez la sortie suivante, la configuration est sans erreur.
user@vultr:~$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si vous avez reçu une sorte d'erreur, assurez-vous de vérifier le chemin d'accès aux certificats SSL. Redémarrez le serveur Web Nginx pour implémenter le changement de configuration.
sudo systemctl restart nginx
Avant de pouvoir commencer à utiliser l'application sur le site sécurisé SSL, vous devrez effectuer une modification de configuration dans OpenMeetings. Connectez-vous à votre tableau de bord administratif OpenMeetings et accédez à " Administration >> Configuration
". Dans le tableau contenant les colonnes ID, clé et valeur, recherchez application.base.url
. Modifiez sa valeur en https://meetings.example.com
fonction de votre nom de domaine. Enregistrez la configuration en cliquant sur l'icône d'enregistrement ci-dessus.
Redémarrez le service OpenMeetings.
sudo systemctl restart openmeetings
Maintenant, vous pouvez naviguer à l' https://meetings.example.com
aide de votre navigateur Web préféré et vous connecter pour utiliser l'application.
Félicitations, Apache OpenMeetings est maintenant installé sur votre serveur. Vous pouvez inviter vos amis et commencer à utiliser OpenMeetings pour des conférences en ligne.