Installation

Vous trouverez ci-dessous quelques notes vous permettant de répliquer l'installation de ces services sur vos propres machines, et qui sait, peut être, devenir vous même un vrai chaton.


Grav

Source

https://github.com/getgrav/grav

Description

Grav est un CMS (Content Management System), c'est-à-dire un système qui permet d'éditer facilement le contenu et l'organisation de pages html. Il sert de support aux quelques pages d'accueil de chaton.sequanux.org. Ce logiciel est développé Trilby Media et est proposé sous licence MIT. Sa particularité est d'être flat file, c'est-à-dire de ne pas fonctionner couplé à une base de données. Il en résulte une grande facilité d'installation.

Site du projet: https://getgrav.org/ Dépôt logiciel: https://github.com/getgrav/grav Documentation officielle: https://learn.getgrav.org/16/basics/installation

Installation

La présente installation a suivi à la lettre le tutoriel proposé sur le site doc.ubuntu-fr.org en 2018. Celui reste valable en 2020. Les étapes ci-dessous ne vont faire que résumer et paraphraser ce tutoriel...

Nous partons du principe que le serveur web est déjà en place, et que l'hôte est créé également. La racine de l'hôte pointe vers /var/www/grav .

Il faut donc, en premier lieu, télécharger la dernière version de Grav:

wget -O grav-admin.zip https://getgrav.org/download/core/grav-admin/latest

puis la décompresser à la racine de l'hôte:

sudo unzip grav-admin.zip -d /var/www
sudo mv /var/www/grav-admin /var/www/grav

Il faut corriger les droits de fichiers mis en place:

sudo chown $USER:www-data /var/www/grav -R
sudo chmod -rwx,u+rwX,g+rwX /var/www/grav -R

Et c'est presque tout ! Le site est accessible, tout comme l'administration (à URL/admin). Puisque nous avons choisi la version de grav avec l'interface d'administration, toutes les manipulations telles que la création d'un nouvel utilisateur ou l'édition des pages (avec le formatage markdown) se feront depuis des menus très clair.

Si votre site disparaît après la première nuit, c'est qu'il y a un problème avec la mise en cache automatique des contenus. Il faudra copier ces commandes dans un fichier bash et l'éxécuter pour résoudre le problème (source:

#!/bin/sh
chown -R joeblow:staff .
find . -type f -exec chmod 664 {} \;
find ./bin -type f -exec chmod 775 {} \;
find . -type d -exec chmod 775 {} \;
find . -type d -exec chmod +s {} \;

Il faut remplacer joeblow:staff par les propriétaires du dossier www.


Jitsi

Sources

https://github.com/jitsi/jitsi-meet

Description

Jitsi est une application de messagerie instantanée, voix sur IP et visioconférence sous licence libre Apache License 2.0

Installation

La procédure d’install rapide disponible sur https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md est tout à fait fonctionnelle mais nous avons dû faire quelques ajustements par rapport à notre configuration initiale notamment au niveau du reverse proxy. En effet le serveur sur lequel nous souhaitons installer Jitsi nous sert actuellement de serveur web pour le site https://sequanux.org et c’est au logiciel Apache que cette tâche est confiée, c'est donc Apache qui nous servira également de reverse proxy et non Nginx.

La procédure qui est décrite ici est donc spécifique à notre environnement de départ (Debian GNU/Linux 10+ Apache) et a pour but l'installation de Jitsi qui sera accessible via l’url https://visio.sequanux.org

Préparation

On vérifie notre notre hostname

cat /etc/hostname

qui nous renvoie notre HOSTNAME

On édite le fichier /etc/hosts pour y ajouter :

127.0.0.1 localhost visio.sequanux.org

On vérifie au passage qu’on a bien une entrée du type

127.0.0.1   HOSTNAME

comme ce n’ést pas le cas, on la rajoute vite vite vite.

On ajoute le dépôt jitsi

echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

On récupère et on installe le certificat

wget -qO -  https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -

On ajoute des règles de parefeu pour ouvrir les ports 80 TCP, 443 TCP et 10000 UDP sur le serveur

Installation du logiciel

On installe les paquets et leurs dépendances :

apt-get update
apt-get install apt-transport-https jitsi-meet

Durant l’installation on est invité à saisir le nom de domaine de notre instance jitsi : visio.sequanux.org

À la question du certificat de sécurité on laisse jitsi utiliser un certificat auto-signé, nous générerons un certificat LetsEncrypt plus tard pour notre domaine.

Remarque : Jitisi utilise un reverse proxy pour se connecter à l’application, nginx ou apache sont capables d’assurer cette tâche :

  • Si aucun serveur web n’est encore installé sur votre serveur, nginx sera automatiquement installé et configuré.
  • Si vous avez déjà un serveur apache fonctionnel il vous faudra créer le fichier de configuration du vhost.

Configuration de Jitsi

On ajoute au début du fichier /etc/jitsi/videobridge/sip-communicator.properties

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=xxx.xxx.xxx.xxx
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=yyy.yyy.yyy.yyy

en remplaçant :

  • xxx.xxx.xxx.xxx = adresse ip locale du serveur
  • yyy.yyy.yyy.yyy = adresse ip publique du serveur

Configuration de la partie https et proxy

Pour la création du certificat SSL nous avons déjà comme prérequis :

  • un service apache qui tourne
  • une entré DNS visio.sequanux.org qui pointe vers l’ip publique de notre serveur
  • certbot installé

On lance donc la créationdu certificat SSL :

certbot-auto --apache -d visio.sequanux.org --rsa-key-size 4096

On crée et on édite notre fichier vhost pour apache /etc/apache2/sites-available/visio.conf :

<VirtualHost *:80> 
   ServerName visio.sequanux.org 
   Redirect permanent / https://visio.sequanux.org/ 
   RewriteEngine On 
   RewriteCond %{HTTPS} off 
   RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
  RewriteCond %{SERVER_NAME} =visio.sequanux.org 
  RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] 
</VirtualHost> 

<VirtualHost *:443> 

 ServerName visio.sequanux.org 

 SSLProtocol TLSv1 TLSv1.1 TLSv1.2 
 SSLEngine on 
 SSLProxyEngine on 
 SSLCipherSuite "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:
EECDH:!aNULL:!eNULL:!MEDIUM:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED" 
 SSLHonorCipherOrder on 
 Header set Strict-Transport-Security "max-age=31536000" 

 DocumentRoot "/usr/share/jitsi-meet" 
 <Directory "/usr/share/jitsi-meet"> 
   Options Indexes MultiViews Includes FollowSymLinks 
   AddOutputFilter Includes html 
   AllowOverride All 
   Order allow,deny 
   Allow from all 
 </Directory> 

ErrorDocument 404 /static/404.html 

Alias "/config.js" "/etc/jitsi/meet/visio.sequanux.org-config.js" 
 <Location /config.js> 
   Require all granted 
 </Location> 

   Alias "/external_api.js" "/usr/share/jitsi-meet/libs/external_api.min.js" 
 <Location /external_api.js> 
   Require all granted 
 </Location> 

ProxyPreserveHost on 
ProxyPass /http-bind http://localhost:5280/http-bind/ 
ProxyPassReverse /http-bind http://localhost:5280/http-bind/ 
  
RewriteEngine on 
 RewriteRule ^/([a-zA-Z0-9]+)$ /index.html 
 Include /etc/letsencrypt/options-ssl-apache.conf 
 SSLCertificateFile /etc/letsencrypt/live/visio.sequanux.org/fullchain.pem 
 SSLCertificateKeyFile /etc/letsencrypt/live/visio.sequanux.org/privkey.pem 
</VirtualHost>

On recharge les fichiers de configuration apache :

systemctl reload apache2.service

Et voilà, on a notre instance jitsi fonctionnelle : https://visio.sequanux.org


Lufi

Source

https://framagit.org/fiat-tux/hat-softwares/lufi

Description

Installation


Etherpad

Source

https://github.com/ether/etherpad-lite

Description

Etherpad est un logiciel libre sous licence Apache qui permet l'éditeur de texte en mode collaboratif en temps réel. Plusieurs utilisateurs peuvent donc saisir/corriger/supprimer le texte en même temps !

Installation

On décrit ici l'installation d'Etherpad sur un système GNU/Linux Debian 10 sur lequel apache et mariadb sont déjà installés et configurés. Les DNS sont ok avec un sous-domaine pad.sequanux.org pointant vers le serveur.

On édite le fichier /etc/hosts pour y ajouter :

127.0.0.1 pad.sequanux.org

Dépendances

On commence par installer nodejs, npm

apt-get install nodejs npm

On crée un utilisateur système dédié :

useradd -mU etherpad 

On clone le dépôt etherpad-lite et déplacer le répertoire dans /var/www

git clone git://github.com/ether/etherpad-lite.git
mv etherpad-lite /var/www/

On change le propriétaire du répertoire :

chown -R etherpad:etherpad /var/www/etherpad-lite

On installe le reste des dépendances

cd /var/www/etherpad-lite
su -c './bin/installDeps.sh' etherpad 

Pour l'import/export au format odt on utilisera abiword

apt-get install abiword

Préparation de la base de données mariadb

On crée un user avec un mot de passe, une base, on donne les privilèges

Mise en place du reverse proxy apache

On crée un vhost en écoute sur le port 80

<VirtualHost *:80>
    ServerName pad.sequanux.org

    ProxyPass / http://127.0.1.1:9001/
    ProxyPassReverse / http://127.0.1.1:9001/
    ProxyRequests Off
RewriteEngine on
RewriteCond %{SERVER_NAME} =pad.sequanux.org
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

On créé un certificat ssl avec letsencrypt

On ajoute un vhost en écoute sur le port 443

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName pad.sequanux.org

    ProxyVia On
    ProxyRequests Off
    ProxyPreserveHost on 

    <Location />
        ProxyPass http://127.0.1.1:9001/ retry=0 timeout=30
        ProxyPassReverse http://127.0.1.1:9001/
    </Location>

    <Location /socket.io>
            RewriteEngine On
            RewriteCond %{QUERY_STRING} transport=websocket    [NC]
            RewriteRule /(.*) ws://127.0.1.1:9001/socket.io/$1 [P,L]
            ProxyPass http://127.0.1.1:9001/socket.io retry=0 timeout=30
            ProxyPassReverse http://127.0.1.1:9001/socket.io
    </Location>

    <Proxy *>
        Options FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Proxy>

    Include /etc/letsencrypt/options-ssl-apache.conf

    SSLCertificateFile /chemin/de/notre/fichier/fullchain.pem
    SSLCertificateKeyFile /chemin/de/notre/fichier/privkey.pem

    ErrorLog ${APACHE_LOG_DIR}/error_pad.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access_pad.log combined

</VirtualHost>
</IfModule>

Configuration d'etherpad

On modifie le fichier de configuration d'etherpad /var/www/etherpad-lite/settings.json :

  • On commente la section nrelative à la base de données "dirty"
    /*
    "dbType": "dirty",
    "dbSettings": {
    "filename": "var/dirty.db"
    },
    */
  • On configure l'accès à la base mysql

    "dbType" : "mysql",
    "dbSettings" : {
    "user":     "bdd_user",
    "host":     "localhost",
    "port":     3306,
    "password": "user_passwd",
    "database": "nom-de-la-base",
    "charset":  "utf8mb4"
    },
  • Pour les autres paramètres, le fichier est assez bien commenté pour savoir à quoi on s'attaque

Test de lancement d'etherpad

On lance etherpad par l'utilisateur dédié :

su -c 'sh /var/www/etherpad-lite/bin/run.sh' etherpad

On vérifie dasn le navigateur si on a quelque chose....

Etherpad en tant que service

Afin de rendre le lancement d'etherpad automatique après reboot du système on peut créer un service. On crée le fichier /etc/systemd/system/etherpad-lite.service

Description=etherpad-lite (real-time collaborative document editing)
After=syslog.target network.target
Requires=mariadb.service

[Service]
Type=simple
User=etherpad
Group=etherpad
Environment=NODE_ENV=production
ExecStart=/var/www/etherpad-lite/bin/run.sh

[Install]
WantedBy=multi-user.target

On active le service au démarrage du système :

systemctl enable etherpad-lite.service

PrivateBin

Source

https://github.com/PrivateBin/PrivateBin

Description

Installation