…/…
Chapitre 8 : Installer InvoiceNinja
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 :
- Avec InvoiceNinja, vous pouvez envoyer des factures à vos clients en utilisant votre propre nom de domaine et votre propre marque.
- Gérez la facturation de plusieurs entreprises sous un seul compte.
- Gagnez du temps en facturant automatiquement les clients à long terme avec des factures récurrentes.
- Créez et envoyez facilement de belles propositions à vos clients.
- Joindre des fichiers tiers aux factures. Créez des tâches de projet et suivez le temps, afin que vous puissiez vous débarrasser des suivis de temps tiers comme clockify.me.
- Organisez et planifiez le travail de votre client avec un outil visuel de gestion de projet.
- Permettez à vos clients de voir toutes leurs transactions avec vous en un coup d’œil.
- L’automatisation Zapier vous permet de transférer des données entre votre compte de facturation et des applications populaires telles que Gmail, Google Sheets, QuickBooks Online, Slack, Pipeline, MailChimp et des centaines d’autres.
- Demandez des acomptes et des paiements partiels en utilisant encore et encore la même facture.
- Utilisez une séquence d’e-mails de rappel automatique pré-écrite pour rappeler aux clients que votre facture doit être payée.
- Recevez des notifications lorsqu’un client consulte et paie votre facture ou votre proposition de devis
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)

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)
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
- Créez des transactions récurrentes pour gérer votre argent
- Gestion des transactions basée sur des règles avec la possibilité de créer vos propres règles Importer des données à partir de systèmes externes
- Un système de comptabilité en partie double
- Économisez vers un objectif en utilisant des budgets
- Afficher les rapports de revenus et de dépenses
- Authentification à 2 facteurs pour plus de sécurité 🔒
- Prend en charge toutes les devises de votre choix, y compris les crypto-monnaies telles que ₿itcoin et Ξthereum
- Il y a une image Docker et un script Heroku.
- Des vues claires qui devraient vous montrer comment vous allez
- Navigation facile dans vos dossiers
É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
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.
- Enter the hostname of your mail server.
- Select TLS as Encryption.
- Use port 587.
- Enable Authentication.
- Enter an email address of your domain and the password.

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 :
- Entièrement gratuit
- Partagez l’écran de votre ordinateur avec d’autres.
- Le mode présentateur vous permet de partager votre écran et votre caméra en même temps, pour que les participants puissent voir le présentateur et son langage corporel tout au long de la présentation.
- Vous pouvez partager l’audio du système tout en partageant votre écran.
- Vous pouvez désigner des utilisateurs autorisés comme modérateurs.
- Un modérateur peut couper le son de chaque participant en un seul clic.
- La communication sur le réseau est cryptée à l’aide de DTLS-SRTP. Chiffrement de bout en bout (travail en cours)
- Vous pouvez définir un mot de passe pour votre conférence afin d’empêcher des inconnus aléatoires d’entrer.
- Enregistrez la réunion/conférence et enregistrez-la sur Dropbox. Diffusez sur YouTube Live et stockez l’enregistrement sur YouTube. Applications Android et iOS Chat textuel
- Partager un document texte
- Connexion téléphonique à une conférence Appel sortant vers un participant téléphonique
- Vous pouvez intégrer un appel Jits Meet dans n’importe quelle page Web avec seulement quelques lignes de code.
É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.

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.

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
- openjdk-8-jre-headless: Environnement d’exécution Java. C’est nécessaire car Jitsi Meet est écrit en langage Java.
- jicofo: Jitsi conference Focus (
systemctl status jicofo
) - prosody: Serveur Jabber/XMPP léger (
systemctl status prosody
) - coturn: Serveur TURN et STUN pour VoIP
- Nginx:
/etc/nginx/sites-enabled/meet.example.com.conf
- ou Apache :
/etc/apache2/sites-enabled/meet.example.com.conf
É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.

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

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:
--agree-tos
: Acceptez les conditions de service.-a dns-cloudflare
: On utilise le plugin DNS cloudflare pour s’authentifier car on utilise le service DNS Cloudflare.-i apache
: Utilisez le plugin apache pour installer le certificat TLS.--redirect
: Force HTTPS by 301 redirect.--hsts
: Ajoutez l’en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine.--staple-ocsp
: Active l’agrafage OCSP. Une réponse OCSP valide est agrafée au certificat proposé par le serveur pendant TLS.
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 :
/etc/apache2/sites-enabled/visio.exemple.com.conf
-
/etc/turnserver.conf
/etc/prosody/conf.d/meet.linuxbabe.com.cfg.lua
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.

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.
/var/log/nginx/jitsi-meet.access
/var/log/nginx/jitsi-meet.error
/var/log/jitsi/jicofo.log
/var/log/jitsi/jvb.log
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

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 }

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 .

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

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.

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...
- Si votre serveur ou VPS dispose d’au moins 16Go de mémoire vive RAM, vous pouvez installer l’application open-source ‘Serge’ qui permet d’exécuter des modèles de langages en local, sans transmission de données. C’est la méthode la plus sûre et la plus confidentielle pour utiliser des logiciels d’intelligence artificielle. à ce jour
Le cas échéant, consultez notre tutoriel pour installer Serge
- Si votre serveur ou VPS dispose de moins de 16Go de mémoire vive RAM (4Go /8Go) , vous pouvez installer l’application open-source LibreChat qui permet d’accéder, notamment à ChatGPT plus et GPT4 à moindre coût (5$ par mois au lieu de 20$ par mois …).
Le cas échéant, consultez notre tutoriel pour installer LibreChat
Rappel du sommaire :
- Chapitre 1 : Avoir un serveur – choisir entre souscrire à un abonnement à serveur dédié (VPS) (recommandé) ou de configurer un ordinateur serveur installé dans vos locaux et votre modem/routeur
- Chapitre 2 : Installez et utiliser le logiciel Putty pour se connecter au serveur depuis votre ordinateur sous Windows ou via un logiciel équivalent si votre ordinateur est un Mac (https://putty.fr.softonic.com/mac/alternatives)
- Chapitre 3 : Installez la pile LAMP (Serveur Apache, Mariadb, Php8.2)
- Chapitre 4 : Installez Nextcloud 27 (Ubuntu 22.04, Apache2, PostgreSQL)
- Chapitre 5 : Installez CollaboraOnline (Suite bureautique de type Office) (facultatif)
- Chapitre 6 : Installez OnlyOffice (Autre suite bureautique de type Office) (facultatif)
- Chapitre 7 : Installez un serveur d’e-mail
- Etape 1 ; Installez d’un serveur Postfix sous Ubuntu 22.04
- Etape 2 : Installez Dovecot
- Etape 3 : Installez Postfixadmin
- Etape 4 : Configurez SPF et DKIM avec Postfix sur Ubuntu
- Etape 5 : Création d’un enregistrement DMARC pour protéger votre nom de domaine contre l’usurpation d’e-mails
- Etape 6 : Comment contourner les blacklists d’adresses IP de Microsoft Outlook et des autres fournisseurs d’adresses e-mails
- Etape 7 : Installez le webmail Roundcube (application de messagerie en ligne)
- Etape 8 : Comment limiter le risque que vos e-mails soient classés dans les spams (facultatif)
- Etape 9 : Installez les logiciels antivirus Amis et ClamAv sur Ubuntu (facultatif)
- Chapitre 8 : Installez InvoiceNinja (Logiciel de devis, facturation et paiement en ligne des factures)
- Chapitre 9 : Installez PDFsignature (Logiciel de modification en ligne de fichiers PDF)
- Chapitre 10 : Installez Firefly III et du module d’import automatique de relevés bancaires (Logiciel de comptabilité) (facultatif)
- Chapitre 11 : Installez WordPress (Logiciel de création et d’édition de site internet) (facultatif)
- Chapitre 12 : Installez Jitsi Meet (Logiciel de visioconférence autohébergée) (facultatif)
- Chapitre 13 : Installez Serge (Logiciel permettant d’utiliser des modèles d’intelligence artificielle open-source basés sur LLaMA2) (facultatif)
- Chapitre 14 : Installez LibreChat (Logiciel permettant d’utiliser des logiciels d’intelligence artificielle de OpenAI, Anthropic via leur clé d’API) (facultatif)
- Chapitre 15 : Installez Web Whisper + (Logiciel de reconnaisssance vocale en ligne) (facultatif)
- Chapitre 16 : Installez OP Vault (Interroger vos fichiers PDF et Word avec l’API de GPT4) (facultatif)
© 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.
Laisser un commentaire