Juris Tyr



…/…
Chapitre 8 : Installer InvoiceNinja

-> Retour au sommaire

Ce tutoriel vous montrera comment installer InvoiceNinja sur Ubuntu 22.04 avec un serveur Web Apache.

InvoiceNinja est un logiciel de facturation open source et auto-hébergé, une alternative peu coûteuse aux plates-formes de facturation en ligne commerciales.

InvoiceNinja fournit un service de facturation directement hébergé sur son site internet, mais nous allons plutôt héberger nous-même le logiciel…


Fonctionnalités d’InvoiceNinja :

Conditions préalables :

InvoiceNinja nécessite PHP et MySQL/MariaDB. Pour suivre ce didacticiel, vous devez déjà avoir configuré une pile LAMP lors de la phase 2.

Et vous avez également besoin d’un nom de domaine, afin que vos clients puissent voir la facture via votre nom de domaine.

Enfin, il est très important que votre serveur puisse envoyer des e-mails, afin que vos clients puissent recevoir votre facture. Suivez le tutoriel lié ci-dessous pour configurer le relais SMTP sur Ubuntu.

Vous accèderez à InvoiceNinja en tapant l’adresse https://facturation.exemple.com dans la barre d’adresse de votre navigateur puis en vous connectant avec vos identifiants.

Installons maintenant InvoiceNinja.


Étape 1 : Téléchargez le fichier Zip d’installation d’InvoiceNinja

Connectez-vous à votre serveur Ubuntu 22.04 via SSH. Exécutez ensuite la commande suivante pour télécharger la dernière version du fichier zip InvoiceNinja sur votre serveur.

wget https://github.com/invoiceninja/invoiceninja/releases/download/v5.4.9/invoiceninja.zip

Une fois téléchargé, extrayez l’archive dans le répertoire /var/www/ avec unzip.

sudo apt install unzip

sudo mkdir -p /var/www/html/invoiceninja/

sudo unzip invoiceninja.zip -d /var/www/html/invoiceninja/

L’option -d spécifie le répertoire cible. Les fichiers Web InvoiceNinja seront extraits vers /var/www/html/invoiceninja.

Ensuite, nous devons changer le propriétaire de ce répertoire en www-data afin que le serveur Web puisse écrire dans ce répertoire.

sudo chown www-data:www-data /var/www/html/invoiceninja/ -R

Nous devons également modifier l’autorisation du répertoire de stockage.

sudo chmod 755 /var/www/html/invoiceninja/storage/ -R

Étape 2 : Créer une base de données et un utilisateur dans MariaDB

Connectez-vous au serveur de base de données MariaDB avec la commande suivante.

sudo mysql

Créez ensuite une base de données pour Invoice Ninja. Ce tutoriel nomme la base de données invoiceninja. Vous pouvez utiliser le nom de votre choix.

create database invoiceninja;

Créez l’utilisateur de la base de données. Encore une fois, vous pouvez utiliser votre nom préféré pour cet utilisateur. Remplacez votre mot de passe par votre mot de passe préféré.

create user ninja@localhost identified by 'your-password';

Accordez à cet utilisateur tous les privilèges sur la base de données invoiceninja .

grant all privileges on invoiceninja.* to ninja@localhost;

Nettoyer les privilèges et quittez.

flush privileges;

exit;

Étape 3 : Installer les modules PHP

Exécutez les commandes suivantes pour installer les modules PHP requis ou recommandés par InvoiceNinja.

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

sudo apt install php-imagick php8.2 php8.2-mysql php8.2-fpm php8.2-common php8.2-bcmath php8.2-gd php8.2-curl php8.2-zip php8.2-xml php8.2-mbstring php8.2-bz2 php8.2-intl php8.2-gmp

Redémarrez ensuite Apache.

sudo systemctl restart apache2

Étape 4 : Configurer InvoiceNinja

Accédez à la racine Web InvoiceNinja.

cd /var/www/invoiceninja/

Copier le fichier d’exemple « .env ».

sudo cp .env.example .env

Modifiez ce fichier avec un éditeur de texte en ligne de commande comme Nano.

sudo nano .env

Trouvez la ligne suivante.

APP_URL=http://localhost

Remplacez l’URL ‘http://localhost » par quelque chose comme « https://facturation.exemple.com, » afin que vous puissiez accéder à InvoiceNinja en utilisant ce sous-domaine (que vous devez créer ; consulter l’étape 1 de la phase 4).

Modifiez ensuite les détails de connexion à la base de données. Entrez le nom de la base de données, l’utilisateur de la base de données et le mot de passe créés à l’étape 2.

DB_HOST=localhost
DB_DATABASE=invoiceninja
DB_USERNAME=ninja
DB_PASSWORD=ninja_password
DB_PORT=3306

Astuce : Si votre mot de passe contient des caractères spéciaux, vous pouvez utiliser des guillemets comme ceci : DB_PASSWORD= »ninja_password ».

Nous allons ensuite modifier la méthode par laquelle l’application InvoiceNinja gère les fichiers PDF en line. Nous allons le paramétrer pour qu’il utilise SNAPPDF qui est un progiciel plus rapide que celui installé automatiquement pour créer et lire les fichier PDF en ligne (mais qui prend plus de place sur le disque dur).

Trouvez la ligne suivante.

PDF_GENERATOR=hosted_ninja

Remplacez par :

PDF_GENERATOR=snappdf

Enregistrez et fermez le fichier.

Remplacez le propriétaire du dossier par www-data.

sudo chown www-data:www-data /var/www/invoiceninja/.env

Ensuite, exécutez la commande suivante pour générer une clé d’application unique pour votre installation InvoiceNinja.

sudo php8.2 /var/www/invoiceninja/artisan key:generate

Et migrez la base de données.

sudo php8.2 /var/www/invoiceninja/artisan migrate:fresh --seed

Nous allons ensuite paramétrer InvoiceNinja pour qu’il utilise ‘SNAPPDF’.

Exécutez la commande suivante.

sudo -u www-data ./vendor/bin/snappdf download

Étape 5 : Configuration du serveur Web

Créez un fichier d’hôte virtuel pour Invoice Ninja.

sudo nano /etc/apache2/sites-available/invoice-ninja.conf

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur par vos données réelles. N’oubliez pas de définir un enregistrement A pour le nom de domaine. (Notez que la racine Web est définie sur /var/www/html/invoice-ninja/public/, et non /var/www/html/invoice-ninja/)

<VirtualHost *:80>
    ServerName facturation.exemple.com
    DocumentRoot /var/www/html/invoiceninja/public

    <Directory /var/www/html/invoiceninja/public>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log
    CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite invoice-ninja.conf

Nous devons activer le module de réécriture.

sudo a2enmod rewrite

Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Vous pouvez maintenant accéder à la page de l’assistant de configuration d’Invoice Ninja (facturation.exemple.com/setup). Si vous voyez la page Apache par défaut au lieu de l’assistant de configuration, vous devez désactiver l’hôte virtuel par défaut.

sudo a2dissite 000-default.conf

Et redémarrez Apache.

sudo systemctl restart apache2

Avant de saisir des informations dans l’assistant de configuration, nous devons activer HTTPS.

Vous pouvez maintenant accéder à la page de l’assistant de configuration d’Invoice Ninja (facturation.exemple.com/setup). Avant de saisir des informations dans l’assistant de configuration, nous devons activer HTTPS.


Étape 6 : Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt. Exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur le serveur Ubuntu 22.04.

sudo apt install certbot

sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d facturation.exemple.com

Redémarrez le serveur Apache

sudo systemctl restart apache2

Étape 7 : terminer l’installation avec l’assistant de configuration

Accédez maintenant à facturation.exemple.com/setup pour lancer l’assistant de configuration Web. Tout d’abord, vous devez désigner une URL pour votre installation InvoiceNinja (https://facturation.exemple.com).

Cliquez ensuite sur le bouton Tester le PDF . Si cela réussit, vous entrerez alors les informations d’identification de connexion à la base de données.

Cliquez sur le bouton Tester la connexion .

Ensuite, entrez les paramètres SMTP pour vous assurer qu’il peut mettre fin aux factures de vos clients par e-mail. Si vous utilisez le service de relais Brevo SMTP relay service gratuit, saisissez ici vos identifiants Brevo.

Driver: SMTP
Host: smtp-relay.brevo.com
Username: your brevo username
Password: your brevo password
Port: 587
Encryption: STARTTLS

Cliquez sur le bouton Envoyer un e-mail de test pour vérifier si cela fonctionne.

Enfin, créez un compte administrateur.

Après avoir créé l’utilisateur administrateur, vous pouvez vous connecter à InvoiceNinja.


Dépannage (facultatif) :

Si vous rencontrez l’erreur de serveur 500 lorsque vous utilisez InvoiceNinja, veuillez vérifier les journaux sous /var/www/invocieninja/storage/logs/ répertoire. Il s’agit très probablement d’un problème d’autorisation, qui peut être résolu avec :

sudo chown www-data:www-data /var/www/html/invoiceninja/storage/framework/cache/data/ -R
Configurer des tâches cron

Nous devons configurer des tâches Cron pour envoyer des factures récurrentes et des rappels par e-mail. Modifiez le fichier crontab de l’utilisateur www-data.

sudo -u www-data crontab -e

Ajoutez les lignes suivantes à la fin de ce fichier.

#InvoiceNinja
0 8 * * * /usr/bin/php8.2 /var/www/html/invoiceninja/artisan ninja:send-recurring > /dev/null
0 8 * * * /usr/bin/php8.2 /var/www/html/invoiceninja/artisan ninja:send-reminders > /dev/null
* * * * * /usr/bin/php8.2 /var/www/html/invoiceninja/artisan schedule:run >> /dev/null 2>&1

Enregistrez et fermez le fichier. Exécutez la commande suivante pour tester si les tâches Cron s’exécuteront sans erreur.

sudo /usr/bin/php8.2 /var/www/html/invoiceninja/artisan schedule:run

Comment modifier les paramètres SMTP (facultatif) :

Si vous devez modifier les paramètres SMTP, vous devez modifier le fichier .env.

sudo nano /var/www/html/invoiceninja/.env

Modifiez les paramètres suivants, adaptés aux serveurs SMTP nécessitant une authentification.

MAIL_MAILER="smtp"
MAIL_HOST="hostname_of_smtp_server"
MAIL_PORT="587"
MAIL_USERNAME="invoice@example.com"
MAIL_PASSWORD="your_password"
MAIL_ENCRYPTION="tls"
MAIL_FROM_ADDRESS="invoice@example.com"
MAIL_FROM_NAME="Invoice"

Si InvoiceNinja est installé sur votre serveur de messagerie ou si vous avez configuré un relais SMTP avec Brevo, vous devez utiliser les paramètres suivants.

MAIL_MAILER="sendmail"
MAIL_HOST=""
MAIL_PORT=""
MAIL_USERNAME=""
MAIL_PASSWORD=""
MAIL_ENCRYPTION="none"
MAIL_FROM_ADDRESS="invoice@example.com"
MAIL_FROM_NAME="Invoice"

Enregistrez et fermez le fichier. Videz ensuite le cache.

sudo -u www-data /usr/bin/php8.2 /var/www/html/invoiceninja/artisan optimize

Si le cache est vidé, vous verrez les messages suivants dans la sortie de la commande.

Configuration cache cleared!
Configuration cached successfully!
Route cache cleared!
Routes cached successfully!
Files cached successfully!

Vous ne pouvez toujours pas envoyer d’e-mails ? (facultatif) :

Utilisez-vous iRedMail ? iRedMail ne vous permet pas de vous connecter en tant qu’utilisateur unique et d’envoyer des e-mails en tant qu’autre utilisateur. Si vous n’aimez pas cette restriction, vous pouvez désactiver les vérifications sender_login_mismatch dans Postfix.


Comment mettre à niveau Invoice Ninja ? (facultatif) :

Lorsqu’une nouvelle version d’InvoiceNinja est disponible, suivez ces étapes pour effectuer la mise à niveau.

Tout d’abord, sauvegardez la base de données.

sudo mysqldump -u root invoiceninja > invoiceninja.sql

Sauvegardez ensuite les fichiers Web.

sudo tar -cpzvf invoiceninaja.tar.gz /var/www/invoiceninja/

Ensuite, téléchargez le fichier zip InvoiceNinja depuis Github et remplacez le contenu dans /var/www/html/invoice-ninja/, puis installez les dépendances.

cd /var/www/html/invoice-ninja/
sudo chown www-data:www-data /var/www/html/invoiceninja/ -R
sudo -u www-data composer install

Supprimez le fichier .env.

sudo rm /var/www/html/invoiceninja/.env

Ensuite, accédez à https://facturation.exemple.com/setup pour relancer l’assistant de configuration. Le schéma de la base de données sera mis à niveau au cours du processus.


Passer à la phase 9 : Installation de PDF-Signature

L’installation vous semble un peu complexe ou longue à réaliser ?

Consultez nos propositions :

Vous avez un peu de temps et vous souhaitez apprendre comment installer un serveur ?

On continue !


Chapitre 9 : Installer SignaturePDF (24)

-> Retour au sommaire


SignaturePDF est un logiciel web libre permettant de modifier, annoter et signer un PDF. Par contre, ce n’est pas un logiciel pour signer électroniquement un fichier. Pour signer un document ou fichier électroniquement, vous nous recommandons d’utiliser l’app certificate24 sur Nextcloud ou Docusign.


Exemple d’instances de démonstration :

Liste des instances permettant d’utiliser ce logiciel :

Vous accèderez à PDF signature en tapant l’adresse https://pdf.exemple.com dans la barre d’adresse de votre navigateur puis en vous connectant avec vos identifiants.


Etape 1 : Installation de dépendances logicielles sur Debian/Ubuntu :

Installation des progiciels nécessaires :

sudo aptitude install php librsvg2-bin pdftk imagemagick potrace git

Récupération des sources et installation du logiciel :

cd /var/www/html/

sudo git clone https://github.com/24eme/signaturepdf.git

sudo chown www-data:www-data -R /var/www/html/signaturepdf

sudo chomod 755 -R /var/www/html/signaturepdf/public

cd /var/www/html/signaturepdf/

Puis exécuter la commande suivante :

sudo php -S localhost:8000 -t public

Etape 2 : Configuration du fichier Virtualhost serveur apache :

Créez un sous-domaine pdf.exemple.com via l’interface de votre prestataire avec un enregistrement DNS ‘A’ (consulter l’étape 1 du chapitre / de la phase 4 de ce tutoriel si votre prestataire est OVH).

Puis, créer un fichier de configuration Apache.

sudo nano /etc/apache2/sites-available/pdf.conf

Compléter ce fichier par ces lignes de code.

<VirtualHost *:80>
Servername pdf.exemple.com

DocumentRoot /var/www/html/signaturepdf/public

<Directory /var/www/html/signaturepdf/public>
    Require all granted
    FallbackResource /index.php
    php_value max_file_uploads 201
    php_value upload_max_filesize 24M
    php_value post_max_size 24M
</Directory>
</Virtualhost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite pdf.conf

Nous devons activer le module de réécriture.

sudo a2enmod rewrite

Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d pdf.exemple.com

Redémarrez le serveur Apache et PHP.

sudo systemctl restart apache2 php8.2-fpm

connectez vous à l’adresse https://pdf.exemple.com pour utiliser cette application en ligne.


Passer à la phase 10 : Installation de Firefly III…

L’installation vous semble un peu complexe ou longue à réaliser ?

Consultez nos propositions :

Vous avez un peu de temps et vous souhaitez apprendre comment installer un serveur ?

On continue !


Chapitre 10 : Installer Firefly III (Comptabilité) (facultatif)

-> Retour au sommaire

Vous avez toujours voulu avoir une belle vision et un contrôle sur vos finances ? Vous avez maintenant la possibilité de suivre vos finances et de garder un œil sur votre argent sans avoir à télécharger vos dossiers financiers sur le cloud. Firefly III fonctionne sur le principe que si vous savez où va votre argent, vous pouvez l’empêcher d’y aller. Vous avez maintenant une idée de ce qu’est Firefly III.

Pour être clair, « Firefly III » est un gestionnaire (auto-hébergé) pour vos finances et notamment votre trésorerie.

Cela peut vous aider à suivre vos dépenses et vos revenus, afin que vous puissiez dépenser moins et économiser plus. Firefly III prend en charge l’utilisation de budgets, de catégories et de balises. Il peut importer des données à partir de sources externes et dispose de nombreux rapports financiers soignés.


Caractéristiques de Firefly III

Étape 1 : Mettez à jour et mettez à niveau votre système d’exploitation

Une fois dans le terminal de votre nouveau serveur Ubuntu, mettez-le à jour et mettez-le à niveau et installez les outils essentiels que nous utiliserons.

sudo apt update && sudo apt upgrade
sudo apt install git curl -y

Étape 2 : Installer le fichier de configuration pour apache

Comme vous pouvez le deviner, Firefly III nécessite un serveur web, une base de données et comme il est écrit en PHP, nous devrons également l’installer.

2.1. Installer et configurer un serveur Web et PHP :

Installer php-fpm et ses dépendances

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php8.2 php8.2-{cli,zip,gd,fpm,json,mysql,zip,mbstring,curl,xml,bcmath,imap,ldap,intl}

Vérifiez si php-fpm est en cours d’exécution.

sudo systemctl status php8.2-fpm
php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager     Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; vendor preset: enabled)     Active: active (running) since Mon 2023-07-13 13:27:53 EAT; 2min 12s ago       Docs: man:php-fpm8.2(8)    Process: 97804 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/fpm/pool.d/www.conf 82 (code=exi>   Main PID: 97791 (php-fpm8.2)     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"      Tasks: 3 (limit: 1035)     Memory: 10.7M     CGroup: /system.slice/php8.2-fpm.service             ├─97791 php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)             ├─97802 php-fpm: pool www             └─97803 php-fpm: pool www

2.2. Ajouter les paramètres PHP recommandés :

Ouvrez votre fichier ini php-fpm et ajoutez/modifiez les détails ci-dessous. Ils incluent les paramètres de fuseau horaire et de limite de mémoire. Ajoutez votre date.timezone (vers la ligne 955) et modifiez memory_limit (vers la ligne 400) à 1024Mo.

sudo nano /etc/php/8.2/fpm/php.ini

Modifier certaines lignes du fichier ‘/etc/php/8.2/fpm/php.ini’ de la manières suivante :

memory_limit = 1024M
[Date]
date.timezone = Europe/Paris

Enregistrez et fermer le fichier (appuyez simultanément sur les touches ‘Control’ et ‘x’ puis sur les touches ‘Control’ et ‘o’)


2.3. Configurer le serveur Web Apache :

Nous devons apporter quelques modifications aux paramètres par défaut de configuration du serveur Apache.

Créez un fichier d’hôte virtuel apache pour Firefly III.

sudo nano /etc/apache2/sites-available/firefly-iii.conf

Mettez le texte suivant dans le fichier. Remplacez le texte de couleur par vos données réelles (votre nom de domaine). N’oubliez pas de définir un enregistrement DNS A pour le nom de domaine (comptabilite.exemple.com) . (Notez dans le fichier de configuration que la racine Web est définie sur /var/www/html/firefly-iii/public/, et non /var/www/html/firefly-iii/)

<VirtualHost *:80>
    ServerName comptabilite.exemple.com
    DocumentRoot /var/www/html/firefly-iii/public

    <Directory /var/www/html/firefly-iii/public/>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    <Directory /var/www/html/firefly-iii/>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/firefly.error.log
    CustomLog ${APACHE_LOG_DIR}/firefly.access.log combined

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite firefly-iii.conf

Configurans les droits d’accès au server apache sur le dossier :

sudo chown www-data:www-data -R  /var/www/html/firefly-iii
sudo chmod 775 -R /var/www/html/firefly-iii/

Nous devons activer le module de réécriture.

sudo a2enmod rewrite

Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Vous pouvez maintenant accéder à la page de l’assistant de configuration de firefly-III. Si vous voyez la page Apache par défaut au lieu de l’assistant de configuration, vous devez désactiver l’hôte virtuel par défaut.

sudo a2dissite 000-default.conf

Et redémarrez Apache.

sudo systemctl restart apache2

Avant de saisir des informations dans l’assistant de configuration, nous devons activer HTTPS.

2.4. Activer HTTPS :

Pour chiffrer le trafic HTTP de ce nouveau site installé sur votre serveur, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt. Exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur le serveur Ubuntu 22.04.

sudo apt install certbot
sudo apt install python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d comptabilite.exemple.com

Redémarrez apache et PHP

sudo systemctl restart apache2 php8.2-fpm
2.5 Configurer le serveur de base de données MariaDB :

Nous allons utiliser MariaDB pour cette configuration.

Une fois la base de données installée, l’étape suivante consiste à créer une base de données et un utilisateur pour Firefly III. Allons donc de l’avant et faisons cela comme indiqué ci-dessous. Vous êtes libre de nommer votre base de données et votre utilisateur différemment et assurez-vous d’utiliser un mot de passe sûr.

$ mysql -u root -p

CREATE DATABASE firefly_database;
CREATE USER 'fireflyuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON firefly_database. * TO 'fireflyuser'@'localhost';
FLUSH PRIVILEGES;
exit;

C’était facile et incroyablement rapide !


Étape 3 : Installer PHP Composer

Le logiciel ‘Composer’ est nécessaire pour installer les dépendances de Firefly. Procédez comme suit pour configurer composer

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Testez si composer est installé avec succès en exécutant la commande composer

$ composer -V
Composer version 1.10.8 2020-06-24 21:23:30

Étape 4 : Installez Firefly III

Une fois composer installé, accédez au répertoire qui contiendra les fichiers racine tels que configurés dans Apache ci-dessus et exécutez la commande composer ci-dessous.

cd /var/www/html/
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii 5.2.8  ##This might take some time to complete!

Dans le même répertoire, fixez les droits d’accès des nouveaux fichiers

sudo chown -R www-data:www-data firefly-iii
sudo chmod -R 775 firefly-iii/storage

Étape 5 : Configurer Firefly III

Dans le répertoire firefly-iii, vous trouverez un fichier .env. Ouvrez ce fichier à l’aide de votre éditeur préféré et apportez les modifications suivantes liées à la base de données conformément aux instructions qui y sont fournies. La base de données et le nom d’utilisateur sont les mêmes que ceux que nous avons définis à l’étape 2.

sudo nano /var/www/html/firefly-iii/.env

Modifier le fichier .env avec les identifiants de la base de données précédemment crée.

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=firefly_database 
DB_USERNAME=fireflyuser 
DB_PASSWORD=password

Notez que le fichier .env a également des paramètres de messagerie si vous souhaitez que Firefly III vous envoie un courrier électronique.


Initialiser la base de données :

Cette étape est très importante, car Firefly III a besoin d’une base de données pour fonctionner et elle vous dira si votre configuration est correcte ou non.
Exécutez la commande suivante dans le répertoire Firefly III.

cd /var/www/html/firefly-iii

sudo php artisan migrate:refresh --seed
sudo php artisan firefly-iii:upgrade-database
sudo php artisan passport:install

Configurer logrotate :

Logrotate vous aidera à gérer efficacement les journaux en vous assurant qu’ils sont bien compressés et réguliers.

sudo nano /etc/logrotate.d/firefly-iii

##Example config:

/opt/firefly-iii/storage/logs/*.log
{
    weekly
    missingok
    rotate 2
    compress
    notifempty
    sharedscripts
    maxage 60
}

Étape 6 : Accéder à Firefly III

Vous pouvez désormais accéder à l’interface Web de Firefly III en accédant au site http://comptabilite.exemple.com/.

Vous devriez voir un écran de connexion, mais vous ne pouvez pas encore vous connecter.

Cliquez sur « Enregistrer un nouveau compte » et remplissez le formulaire.

Le mot de passe doit comporter au moins 16 caractères….

Vous serez connecté automatiquement. Suivez les instructions et le tour est joué !

Vous êtes maintenant prêt à créer des budgets, à suivre vos dépenses, à suivre vos économies….


Etape 7 : Installation de l’importateur de données (facultatif) :

7.1. Exécutez la commande principale d’installation :

L’installation du module d’import de données (des rélévés bancaires en automatique) n’est possible qu’une fois que vous avez installé et configuré FireFly II pour votre entreprise ou votre cabinet d’avocats.

Vous accèderez au module d’import de données en tapant l’adresse https://import.exemple.com dans la barre d’adresse de votre navigateur.

L’hypothèse est que vous installerez l’importateur de données dans /var/www.

Allez dans le répertoire d’installation et exécuter la commande suivante :.

cd /var/www && \
composer create-project firefly-iii/data-importer \
    --no-dev --prefer-dist data-importer 1.3.2

Fixez les droits d’accès au dossier data-importer :

sudo chown -R www-data:www-data data-importer
sudo chmod -R 775 data-importer/storage

Conseil de dépannage : consulter le fichier de configuration en cas de problème (facultatif) :

Dans le répertoire/ dossier ‘data-importer’, vous trouverez un fichier .env. Il y a des instructions dans ce fichier .env en cas de difficulté de fonctionnement du module d’import. Si vous ne trouvez pas ce fichier, copiez le fichier .env.example vers un fichier nommé .env. avec les commandes suivantes :

sudo cp .env.exemple .env

Editez ce fichier .env avec la commande suivante :

sudo nano .env

Si vous rencontrez des diffcultés pour vous connecter au site https://import.exemple.com par la suite ou pour le faire fonctionner, décommentez la ligne ‘TRUSTED_PROXY’ présente dans ce fichier .env.

Enregistrez et fermez le fichier.


7.2. Créez un fichier Virtualhost :

Créez un fichier d’hôte virtuel pour le serveur apache pour renvoyer l’adresse https://import.exemple.com vers l’application d’import automatique de relevés bancaires.

N’oubliez pas de définir préalablement un enregistrement DNS A pour le nom de domaine ‘import.exemple.com’ – consultez l’étape 1 de la phase 4 de ce tutoriel).

Exécutez la commande suivante :

sudo nano /etc/apache2/sites-available/data-importer.conf

Copier – Collez le texte suivant dans le fichier. Remplacez le texte de couleur par vos données réelles.

<VirtualHost *:80>
    ServerName import.exemple.com
    DocumentRoot /var/www/data-importer/

    <Directory /var/www/data-importer>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/data-importer.error.log
    CustomLog ${APACHE_LOG_DIR}/data-importer.access.log combined

</VirtualHost>

Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.

sudo a2ensite data-importer.conf

Nous devons activer le module de réécriture.

sudo a2enmod rewrite

Redémarrez Apache pour que les modifications prennent effet.

sudo systemctl restart apache2

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d comptabilite.exemple.com

Redémarrez apache et PHP

sudo systemctl restart apache2 php8.2-fpm

7.3. Accédez puis exécutez l’importateur de données :

7.3.1. Vous devez désormais accéder à l’importateur de données en vous connectant à l’adresse :  https://import.exemple.com

La page suivante s’affiche :

7.3.2. Créez un compte sur le site internet de Nordigen (devenu « Gocardless ») pour pouvoir ensuite importer vos relevés bancaires dans Firefly-III.

7.3.3. Une fois que votre compte sur Nordigen est crée, enregistrez les codes de connection puis poursuivez les opération en revenant sur le site internet https://import.exemple.com puis en cliquant sur le bouton « Import_from_Nordigen ».

Vous devrez probalement vous connecter à votre compte bancaire via l’application mobile de votre banque pour autoriser la connection via Nordigen.

7.3.4. Une fois l’opération validée, cliquez sur le bouton Next.

7.3.5. Sélectionnez votre Pays, puis votre banque puis cliquez sur le bouton Next.

7.3.6. Puis cliquez sur le bouton J’accepte.

7.3.7 Autorisez l’accès via l’application mobile de la banque. Validez l’opération.

7.3.8. Sélectionner les comptes à transférer, cocher la case ‘Map data puis cliquer sur le bouton Submit pour importer vos derniers relevés bancaires.

7.3.9. Cliquez sur le bouton ‘Start_Job’ pour importer vos derniers relevés bancaire.

7.3.10. Vous pouvez ensuite vous connecter à l’adresse de l’application FireFly II : https://comptabilite.exemple.com pour consulter vos comptes et votre trésorerie mise à jour.


Passer à la phase 11 : Installation de WordPress

L’installation vous semble un peu complexe ou longue à réaliser ?

Consultez nos propositions :

Vous avez un peu de temps et vous souhaitez apprendre comment installer un serveur ?

On continue !


Chapitre 11 : Installer WordPress

-> Retour au sommaire

Ce tutoriel va vous montrer comment installer WordPress sur Ubuntu 22.04 avec Apache,

WordPress est le CMS (Content Management System) le plus populaire au monde. Il s’agit d’un logiciel qui vous permet de créer et modifier un site internet hébergé sur un serveur.

Par exemple, le site https://juris-tyr.com que vous êtes en train de consulter a été créé et est édité grâce à WordPress. Les principaux avantages d’utiliser WordPress est qu’il vous permet d’éditer un site internet sans connaitre une seule ligne de code informatique, ce logiciel vous permet de choisir et d’installer des thèmes / modèles de sites en fonction de votre activité puis de compléter les blocs de texte du modèle (les fameux sites vitrine vendus en général entre 2000 et 4000 € par certains prestataires…), Wprdpress permet également d’installer sur votre site des modules complémentaires (par exemple si vous exercez la profession d’avocat en France, un module « Woocommerce » ou « Prestashop » pour vendre des modèles de documents depuis votre site internet… ou des liens vers le système de consultations juridiques du CNB pour proposer directement depuis une page de votre site internet des consultations juridiques à vos clients).

On estime que plus d’un tiers des sites Web d’aujourd’hui sont alimentés par WordPress qui a été intégré au référentiel Ubuntu depuis sa version 20.04 et WordPress fonctionne parfaitement avec…

Il existe d’autres CMS tout aussi performants que WordPress, telle que par exemple Drupal. Nous avons sélectionné WordPress en raison de sa popularité et de sa facilité d’installation.

Ce tutoriel détaille l’installation de WordPress sur un serveur ou un VPS mais pas son utilisation (qui est relativement simple, à défaut reportez vous vers les nombreux tutoriels sur WordPress en effectuant une recherche sur internet).

Vous accèderez à l’interface de configuration et d’édition de votre site WordPress en tapant l’adresse https://exemple.com/wp-login dans la barre d’adresse de votre navigateur puis en vous connectant avec vos identifiants.


Prérequis :

1. Pour suivre ce didacticiel, vous avez besoin d’un système d’exploitation Ubuntu 22.04 exécuté sur un serveur distant.

2. Vous avez également besoin d’un nom de domaine (exemple.com), afin que les visiteurs puissent saisir un nom de domaine dans la barre d’adresse du navigateur Web pour accéder à votre site Web.


Étape 1 : Télécharger WordPress

Connectez vous avec le logiciel Putty à votre serveur et mettez à jour les logiciels.

sudo apt update && sudo apt upgrade

Aller sur la page de télécharement de  wordpress et téléchargez l’archive zip. Vous pouvez acquérir le lien de téléchargement direct en cliquant avec le bouton droit sur le bouton de téléchargement et en sélectionnant copier l’emplacement du lien.

Ensuite, sur la ligne de commande, tapez wget suivi du lien de téléchargement direct pour télécharger WordPress.

wget https://wordpress.org/latest.zip

Ensuite, extrayez l’archive dans le répertoire /var/www/ avec unzip.

sudo apt install unzip

sudo mkdir -p /var/www/

sudo unzip latest.zip -d /var/www/

L’option -d spécifie le répertoire cible. Les fichiers Web WordPress seront extraits vers /var/www/wordpress. Nous pouvons renommer ce répertoire comme ci-dessous, il nous est donc facile d’identifier chaque répertoire. Remplacez example.com par votre vrai nom de domaine.

sudo mv /var/www/wordpress /var/www/example.com

Étape 2 : Créer une base de données et un utilisateur pour le site WordPress

Connectez-vous au shell MariaDB en tant que root avec la commande suivante.

sudo mariadb -u root

ou

sudo mysql -u root

Une fois connecté, créez une base de données pour WordPress à l’aide de la commande suivante. On l’a nommé wordpress, mais vous pouvez utiliser le nom de votre choix, comme le nom de votre site. (N’oubliez pas le point-virgule.)

create database wordpress;

Entrez ensuite la commande ci-dessous pour créer un utilisateur de base de données pour WordPress. Cette commande accorde également tous les privilèges de la base de données WordPress à l’utilisateur. Remplacez wpuser et votre-mot de passe par votre nom d’utilisateur et votre mot de passe préférés.

grant all privileges on wordpress.* to wpuser@localhost identified by 'your-password';

Videz la table des privilèges pour que les modifications prennent effet, puis quittez le shell MariaDB.

flush privileges;

exit;

Étape 3 : Configurez WordPress

Accédez à votre répertoire WordPress.

cd /var/www/example.com/

Copiez l’exemple de fichier de configuration et renommez-le en wp-config.php.

sudo cp wp-config-sample.php wp-config.php

Modifiez maintenant le nouveau fichier de configuration avec un éditeur de texte en ligne de commande comme Nano.

sudo nano wp-config.php

Recherchez les lignes suivantes et remplacez les textes rouges par le nom de la base de données, le nom d’utilisateur et le mot de passe que vous avez créés à l’étape précédente.

/** The name of the database for WordPress */
define('DB_NAME', 'database_name_here');

/** MySQL database username */
define('DB_USER', 'username_here');

/** MySQL database password */
define('DB_PASSWORD', 'password_here');

Enregistrez et fermez le fichier. Pour enregistrer le fichier dans l’éditeur de texte Nano, appuyez sur Ctrl+O, puis appuyez sur Entrée pour confirmer. Ensuite, appuyez sur Ctrl+X pour quitter.

Nous devons également définir l’utilisateur Apache (www-data) comme propriétaire du répertoire du site WordPress à l’aide de la commande suivante.

sudo chown www-data:www-data /var/www/example.com/ -R

Étape 4 : Créer un fichier Apache Virtual Host pour WordPress

Exécutez la commande suivante pour créer un fichier d’hôte virtuel pour votre site WordPress dans le répertoire /etc/apache2/sites-available/ .

sudo nano /etc/apache2/sites-available/example.com.conf

Mettez les textes suivants dans le fichier. Remplacez les textes rouges par votre propre nom de domaine. N’oubliez pas de créer des enregistrements A pour votre nom de domaine dans votre gestionnaire DNS.

<VirtualHost *:80>       
        ServerName www.example.com
        ServerAlias example.com

        DocumentRoot /var/www/example.com

        #This enables .htaccess file, which is needed for WordPress Permalink to work. 
        <Directory "/var/www/example.com">
             AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/example.com.error.log
        CustomLog ${APACHE_LOG_DIR}/example.com.access.log combined
</VirtualHost>

Enregistrez et fermez le fichier. Testez ensuite les configurations.

sudo apache2ctl configtest

Si vous voyez « Syntaxe OK », activez cet hôte virtuel.

sudo a2ensite example.com.conf

Et rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Définissez un enregistrement A correct pour votre nom de domaine, puis saisissez votre nom de domaine dans la barre d’adresse du navigateur.

example.com

ou

example.com/wp-admin/install.php

Vous verrez l’assistant d’installation de WordPress. Sélectionnez une langue.

Si l’assistant d’installation ne s’affiche pas, vous devez probablement installer certaines extensions PHP8.

sudo apt install php8.2-mbstring php8.2-xml php8.2-mysql  php8.2-gd php8.2-bcmath php8.2-json php8.2-cli php8.2-curl php8.2-zip

Ensuite, rechargez Apache et l’assistant devrait maintenant s’afficher.

sudo systemctl reload apache2

Avant de saisir vos informations sensibles dans l’assistant de configuration, il est recommandé d’activer HTTPS pour empêcher le détournement de trafic.


Étape 5 : Activer HTTPS

Pour chiffrer le trafic HTTP, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let’s Encrypt. Exécutez la commande suivante pour installer le client Let’s Encrypt (certbot) sur le serveur Ubuntu 22.04.

sudo apt install certbot python3-certbot-apache

Et exécutez cette commande pour obtenir et installer le certificat TLS.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email you@example.com -d yourdomain.com,www.yourdomain.com

Le certificat devrait maintenant être obtenu et installé automatiquement.

Maintenant, si vous rechargez l’assistant de configuration WordPress, vous pouvez voir que HTTP est automatiquement redirigé vers la connexion HTTPS.


Étape 6 : terminer l’installation avec l’assistant de configuration

Créez un compte administrateur et cliquez sur le bouton Installer WordPress .

Et maintenant, votre nouveau site WordPress est installé.


Rediriger le WWW vers le non-WWW (ou vice-versa) (facultatif) :

Nous avons déjà activé la redirection HTTP vers HTTPS, il ne reste plus qu’à rediriger www vers non-www, ou vice versa. Si vous utilisez WordPress, c’est très simple. Accédez simplement à Tableau de bord WordPress > Paramètres > Général et définissez votre version préférée (www ou non-www) dans Adresse WordPress et Adresse du site. Assurez-vous d’inclure le préfixe https://.


Correction de la redirection Double 301 (facultatif) :

Nous définissons la version de domaine préférée dans les champs Adresse WordPress et Adresse du site . Cependant, il y a un double problème de redirection 301. Tout d’abord, le serveur Apache redirige HTTP vers HTTPS, puis WordPress redirige vers le domaine www ou non-www.

Certains diront que vous pouvez perdre du jus de lien SEO lorsque vous effectuez une double redirection 301. Si cela vous inquiète, vous pouvez utiliser la méthode ci-dessous pour que toutes les versions de domaine aillent directement à la destination finale, il y aura donc une seule redirection 301.

Modifiez votre fichier d’hôte virtuel. (Pas l’hôte virtuel SSL)

sudo nano /etc/apache2/sites-enabled/example.com.conf

Le client CertBot a ajouté les lignes suivantes au fichier pour rediriger HTTP vers HTTPS.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

Pour rediriger vers un domaine www ou non-www, vous devez modifier la dernière ligne. Remplacez %{SERVER_NAME} par la version de votre domaine préféré, comme ci-dessous. (domaine www)

RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si vous préférez un domaine autre que www, remplacez-le par ce qui suit.

RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Ensuite, enregistrez et fermez le fichier. Nous devrons également modifier le fichier de configuration du serveur Apache.

sudo nano /etc/apache2/sites-enabled/example.com-le-ssl.conf

Ajoutez les lignes suivantes au-dessus de la balise de fermeture </VirtualHost> pour rediriger le domaine non-www vers le domaine www.

RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.example.com%{REQUEST_URI} [END,NE,R=permanent]

Si vous souhaitez rediriger www vers un domaine non www, ajoutez plutôt les lignes suivantes.

RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [END,NE,R=permanent]

Enregistrez et fermez le fichier. Rechargez le service Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Pour être plus clair, voici une capture d’écran du fichier d’hôte virtuel Apache et du fichier d’hôte virtuel SSL pour rediriger le domaine non-www vers le domaine www.

Apache SSL Virtual Host File

Assurez-vous de définir votre version de domaine préférée dans l’adresse WordPress et l’adresse du site avant de modifier les fichiers de l’hôte virtuel Apache. Si les paramètres de WordPress contredisent la configuration d’Apache, votre site se retrouvera dans une boucle de redirection.


Renouvellement automatique du certificat TLS :

Pour renouveler automatiquement le certificat Let’s Encrypt, modifiez simplement le fichier crontab de l’utilisateur root.

sudo crontab -e

Ajoutez ensuite la ligne suivante en bas.

@daily certbot renew --quiet && systemctl reload apache2

Le rechargement d’Apache est nécessaire pour qu’il présente le nouveau certificat aux clients.


Comment envoyer des e-mails dans WordPress en installant un module spécifique (facultatif) :

Votre site WordPress doit envoyer des e-mails tels que des e-mails d’enregistrement de compte, des e-mails de réinitialisation de mot de passe, des e-mails de notification de commentaires, etc. Au lieu d’utiliser des solutions tierces coûteuses comme Gsuite pour créer des adresses e-mail professionnelles pour votre site Web, vous pouvez suivre ce tutoriel iRedMail créez votre propre serveur de messagerie avec votre propre nom de domaine, afin que vous puissiez avoir un nombre illimité de boîtes aux lettres et envoyer des e-mails illimités sans vous ruiner.

Notez que c’est une bonne pratique d’installer le serveur de messagerie et WordPress sur deux serveurs privés virtuels différents car vous ne voulez pas que le serveur de messagerie ralentisse la vitesse de votre site WordPress, et le serveur de messagerie divulguera l’adresse IP de votre site WordPress s’ils sont sur le même serveur privé virtuel, ce qui signifie que les pirates peuvent contourner tout CDN (réseau de diffusion de contenu) que vous utilisez et lancer une attaque DDoS directement sur votre serveur d’origine.

Une fois que votre serveur de messagerie est opérationnel, vous pouvez installer un plugin SMTP dans WordPress, afin qu’il puisse se connecter à votre serveur de messagerie et envoyer des e-mails. Accédez à votre tableau de bord WordPress -> Plug-ins, cliquez sur Ajouter un nouveau pour installer un nouveau plug-in.

Saisissez ensuite WP Mail SMTP dans le champ de recherche. Installez et activez le plug-in WP Mail SMTP by WPForms.

Rechargez la page Web du tableau de bord WordPress, vous verrez WP Mail SMTP dans la barre de menu de gauche. Cliquez dessus et sélectionnez Paramètres.

Ensuite, faites défiler jusqu’à la section Mailer. Par défaut, le mailer PHP est sélectionné. Nous devons le remplacer par Autre SMTP.

Faites défiler vers le bas et vous devrez entrer les paramètres SMTP.

Après avoir enregistré les paramètres, vous pouvez tester l’envoi d’e-mails en vous déconnectant du tableau de bord WordPress et cliquer sur le lien perdu votre mot de passe pour envoyer un e-mail de réinitialisation du mot de passe.


Passer à la phase 12 : Installation de Jitsi Meet (Visioconférence)

L’installation vous semble un peu complexe ou longue à réaliser ?

Consultez nos propositions :

Vous avez un peu de temps et vous souhaitez apprendre comment installer un serveur ?

On continue !


Chapitre 12 – Installer Jitsi Meet

Ce tutoriel va vous montrer comment installer Jitsi Meet sur le serveur Ubuntu 22.04. Jitsi Meet est un logiciel de visioconférence open source gratuit qui fonctionne sous Linux, macOS, Windows, iOS et Android. Si vous ne faites pas confiance à Zoom ou à Microsoft Teams ou si vous ne voulez plus recevoir des publicités ayant un lien avec vos conversations en visioconférence, vous pouvez exécuter votre propre plate-forme de visioconférence sur votre propre serveur ou VPS.

Vous accèderez à Jitsi Meet en tapant l’adresse https://visio.exemple.com dans la barre d’adresse de votre navigateur.


Caractéristiques de Jitsi Meet :

Étape 1 : Installez Jitsi Meet à partir du référentiel de packages officiel

Jitsi Meet n’est pas inclus dans le référentiel Ubuntu par défaut. Nous pouvons l’installer à partir du référentiel officiel de packages Jitsi, qui contient également plusieurs autres packages logiciels utiles. Connectez-vous à votre serveur via SSH, puis exécutez la commande suivante pour ajouter le référentiel Jitsi officiel.

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

Importez la clé publique Jitsi afin que le gestionnaire de packages APT puisse vérifier l’intégrité des packages téléchargés depuis ce référentiel.

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

Étant donné que le référentiel Jitsi nécessite une connexion HTTPS, nous devons donc installer le package apt-transport-https pour permettre à APT d’établir une connexion HTTPS au référentiel Jitsi.

sudo apt install apt-transport-https

Ensuite, mettez à jour l’index des packages locaux et installez Jitsi Meet sur Ubuntu.

sudo apt update sudo apt install jitsi-meet

Lors de l’installation, vous devez saisir un nom d’hôte pour votre instance Jitsi. Il s’agit du nom d’hôte qui apparaîtra dans la barre d’adresse du navigateur Web lorsque les participants rejoindront votre vidéoconférence. Vous pouvez utiliser un nom d’hôte descriptif tel que visio.exemple.com ou meet.linuxbabe.com comme dans l’exemple.

install-jitsi-meet-on-ubuntu-20.04

Dans l’écran suivant, vous pouvez choisir de générer un nouveau certificat TLS auto-signé, afin de pouvoir obtenir et installer ultérieurement un certificat Let’s Encrypt fiable.

jitsi-meet-web-config-ssl-certificate

Le processus d’installation configurera certains paramètres du noyau Linux, qui sont enregistrés dans le fichier /etc/sysctl.d/20-jvb-udp-buffers.conf. Une fois l’installation terminée, Jitsi Meet démarrera automatiquement. Vous pouvez vérifier son statut avec : systemctl status jitsi-videobridge2

Résultat :

jitsi-videobridge2.service - Jitsi Videobridge Loaded: loaded (/lib/systemd/system/jitsi-videobridge2.service; enabled; vendor preset: enabled) 
Active: active (running) since Fri 2022-07-15 19:34:00 HKT; 41s ago Process: 22568 ExecStartPost=/bin/bash -c echo $MAINPID > /var/run/jitsi-videobridge/jitsi-videobridg> Main PID: 22567 (java) Tasks: 56 (limit: 65000)
Memory: 224.3M CPU: 17.815s CGroup: /system.slice/jitsi-videobridge2.service

Astuce : si la commande ci-dessus ne se termine pas immédiatement, vous pouvez appuyer sur la touche Q pour la quitter.

Le package jitsi-meet installe également d’autres packages en tant que dépendances, tels que


Étape 2 : Installer le serveur Coturn

Coturn est un serveur TURN et STUN open source gratuit pour la VoIP. Jitsi n’installe pas automatiquement Cotorn sur Ubuntu 22.04. Nous devons l’installer manuellement.

Téléchargez le package deb Coturn.

sudo wget http://mirrors.edge.kernel.org/ubuntu/pool/universe/c/coturn/coturn_4.5.2-3.1_amd64.deb

Installez-le avec apt.

sudo apt install ./coturn_4.5.2-3.1_amd64.deb

ou si vous utiliser un raspberry ou un orange pi :

sudo apt install ./coturn_4.5.2-3.1_arm64.deb

Installez le package jitsi-meet-turnserver.

sudo apt install jitsi-meet-turnserver

Lors de l’installation, Jitsi configurera automatiquement le serveur coturn (/etc/turnserver.conf).


Étape 3 : Ouvrir les ports dans le pare-feu

Jitsi Meet écoute sur plusieurs ports UDP. Pour permettre aux participants de rejoindre une vidéoconférence à partir d’un navigateur Web, vous devez ouvrir les ports TCP 80 et 443. Et pour transférer la vidéo sur le réseau, ouvrez le port UDP 10000 et le port TCP 5349.

Le serveur Coturn doit également ouvrir l’UDP 3478. port.

Si vous utilisez le pare-feu UFW, exécutez la commande suivante pour ouvrir ces ports.

sudo ufw allow 22,80,443,5349/tcp 
sudo ufw allow 10000,3478/udp

Étape 4 : Obtenez un certificat TLS Let’s Encrypt de confiance

Accédez à votre service d’hébergement DNS (généralement votre registraire de domaine) pour créer un enregistrement DNS A pour votre nom d’hôte Jitsi (meet.example.com). Exécutez ensuite le script suivant pour obtenir un certificat TLS Let’s Encrypt de confiance :

sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Entrez votre adresse e-mail pour recevoir des notifications importantes sur votre compte. Ensuite, il installera certbot et obtiendra le certificat TLS.

jitsi-meet-https-letsencrypt-ubuntu-22.04.

Si tout va bien, vous verrez le message suivant, indiquant que le certificat TLS a été obtenu et installé avec succès.

jitsi meet https letsencrypt certbot

Notez que ce script utilise le défi http-01, ce qui signifie que votre serveur Web Apache (ou Nginx) doit écouter sur le port 80 de l’adresse IP publique. Si votre environnement de serveur ne prend pas en charge le défi http-01 , vous ne devez pas exécuter le script ci-dessus. Vous devez utiliser d’autres types de configuration. Dans mon cas, j’utilise le paramètre DNS suivant .

sudo certbot --agree-tos -a dns-cloudflare -i apache --redirect --hsts --staple-ocsp --email contact@exemple.com -d visio.exemple.com

Explication:

Si vous obtenez le certificat TLS en exécutant la commande certbot, vous devez alors mettre à jour le certificat TLS et le fichier de clé dans :

Assurez-vous que les utilisateurs prosody, jicofo et jvb peuvent lire les fichiers de certificat TLS.

sudo apt install acl 
sudo setfacl -R -m u:prosody:rx /etc/letsencrypt/live /etc/letsencrypt/archive/ 
sudo setfacl -R -m u:jicofo:rx /etc/letsencrypt/live /etc/letsencrypt/archive/ 
sudo setfacl -R -m u:jvb:rx /etc/letsencrypt/live /etc/letsencrypt/archive/

N’oubliez pas de redémarrer ces services.

sudo systemctl restart apache2 coturn prosody jitsi-videobridge2 jicofo

Étape 5 : Activer HTTP2

HTTP2 peut améliorer la vitesse de chargement des pages Web. Pour activer HTTP2 dans Apache2, modifiez le fichier de configuration de l’hôte virtuel.

sudo nano /etc/apache2/sites-enabled/visio.example.com.conf

Ajoutez la ligne suivante : « Protocols h2 http/1.1 » à l’endroit suivant du fichier de configuration :

<VirtualHost *:80>         
Protocols h2 http/1.1
DocumentRoot .../...
</VirtualHost>

Enregistrez et fermez le fichier. Relancez ensuite Apache pour que la modification prenne effet.

sudo systemctl restart apache2

Étape 6 : démarrer une nouvelle réunion en ligne

Visitez maintenant le site internet : https://visio.exemple.com et vous pourrez démarrer une conférence. Pour transférer de l’audio, vous devez autoriser le navigateur Web à utiliser votre microphone. Et pour transférer une vidéo, vous devez autoriser le navigateur Web à accéder à votre caméra.

Jitsi-meet-self-hosted online meeting

Donnez un nom à votre réunion et cliquez sur le bouton  »Start meeting ».

Une fois la réunion démarrée, vous pouvez éventuellement choisir de définir un mot de passe pour votre réunion.


Conseils de dépannage (facultatif) :

Si vous rencontrez des erreurs, vous pouvez consulter le journal des erreurs pour découvrir ce qui ne va pas.

Vous pouvez également consulter les journaux des services systemd.

sudo journalctl -eu jitsi-videobridge2 
sudo journalctl -eu prosody
sudo journalctl -eu jicofo sudo journalctl -eu coturn

Par exemple, vous pouvez voir l’erreur suivante dans les journaux du journal Prosody.

prosody[71580]: portmanager: 
Error binding encrypted port for https:
No certificate present in SSL/TLS configuration for https port 5281 prosody[71580]: portmanager:
Error binding encrypted port for https:
No certificate present in SSL/TLS configuration for https port 5281

Vous devez modifier le fichier /etc/prosody/conf.d/visio.exemple.com.cfg.lua.

sudo nano /etc/prosody/conf.d/visio.exemple.com.cfg.lua

Trouvez les lignes suivantes.

ssl = { protocol = "tlsv1_2+"; ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; }

Ajoutez le certificat TLS et le fichier de clé.

ssl = { protocol = "tlsv1_2+"; ciphers = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384"; certificate = "/etc/letsencrypt/live/visio.exemple.com/fullchain.pem"; key = "/etc/letsencrypt/live/visio.exemple.com/privkey.pem"; }

Enregistrez et fermez le fichier. Redémarrez ensuite Prosody.

sudo systemctl restart prosody

Astuce : Certaines personnes oublient de remplacer visio.exemple.com par leur véritable nom d’hôte Jisti Meet, ce qui peut également provoquer des erreurs.


Étape 7 : Configurer l’authentification de l’utilisateur (facultatif) :

Par défaut, n’importe qui peut accéder à votre instance Jitsi Meet, créer une salle et démarrer une réunion.
Vous ne voulez peut être pas que n’importe qui lance une visio depuis votre serveur en se connectant à l’adresse : visio.exemple.com.

Le cas échéant, pour configurer l’authentification des utilisateurs, modifiez le fichier de configuration Prosody.

sudo nano /etc/prosody/conf.d/visio.exemple.com.cfg.lua

Trouvez la ligne suivante.

authentication = "anonymous"

Modifiez-le comme suit, ce qui obligera l’utilisateur à saisir son nom d’utilisateur et son mot de passe pour démarrer une conférence.

authentication = "internal_hashed"

Cependant, nous ne voulons pas que les participants saisissent leur nom d’utilisateur et leur mot de passe lorsqu’ils rejoignent la conférence, nous devons donc créer une connexion anonyme pour les invités, en ajoutant les lignes suivantes à la fin de ce fichier. Notez que vous n’avez pas besoin de créer un enregistrement DNS A pour guest.visio.exemple.com.

VirtualHost "guest.visio.exemple.com" authentication = "anonymous" c2s_require_encryption = false
jitsi meet prosody user authentication

Enregistrez et fermez le fichier.

Ensuite, modifiez le fichier de configuration Jitsi Meet.

sudo nano /etc/jitsi/meet/visio.exemple.com-config.js

Recherchez la ligne suivante,

//domaine anonyme : 'guest.exemple.com',

Supprimez les doubles barres obliques et modifiez le domaine invité.
Remplacez visio.exemple.com par votre vrai nom d’hôte Jitsi Meet.

anonymousdomain: 'guest.visio.exemple.com',

Enregistrez et fermez le fichier.
Modifiez ensuite le fichier de configuration Jicofo.

sudo nano /etc/jitsi/jicofo/jicofo.conf

Ajoutez les lignes suivantes dans ce fichier.

authentication: { enabled: true type: XMPP login-url: visio.exemple.com }
Jisti Meet enable authentication

Enregistrez et fermez le fichier.

Redémarrez les services systemd pour que les modifications prennent effet.

sudo systemctl restart jitsi-videobridge2 prosody jicofo

Pour créer des comptes d’utilisateurs dans Jisi Meet, exécutez la commande suivante. Vous serez invité à saisir un mot de passe pour le nouvel utilisateur.

sudo prosodyctl register username visio.exemple.com

Si vous rencontrez cette erreur : Création/modification de compte non prise en charge, c’est probablement parce que le paramètre d’authentification est toujours défini sur anonyme ou que le nom d’hôte virtuel est incorrect.

Désormais, si vous créez une salle dans Jitsi Meet, vous devez cliquer sur le bouton Je suis l’hôte .

jitsi meet waiting for the host

Saisissez ensuite un nom d’utilisateur et un mot de passe.

jitsi meet user authentication

Configurer Jigasi pour les appels entrants ou sortants par téléphone (facultatif) :

Jitsi propose une interface de téléphonie qui permet aux utilisateurs de participer à une conférence ou de passer des appels de rappel. Installez le package jigasi (passerelle Jitsi pour SIP).

sudo apt install jigasi

Lors de l’installation, vous devrez saisir votre nom d’utilisateur et votre mot de passe SIP.

Si vous n’en avez pas, vous pouvez créer un compte SIP gratuit sur OnSIP.com.

jitsi meet jigasi SIP gateway

Si vous avez configuré l’authentification utilisateur à l’étape 6, vous devez alors modifier le fichier de configuration Jigasi.

sudo nano /etc/jitsi/jigasi/sip-communicator.properties

Trouvez les lignes suivantes.

# org.jitsi.jigasi.xmpp.acc.USER_ID=SOME_USER@SOME_DOMAIN 
# org.jitsi.jigasi.xmpp.acc.PASS=SOME_PASS
# org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

Décommentez-les et saisissez un compte et un mot de passe que vous avez créés à l’étape 6.

org.jitsi.jigasi.xmpp.acc.USER_ID=user1@visio.exemple.com 
org.jitsi.jigasi.xmpp.acc.PASS=user1_password
org.jitsi.jigasi.xmpp.acc.ANONYMOUS_AUTH=false

Enregistrez et fermez le fichier. Redémarrez le service jigasi systemd.

sudo systemctl status jigasi

Facultatif : configurer Coturn

Si vous voyez le message suivant lors de l’installation de Jitsi Meet, vous devez configurer Coturn pour qu’il fonctionne correctement.

Warning! Could not resolve your external ip address! Error:^ Your turn server will not work till you edit your /etc/turnserver.conf config file. 

Vous devez définir votre adresse IP externe dans external-ip et redémarrer le service Coturn.

Modifiez le fichier de configuration.

sudo nano /etc/turnserver.conf

Trouvez la ligne suivante.

external-ip=127.0.0.1

Remplacez 127.0.0.1 par l’adresse IP publique de votre serveur (51.xx.xxx.xx).
Enregistrez et fermez le fichier.
Puis redémarrez Coturn.

sudo systemctl restart coturn

Félicitations ! vous avez (presque) terminé !

Vous avez (presque) terminé car il vous est possible d’installer sur votre serveur ou VPS, en complément, des logiciels d’intelligence artificielle et de reconnaissance vocale qui pourront vous faciliter l’exécution de vos taches...

Le cas échéant, consultez notre tutoriel pour installer Serge

Le cas échéant, consultez notre tutoriel pour installer LibreChat


Rappel du sommaire :

© L’auteur de ce didacticiel est Timo RAINIO.
Une partie de ce didacticiel a été réalisée en reprenant certains tutoriels publiés sur les sites linuxbabe.com, linuxlink.com en les traduisant en langue française et en les adaptant pour l’installation selon la configuration de la plateforme Juris-Tyr (Ubuntu 22.04, LAMP) , ainsi que depuis les sites de la documentation officielle des logiciels opensource concernés (Nextcloud) (InvoiceNinja) et/ou de Github (pdf signature). Ce didacticiel peut être repris en intégralité seulement, et à condition d’indiquer sur le contenu repris la source : https://juris-tyr.com et de nous informer préalablement par e-mail.


Des observations ou des questions ?

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *