Tutoriel 8 : Installer InvoiceNinja

-> Retour au sommaire

Ce tutoriel vous montrera comment installer InvoiceNinja sur un serveur ou VPS sous 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 voir comment héberger nous-même ce 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

Applications mobiles :
Applications de bureau :
Fournisseurs recommandés :

Le dépôt logiciel est accessible via ce lien : https://invoiceninja.github.io/en/self-host-installation/


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 aurez également besoin d’un nom de domaine exemple.com, afin que vos clients puissent voir la facture, via votre sous-nom de domaine : facturation.exemple.fr.

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.

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

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

sudo apt install -y 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 -y 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 php8.2-fileinfo php8.2-pdo
sudo apt install -y php-imagick php8.3 php8.3-mysql php8.3-fpm php8.3-common php8.3>-bcmath php8.3-gd php8.3-curl php8.3-zip php8.3-xml php8.3-mbstring php8.3-bz2 php8.3-intl php8.3-gmp php8.3-fileinfo php8.3-pdo

Redémarrez ensuite Apache.

sudo systemctl restart apache2

Étape 4 : Configurer InvoiceNinja

Accédez à la racine Web InvoiceNinja.

cd /var/www/html/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).

APP_URL=https://facturation.exemple.fr

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/html/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/html/invoiceninja/artisan key:generate

Et migrez la base de données.

sudo php8.2 /var/www/html/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 sous-domaine facturation.exemple.com via l’interface de votre gestionnaire de noms de domaine, avec un enregistrement DNS ‘A’ pointant vers l’adresse IP de votre serveur.

Pour savoir comment créer un sous domaine pointant vers l’adresse IP de votre serveur, consultez l’étape 1 du tutoriel d’installation de Nextcloud (si votre prestataire est OVH Cloud).

Puis, créez un fichier d’hôte virtuel pour InvoiceNinja.

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

Mettez le texte suivant dans le fichier. Remplacez exemple.com par votre nom de domaine.

(Notez que la racine Web est définie sur le dossier  /var/www/html/invoice-ninja/public/, et non sur l’adresse /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 php8.2-fpm php8.3-fpm

Le dossier doit être accessible en écriture :

sudo chown -R www-data:www-data /var/www/html/invoiceninja/ 
sudo find ./ -type d -exec chmod 755 {} \;

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 en remplaçant ‘exemple.com’ par votre nom de domaine.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email yo*@ex*****.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 à https://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 e-mail ‘Brevo SMTP relay service‘ qui est gratuit, saisissez ici vos identifiants Brevo (cela permet de contourner la difficulté si la plage d’adresse IP de votre serveur VPS est bannie par Microsoft, Google …etc.).

A défaut, complétez par vos identifiants, mot de passe et adresse smtp de votre serveur e-mails.
(remplacez smtp-relay.brevo.com par votre adresse imap : mail.exemple.com, ‘brevo username’ par votre identifiant adresse e-mail : co*****@ex*****.com et ‘brevo password’ par votre mot de passe à votre messagerie e-mail)

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

Cliquez ensuite sur le bouton ‘Envoyer un e-mail de test’ sur le site internet 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="mail.exemple.com"
MAIL_PORT="587"
MAIL_USERNAME="co*****@ex*****.com"
MAIL_PASSWORD="votre_mot_de_passe"
MAIL_ENCRYPTION="tls"
MAIL_FROM_ADDRESS="co*****@ex*****.com"
MAIL_FROM_NAME="Facture"

Si InvoiceNinja est installé sur votre serveur de messagerie ou si vous avez configuré un relais SMTP avec Brevo, utilisez les paramètres suivants (en remplaçant in*****@ex*****.com par votre adresse e-mail d’envoi des factures).

MAIL_MAILER="sendmail"
MAIL_HOST=""
MAIL_PORT=""
MAIL_USERNAME=""
MAIL_PASSWORD=""
MAIL_ENCRYPTION="none"
MAIL_FROM_ADDRESS="in*****@ex*****.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

Importation automatique de vos relevés bancaires dans Invoiceninja (facultatif) :

Vous pouvez importer automatiquement vos relevés bancaires sur InvoiceNinja et associer vos règlements à vos factures.

Créez un compte sur le site internet de Nordigen (devenu « Gocardless ») pour pouvoir ensuite importer vos relevés bancaires et synchroniser vos règlements et vos factures.


Une fois votre compte Nordigen créé, copiez les codes « Secret_ID » et « Secret_Key » indiqués dans votre compte utilisateur.

Secret ID (will be available in 'User secrets') : 4h87n46-fab3-5643-b9f4-fk98767568 (exemple)
Secret Key : 5zHhh87878790kn545789huh786567554njby76867867866d6889798678jkhjh8977867868hhb49f90c536fc8e12bc (exemple)

Ajoutez les lignes suivantes au fichier .env, en complétant les codes copiés depuis votre compte Nordigen / Gocardless.

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

Ajoutez les lignes suivantes dans ce fichier .env en remplacant les exemples de codes ci-dessous (en jaune) par vos propres codes.

NORDIGEN_SECRET_ID=4h87n46-fab3-5643-b9f4-fk98767568
NORDIGEN_SECRET_KEY=5zHhh87878790kn545789huh786567554njby76867867866d6889798678jkhjh8977867868hhb49f90c536fc8e12bc
NORDIGEN_TEST_MODE=false

Enregistrez et fermez le fichier .env. (‘Control’ ‘x’ et touche ‘Entrer’)

Videz ensuite le cache avec la commande suivante.

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!

Comment mettre à niveau Invoice Ninja ? (facultatif) :

Lorsqu’une nouvelle version d’InvoiceNinja est disponible, vous pouvez effectuee la mise à jour en ligne en cliquant sur l’icone ‘Avertissement’ en bas à gauche puis sur le bouton ‘Mettre à jour’ ….

….ou suivre 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 invoiceninja.tar.gz /var/www/html/invoiceninja/

Ensuite, il faudra télécharger le fichier .zip de la dernière version d’InvoiceNinja depuis Github via cette page : Releases · invoiceninja/invoiceninja · GitHub et remplacez le contenu dans /var/www/html/invoice-ninja/, puis installez les dépendances.

Exécutez les commandes suivantes :

cd /tmp

Téléchargez la dernière version d’InvoiceNinja. Remplacez 5.x.x par la version que vous souhaitez télécharger.

sudo wget https://github.com/invoiceninja/invoiceninja/archive/refs/tags/v5.x.x.zip
sudo unzip  v5.x.x.zip
sudo cp invoiceninja-5.x.x/* /var/www/html/invoiceninja/ -R 
sudo rm /tmp/v.5.x.x.zip
sudo rm -R /tmp/invoiceninja-5.x.x
cd /var/www/html/invoice-ninja/
sudo chown www-data:www-data /var/www/html/invoiceninja/ -R
sudo -u www-data composer update

Redémarrez le serveur web apache.

sudo systemctl restart apache2 php8.2-fpm php8.3-fpm

Modifiez le fichier des langues (Français) (facultatif) :

sudo nano /var/www/html/ninja2/lang/fr/texts.php

Appuyez sur les touches : [control]  + [w] pour rechercher un texte dans le fichier texts.php :

Recherchez/remplacer le mot ‘gross’ par → ‘TTC’
Recherchez/remplacer les mots ‘gross line total ‘ par → ‘Montant TTC’
Recherchez/remplacer le mot ‘Taxes’ par → ‘TVA’
Recherchez/remplacer le mot ‘Taxe’ par → ‘TVA’
Recherchez/remplacer les mots ‘Coût unitaire’ par → ‘Coût unit. HT’

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

Vérifiez l’envoi des factures :

sudo /usr/bin/php8.2 /var/www/html/ninja2/artisan ninja:send-recurring

Dépannage si les taches Cron ne fonctionnent pas… (si vos factures ne sont pas envoyées par e-mail…) (facultatif):

Certains serveurs Web nécessitent que la tâche Cron se termine par > /dev/null 2>&1 au lieu de >> /dev/null 2>&1 pour que cela fonctionne.

Vérifiez également si votre tâche Cron de serveur Web doit être définie avec /private_html/ au lieu de /public_html/ dans le chemin. Et parfois, il suffit de mettre php au lieu de /opt/alt/php73/usr/bin/php dans la commande du planificateur cronjob pour l’exécuter.

Si vous rencontrez toujours des erreurs, il peut être utile de supprimer temporairement >> /dev/null 2>&1 du cron, cela devrait afficher le cron dans cron.log

Si vous rencontrez des problèmes avec vos crons, consultez la section dépannage : ici

Si vous souhaitez améliorer les performances de votre installation d’Invoice Ninja, l’activation du système de file d’attente améliorera considérablement les performances de l’application.

Si vous disposez d’un accès root à votre système, suivez simplement les instructions du guide Laravel (guide) pour configurer le service superviseur pour démarrer et redémarrer votre file d’attente.

Il est également possible de suivre le guide suivant pour configurer le processus Superviseur sur Ubuntu 22.04 en suivant les étapes suivantes :

Installer un processus Superviseur pour Invoice Ninja Ubuntu 22.04 LTS (facultatif) :
sudo apt-get install supervisor

Ensuite, créez un fichier de configuration pour Invoice Ninja en accédant au répertoire de configuration du superviseur et en démarrant l’éditeur de texte de votre choix avec le nom de fichier à utiliser. Vous pouvez définir ici n’importe quel nom de fichier se terminant par .conf. J’utilise vi.

cd /etc/supervisor/conf.d
sudo nano invoiceninja-worker.conf

Dans le nouveau fichier billninja-worker.conf, saisissez ce qui suit :.

[program:invoiceninja-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/html/invoiceninja/artisan queue:work --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=8
redirect_stderr=true
stdout_logfile=/var/log/invoiceninja-worker.log
stopwaitsecs=3600

Il y a 4 choses principales à changer, indiquées en gras ci-dessus :

  • program : le nom du programme que vous utiliserez
  • command : le chemin d’accès au fichier artisan à la racine du répertoire de l’application Invoice Ninja.
  • user : l’utilisateur qui exécutera Supervisor. En règle générale, il s’agit de l’utilisateur du serveur Web (le même utilisateur qui est propriétaire des fichiers Invoice Ninja).
  • stdout_logfile : éventuellement, incluez le chemin d’accès à un fichier journal pour le superviseur.

Une fois ces modifications adaptées à votre environnement, enregistrez le fichier.

Si vous choisissez de définir un chemin de fichier journal, assurez-vous que le fichier journal est créé et que le compte utilisateur configuré y a accès. Pour cet exemple, le journal est stocké dans /var/log.

cd /var/log
sudo touch invoiceninja-worker.log
sudo chown www-data:www-data invoiceninja-worker.log

Maintenant que Supervisor est configuré, nous pouvons lire le fichier de configuration :

sudo supervisorctl reread

Cela devrait nous indiquer que le nom de notre config (invoiceninja-worker) est disponible. La commande ci-dessus devra également être réexécutée à chaque fois que le fichier de configuration est mis à jour.

Ensuite, ajoutez la nouvelle configuration au groupe de processus pour Supervisor (cette commande doit également être exécutée à chaque fois que la configuration est mise à jour)

sudo supervisorctl update

Maintenant, démarrez le travailleur Superviseur

sudo supervisorctl start invoiceninja-worker:*

L’exécution de ce qui suit affichera les processus de travail comme RUNNING

sudo supervisorctl status

Maintenant que le superviseur est configuré, nous devons dire à Invoice Ninja de l’utiliser réellement.

Modifiez le fichier .env pour Invoice Ninja

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

Modifiez la ligne suivante pour la faire passer de la synchronisation à la base de données et enregistrez le fichier

QUEUE_CONNECTION=database

Enfin, maintenant que tout est configuré, rechargez la configuration d’Invoice Ninja et redémarrez la file d’attente. J’utilise www-data pour cet exemple en tant qu’utilisateur du serveur Web.

cd /var/www/html/invoiceninja/
sudo -u www-data php artisan optimize
sudo -u www-data php artisan queue:restart

C’est ça! Vous devriez maintenant disposer d’une configuration de superviseur fonctionnelle pour Invoice Ninja.

Si vous êtes en hébergement mutualisé, il est possible de faire fonctionner les files d’attente en définissant un nouveau cron avec la configuration suivante :

*/5 * * * * cd  /var/www/html/invoiceninja && /usr/bin/php -d register_argc_argv=On artisan queue:work --stop-when-empty

Certaines personnes ont des configurations d’hébergement Web différentes, donc cette ligne peut également fonctionner :

*/5 * * * * php /home/admin/domains/site.com/private_html/invoices_site/artisan queue:work --stop-when-empty

Ce cron démarrera un travailleur de file d’attente toutes les 5 minutes et exécutera tous les travaux qui se trouvent dans la file d’attente, puis se terminera progressivement. Cela signifie que tous les e-mails/notifications peuvent être mis en file d’attente pendant une courte période avant d’être exécutés. Si ce délai est acceptable, c’est un excellent moyen de faire fonctionner la file d’attente sur l’hébergement partagé.

Si vous préférez gérer les files d’attente avec Supervisor, vous souhaiterez alors désactiver les commandes internes d’Invoice Ninja qui démarrent la file d’attente, pour ce faire, définissez simplement la variable .env suivante

INTERNAL_QUEUE_ENABLED=false

Vous aurez alors un contrôle total sur la file d’attente.


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 !


Tutoriel 9 : Installer SignaturePDF (24)

-> Retour au sommaire


SignaturePDF est un logiciel web libre permettant de modifier, annoter, signer et compresser un fichier PDF. Par contre, ce n’est pas un logiciel pour signer électroniquement un fichier (même s’il permet à plusieurs personnes de signer un document PDF). Tout au plus la signature d’un fichier PDF via cette application correspondrait à une signature ‘simple’ puisque le fichier PDF à signer peut être envoyé à une personne via son adresse e-mail.

Pour signer un document ou fichier électroniquement, vous nous recommandons d’utiliser l’app certificate24 sur Nextcloud (ou Docusign), ou encore la plateforme de signature électronique gratuite : Lexcommunity qui permet d’effectuer des signatures électroniques simples et avancées.


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 chmod 755 -R /var/www/html/signaturepdf/public
cd /var/www/html/signaturepdf/

Pour activer la signature d’un document par plusieurs personnes (en leur envoyant un lien hypertexte vers le document PDF à signer /annoter), exécutez les commandes suivantes :

cd /var/www/html/signaturepdf
sudo cp config/config.ini{.example,}

Puis éditez le fichier config.ini :

sudo nano config.ini

Remplacez la ligne suivante dans le fichier config.ini :

#PDF_STORAGE_PATH=/path/to/folder

… par celle-ci, afin de désigner un dossier dans lequel seront enregistrés les documents PDF attendant un signature :

PDF_STORAGE_PATH=/var/www/html/signaturepdf/pdfuploaded

Enregistrez et fermer ce fichier config.ini, puis créez ce dossier et accorder les droits d’accès et d’écriture :

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

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 gestionnaire de noms de domaine, avec un enregistrement DNS ‘A’ pointant vers l’adresse IP de votre serveur.

Pour savoir comment créer un sous domaine pointant vers l’adresse IP de votre serveur, consultez l’étape 1 du tutoriel d’installation de Nextcloud (si votre prestataire est OVH Cloud).

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 yo*@ex*****.com -d pdf.exemple.com

Redémarrez le serveur Apache et PHP.

sudo systemctl restart apache2 php8.2-fpm php8.3-fpm

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


Mise à jour de SignaturePDF :

Pour mettre à jour cette application, exécuter la commande suivante :

cd  /var/www/html/signaturepdf/
sudo git pull -r

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 !


Tutoriel 10 : Installez Dolibarr (Logiciel de comptabilité)

Dolibarr est un logiciel ERP & CRM open source qui vous permet, notamment, de gérer la comptabilité de votre entreprise, mais également vos contacts, vos fournisseurs, créer des factures, enregistrer vos commandes, vos stocks …etc.

Ce logiciel nous intéresse pour ses fonctions de gestion de la comptabilité.

Si vous recherchez un logiciel de compatbilité, ERP et CRM adapté aux petites, moyennes ou grandes entreprises, aux fondations et aux indépendants, alors Dolibarr est peut-être l’outil qu’il vous faut. …

Il s’agit d’un logiciel qui dispose de nombreuses fonctionnalités et peut paraître complexe. Une maîtrise des bases de la comptabilité est recommandée.

Si vous souhaitez seulement l’installation d’un logiciel plus simple de suivi de la trésorerie de votre entreprise ou de votre société, nous vous recommandons l’installation de Firefly III à la place de Dolibarr.



Étape 1 : Installez Dolibarr

Installez PHP et ses extensions en exécutant les commandes ci-dessous sur votre terminal :
sudo apt update
sudo apt install -y php php-cli php-mysql php-common php-zip php-mbstring php-xmlrpc php-curl php-soap php-gd php-xml php-intl php-ldap php-imap

Installez également l’extension libapache2-mod-php :

sudo apt install -y libapache2-mod-php

Configurez ou vérifier les paramètres PHP avec la commande suivante :

sudo nano /etc/php/*/apache2/php.ini

Vérifiez que le fichier php.ini contient bien les données suivantes :

date.timezone = Europe/Paris
memory_limit = 1024M
upload_max_filesize = 1024M
display_errors = On
log_errors = Off

Étape 2 : Installez MariaDB et créer une base de données

Dolibarr ERP & CRM a besoin d’un magasin de base de données pour ses données. Installez MariaDB sur votre Ubuntu à l’aide des commandes suivantes :

sudo apt install mariadb-server mariadb-client

Une fois le serveur de base de données installé, sécurisez-le en exécutant les commandes ci-dessous :

sudo mysql_secure_installation

Connectez-vous au shell MySQL en tant qu’utilisateur root et créez une base de données pour Dolibarr ERP & CRM.

sudo mysql -u root -p

Créer une base de données et un utilisateur pour Dolibarr ERP & CRM :
Remplacez les termes ‘Mot_de_passe’ par … votre mot de passe.

CREATE USER 'dolibarr'@'localhost' IDENTIFIED BY 'Mot_de_passe';
CREATE DATABASE dolibarr;
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'localhost';
FLUSH PRIVILEGES;
QUIT

Étape 3 : Téléchargez Dolibarr

L’étape suivante consiste à télécharger la dernière version de Dolibarr ERP & CRM sur votre système Ubuntu à l’aide de la commande wget.

Recherchez la dernière version de Dolibarr ERP & CRM sur Github.

release_tag=$(curl -s https://api.github.com/repos/Dolibarr/dolibarr/releases/latest | grep tag_name | cut -d '"' -f 4)
wget https://github.com/Dolibarr/dolibarr/archive/${release_tag}.tar.gz

Extraire l’archive :

sudo tar xvf ${release_tag}.tar.gz

Déplacer le répertoire créé depuis l’extraction vers /var/www/html/dolibarr

sudo mv dolibarr-${release_tag} /var/www/html/dolibarr

Ensuite, définissez les autorisations appropriées :

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

Étape 4 : Installez et configurez le serveur Web Apache2

Créez un sous-domaine comptabilité.exemple.com via l’interface de votre gestionnaire de noms de domaine, avec un enregistrement DNS ‘A’ pointant vers l’adresse IP de votre serveur.

Pour savoir comment créer un sous domaine pointant vers l’adresse IP de votre serveur, consultez l’étape 1 du tutoriel d’installation de Nextcloud (si votre prestataire est OVH Cloud).

Installez Apache2 en utilisant :

sudo apt -y install apache2
sudo a2enmod rewrite

Créez ensuite un fichier d’hôte virtuel pour Dolibarr:

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

Ajouter des données :

<VirtualHost *:80>
ServerName comptabilite.example.com
DocumentRoot /var/www/html/dolibarr/htdocs/

<Directory /var/www/html/dolibarr/htdocs>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>

ErrorLog /var/log/apache2/dolibarr_error.log
CustomLog /var/log/apache2/dolibarr_access.log combined
</VirtualHost>

Activer le site web :

sudo a2ensite dolibarr.conf

Redémarrer le service apache2

sudo systemctl restart apache2
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 co*****@ex*****.com -d comptabilite.exemple.com

Redémarrez apache et PHP

sudo systemctl restart apache2 

Étape 5 : Terminez l’installation de Dolibarr sur le navigateur

Terminez l’installation en ouvrant https://comptabilite.example.com dans votre navigateur.

La première page vous demandera de sélectionner votre langue ou d’utiliser le navigateur détecté.

https://fr.linux-console.net/?p=21916

Confirmez tous les prérequis d’installation en cochant la case Démarrer  pour commencer l’installation.

https://fr.linux-console.net/?p=21916

Ensuite, configurez les informations de connexion à la base de données en complétant le nom d’utilisateur de la base de donnée qui doit être a priori ‘dolibarr’ et le ‘Mot-de-passe‘ que vous avez précédemment choisi.

Puis continuez. Sur l’écran suivant, vous pouvez créer un compte administrateur.

Dolibarr ubuntu install
https://geekrewind.com/install-dolibarr-erp-crm-on-ubuntu-16-04-17-10-18-04-with-apache2-mariadb-and-php-7-1-support/

Définir les informations de la base de données :

  • Nom de la base de données : dolibarr
  • Type de pilote : MySQL/MariaDB
  • Serveur de base de données : localhost
  • Connexion : dolibarr
  • Mot de passe : Mot_de_passe

Confirmez les paramètres puis cliquez sur Suivant

Cliquez sur « Étape suivante  » pour enregistrer les configurations et terminer l’installation.

La dernière étape consiste à définir les connexions administrateur.

https://fr.linux-console.net/?p=21916

Une fois connecté, complétez les informations de votre entreprise et choisissez les modules complémentaires que vous souhaitez installer.

Dolibarr ubuntu setup
https://geekrewind.com/install-dolibarr-erp-crm-on-ubuntu-16-04-17-10-18-04-with-apache2-mariadb-and-php-7-1-support/

Connectez vous en tant qu’utilisateur administrateur au tableau de bord de gestion de Dolibarr :

https://fr.linux-console.net/?p=21916

Vous pouvez apprendre à utiliser le logiciel Dolibarr via de nombreux guides sur internet et notamment ce guide d’utilisation de Dolibarr.


Tutoriel 11 : Installez Firefly III (Logiciel de suivi de trésorerie)

-> Retour au sommaire

Vous avez toujours voulu avoir une vison simple * de votre trésorerie et un contrôle sur vos finances … et le logiciel de comptabilité Dolibarr ne vous convient pas ? (car vous le trouvez trop complexe ou pas assez ‘feng shui’ …?)

Vous avez la possibilité d’installer un autre logiciel de comptabilité « Firefly III » qui a moins de fonctionnalités que Dolibarr mais offre une meilleure interface et vous permet de suivre l’évolution de votre trésorerie.

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 peut afficher de nombreux rapports financiers.


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

É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

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}
sudo apt install -y php8.2 php8.3-{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.3-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 :

Créez un sous-domaine comptabilite.exemple.com via l’interface de votre gestionnaire de noms de domaine, avec un enregistrement DNS ‘A’ pointant vers l’adresse IP de votre serveur.

Pour savoir comment créer un sous domaine pointant vers l’adresse IP de votre serveur, consultez l’étape 1 du tutoriel d’installation de Nextcloud (si votre prestataire est OVH Cloud).

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>
Include /etc/apache2/conf-available/php8.3-fpm.conf
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 yo*@ex*****.com -d comptabilite.exemple.com

Redémarrez apache et PHP

sudo systemctl restart apache2 php8.2-fpm php8.3-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;

É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

Résultat :

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.1DB_PORT=3306 
DB_DATABASE=firefly_databaseDB_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

Exemple de configuration :

/var/www/html/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….


Mettre à jour Firefly-III (facultatif) :

La meilleure façon de procéder à la mise à niveau est de « réinstaller » Firefly III à l’aide des commandes suivantes :

sudo su
cd /var/www/html/firefly-iii
composer create-project grumpydictator/firefly-iii --no-dev --prefer-dist firefly-iii-updated 6.1.7

Où ‘6.1.7’ est la dernière version de Firefly III. Cela installe Firefly III dans un nouveau répertoire appelé firefly-iii-updated.

En supposant que votre installation d’origine Firefly III se trouve dans le répertoire firefly-iii , vous pouvez effectuer la mise à niveau en copiant votre fichier .env et d’autres éléments :

cd ..  && sudo cp firefly-iii/.env firefly-iii/firefly-iii-updated/.env && sudo cp firefly-iii/storage/upload/* firefly-iii/firefly-iii-updated/storage/upload/
#ou si ça ne fonctionne pas, utilisez la commande suivante : 
sudo cp -R firefly-iii/storage/upload/ firefly-iii/firefly-iii-updated/storage/upload/
sudo cp firefly-iii/storage/export/* firefly-iii//firefly-iii-updated/storage/export/
#ou si ça ne fonctionne pas, utilisez la commande suivante : 
sudo cp -R firefly-iii/storage/export/ firefly-iii/firefly-iii-updated/storage/export/

Si vous utilisez SQLite comme système de base de données (vous saurez si vous le faites…), copiez également votre base de données. Sinon, la copie du fichier .env suffit.

Ensuite, exécutez les commandes suivantes à la suite pour terminer la mise à jour :

cd /var/www/html/firefly-iii/firefly-iii-updated 
sudo rm -rf bootstrap/cache/*
sudo php artisan cache:clear
sudo php artisan migrate --seed
sudo php artisan firefly-iii:upgrade-database
sudo php artisan passport:install
sudo php artisan cache:clear
cd ..

Pour vous assurer que votre serveur Web vous sert le nouveau Firefly III, exécutez les commandes suivantes :

cd ..
sudo mv firefly-iii firefly-iii-old
sudo mv firefly-iii-old/firefly-iii-updated firefly-iii

Si vous obtenez une erreur 500 ou d’autres problèmes en essayant de vous connecter à l’adresse comptabilite.exemple.com, vous devrez corriger définir les droits d’accès corrects au dossier de Firefly-III avec les commandes suivantes  :

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

Supprimez tous les anciens packages PHP ou du moins, désactivez-les, ils ne doivent pas être utilisés par Apache.
Pour désactiver les anciennes versions de PHP dans Apache, vous pouvez utiliser les commandes suivantes :

# désactiver la version 7.4 apache2 
sudo a2dismod php7.4
# activer la version 8.3 apache2
sudo a2enmod php8.3-fpm
# Redémarrer apache2
sudo service apache2 restart

Cela suppose que vous exécutez Apache et que votre gestionnaire de packages de système d’exploitation peut gérer plusieurs versions de PHP (toutes ne le font pas).


Application Android à installer sur son smartphone pour suivre sa trésorerie sur Firefly-III (facultatif) :

Waterfly III est une application Android non officielle pour Firefly III, un gestionnaire de finances personnelles gratuit et open source.

Le dépot logiciel est consultable sur cette page : https://github.com/dreautall/waterfly-iii/blob/master/README.md

La conception de l’application est fortement influencée par Bluecoins.

Caractéristiques :

L’application est encore en cours de développement, mais les fonctionnalités de base fonctionnent déjà :

  • Général :
    • Mode clair et sombre,
    • prend en charge les couleurs dynamiques
    • Prêt pour la traduction
    • Écoutez les notifications entrantes (par exemple, de Google Pay ou de votre application bancaire) et pré-remplissez les transactions
    • Option pour exiger une empreinte digitale pour ouvrir l’application
  • Tableau de bord :
    • Cinq graphiques différents pour le solde actuel et l’historique récent
    • Graphique en cascade du bénéfice net des derniers mois
    • Aperçu du budget des 30 derniers jours
    • Factures à venir
  • Transactions :
    • Lister les transactions par date
    • Possibilité de filtrer la liste par différents champs
    • Ajoutez et modifiez des transactions avec la saisie semi-automatique, y compris les pièces jointes et les images, les transactions fractionnées et la prise en charge de plusieurs devises
  • Bilan :
    • Répertorier les soldes de comptes individuels
  • Tirelires :
    • Voir les tirelires, classées par catégorie
    • Ajouter/Retirer de l’argent des tirelires
  • Comptes :
    • Répertorier tous les comptes d’actifs/dépenses/recettes/passifs
    • Rechercher des comptes spécifiques
  • Catégories :
    • Afficher les transactions mensuelles réparties par catégorie
    • Ajouter, modifier et supprimer des catégories
Fonctionnalités :

L’application n’essaie pas de reproduire toutes les fonctionnalités de l’interface Web. Au lieu de cela, il essaie d’être un bon compagnon pour accéder aux fonctions les plus utilisées lors de vos déplacements. Des opérations plus approfondies telles que la création ou la suppression de comptes d’actifs, la création ou la modification de règles, etc. ne sont pas prévues.


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 relevé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.

Cette fonctionnalité permet d’importer vos relevés bancaires dans le logiciel Firelfy-III et d’avoir un suivi de votre trésorerie en temps réel.

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 && \
sudo composer create-project firefly-iii/data-importer \
--no-dev --prefer-dist data-importer 1.3.2

Fixez les droits d’accès du 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. en supprimant le caractère # dans ce fichier .env.

Enregistrez et fermez le fichier (appuyez simultanément sur les touches [Control] et [o], puis les touches [Control] et [x] ).


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 ce nouveau 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 yo*@ex*****.com -d comptabilite.exemple.com

Redémarrez apache et PHP

sudo systemctl restart apache2 php8.2-fpm php8.3-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 connexion 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 !


Tutoriel 12 : 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/exemple.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 ‘your-password‘ 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/exemple.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/exemple.com/ -R

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

Créez un sous-domaine exemple.com via l’interface de votre gestionnaire de noms de domaine, avec un enregistrement DNS ‘A’ pointant vers l’adresse IP de votre serveur.

Pour savoir comment créer un domaine pointant vers l’adresse IP de votre serveur, consultez l’étape 1 du tutoriel d’installation de Nextcloud.

Si votre gestionnaire de votre nom de domaine est OVHCloud, connectez vous à cette adresse https://www.ovh.com/manager/#/web/domain et configurez votre nom de domaine de la manière suivante :

Puis 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 ‘exemple.com’ 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.exemple.com
ServerAlias exemple.com
DocumentRoot /var/www/exemple.com
#This enables .htaccess file, which is needed for WordPress Permalink to work.
<Directory "/var/www/exemple.com">
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/exemple.com.error.log
CustomLog ${APACHE_LOG_DIR}/exemple.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 exemple.com.conf

Et rechargez Apache pour que les modifications prennent effet.

sudo systemctl reload apache2

Vous devez installer certaines extensions PHP.

sudo apt install php-mbstring php-xml php-mysql  php-gd php-bcmath php-json php-cli php-curl php-zip php-imap php-fpm php-snmp php-mysqli php-intl

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.

É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).

sudo apt install certbot python3-certbot-apache

Puis exécutez cette commande pour obtenir et installer le certificat TLS en remplaçant exemple.com par votre nom de domaine.

sudo certbot --apache --agree-tos --redirect --hsts --uir --staple-ocsp --email yo*@ex*****.com -d exemple.com,www.exemple.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 :
https://exemple.com


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

exemple.com

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

Maintenant, ouvrez votre navigateur Web et accédez à WordPress en utilisant l’URL https://exemple.com.

Vous serez redirigé vers la page suivante, su laquelle vous sélectionnerez la langue puis cliquerez sur le bouton « Continuer ».

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

Remplissez les champs obligatoires à cette étape, puis passez à l’étape suivante en cliquant sur « Installer WordPress ».

WordPress a été installé. Cliquez sur Connexion.

Entrez votre nom d’utilisateur et votre mot de passe et cliquez sur le bouton Connexion. Vous serez automatiquement redirigé vers votre tableau de bord.

le tableau de bord est accessible de puis ladresse https://exemple.com/wp-admin.

Et maintenant, votre nouveau site WordPress est installé.

Le site web https://exemple.com devrait afficher cette page standard :


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 !


Tutoriel 13 – 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.

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

  • 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-get install coturn

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 un ‘défi http-01’, ce qui signifie que votre serveur Web Apache doit écouter sur le port 80 de l’adresse IP publique pour enregistrer un certificat pour accéder à Jitsi Meet en https. Si votre environnement de serveur ne prend pas en charge le défi http-01 ou n’écoute pas sur le port 80 , vous ne devez pas exécuter le script ci-dessus, vous devez utiliser d’autres types de configuration. Vous pouvez alors utiliser les commandes suivantes :

sudo apt install snapd
sudo snap install certbot-dns-cloudflare
sudo certbot --agree-tos -a dns-cloudflare -i apache --redirect --hsts --staple-ocsp --email co*****@ex*****.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> 
ServerName visio.exemple.com
Protocols h2 http/1.1
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/jitsi/meet/visio.netsisu.com.crt
SSLCertificateKeyFile /etc/jitsi/meet/visio.netsisu.com.key
</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.

  • /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
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=us***@vi***.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

Tutoriel 14 : installez Affine (Facultatif)

Affine Pro est un logiciel alternatif à Notion, axé sur la confidentialité, locale, open source et prêt à l’emploi.

Il s’agit d’une plateforme hyper-fusionnée pour les esprits extrêmement créatifs…

Ce logiciel a pour objectifs d’être est un espace de travail tout-en-un open source et bien plus encore : wiki, gestion des connaissances, présentation et actifs numériques. C’est une des meilleures alternatives open source (qui respecte la confidentialité des données) à Notion et Miro (qui eux par contre ne respectent pas vraiment la confidentialité la plus stricte des données de mon point de vue…)

Version de démonstration : Live Demo 

Les documents, canevas et tableaux sont hyper-fusionnés avec AFFiNE – tout comme le mot affine (əˈfʌɪn | a-fine).


Caractéristiques du lociciel AFFiNE :

AFFINE est une alternative sécurisée à Notion et Miro qui se démarque par les caractéristiques suivantes :

  • De nombreuses applications d’édition prétendent être un canevas de productivité, mais AFFiNE est l’un des rares à vous permettre de placer n’importe quel élément de base sur un canevas sans bords : texte enrichi, notes autocollantes, pages Web intégrées, bases de données multi-vues, liens. pages, formes et même diapositives. Nous avons tout.
  • Rédiger un rapport de travail professionnel ? Transformer un plan en diapositives expressives et présentables ? Résumer un article dans une mindmap bien structurée ? Trier votre plan de travail et votre arriéré de tâches ? Ou… dessiner et coder des prototypes d’applications et de pages Web directement avec une seule invite ? Avec vous, AFFiNE AI pousse votre créativité aux confins de votre imagination.
  • Collaboration locale et en temps réel : Il s’agit d’un logiciel hébergé sur votre serveur , ainsi vous possédez toujours vos données sur votre disque, malgré le cloud. De plus, AFFiNE prend en charge la synchronisation et les collaborations en temps réel sur les clients Web et multiplateformes.

Installation de la version auto-hébergée du logiciel AFFiNE

1. Installation de base :
1.1. Installez Docker :

L’installation se déroule avec le prologiciel Docker, vous devez donc d’abord installer Docker. Pour obtenir des instructions d’installation sur différentes versions de Docker, vous pouvez essayer de visiter la documentation Docker.

Docker et Docker Compose doivent être installés surle serveur ou VPS.


1.2. Téléchargez et configurez l’instllation du logiciel AFFiNE :
cd /var/www/html/
sudo git clone https://github.com/toeverything/AFFiNE.git --branch stable
cd AFFiNE
sudo chown www-data:www-data -R  /var/www/html/AFFiNE

Vous pouvez également télécharger uniquement le fichier compose.yaml directement depuis le dépôt AFFiNE à ce chemin : ./.github/deployment/self-host/compose.yaml.

Puis éditez le fichier docker : compose.yaml (qui se trouve dans le dossier  » .github/deployment/self-host/  » :

 sudo nano ./.github/deployment/self-host/compose.yaml

Ajoutez les 3 lignes en jaune au fichier docker compose dans la partie ‘environnement, en respectant la typographie du fichier (c’est à dire en ajoutant bien les espaces et les tirets avant le texte des lignes de commande) sinon vous rencontrerez une erreur par la suite:

services:
affine:
image: ghcr.io/toeverything/affine-graphql:stable
container_name: affine_selfhosted
command:
['sh', '-c', 'node ./scripts/self-host-predeploy && node ./dist/index.js']
ports:
- '3010:3010'
- '5555:5555'
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
volumes:
# custom configurations
- ~/.affine/self-host/config:/root/.affine/config
# blob storage
- ~/.affine/self-host/storage:/root/.affine/storage
logging:
driver: 'json-file'
options:
max-size: '1000m'
restart: unless-stopped
environment:
- NODE_OPTIONS="--import=./scripts/register.js"
- AFFINE_CONFIG_PATH=/root/.affine/config
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://affine:affine@postgres:5432/affine
- NODE_ENV=production
- AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL}
- AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD}
- AFFINE_SERVER_HOST=affine.exemple.com
- AFFINE_SERVER_PORT=3010
- AFFINE_SERVER_HTTPS=false

redis:
image: redis
container_name: affine_redis
restart: unless-stopped
volumes:
- ~/.affine/self-host/redis:/data
healthcheck:
test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']
interval: 10s
timeout: 5s
retries: 5
postgres:
image: postgres
container_name: affine_postgres
restart: unless-stopped
volumes:
- ~/.affine/self-host/postgres:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U affine']
interval: 10s
timeout: 5s
retries: 5
environment:
POSTGRES_USER: affine
POSTGRES_PASSWORD: affine
POSTGRES_DB: affine
PGDATA: /var/lib/postgresql/data/pgdata

Vous pouvez également ajouter les lignes suivantes dans la partie ‘environement’ de ce fichier compose.yaml pour permettre au logiciel d’envoyer des e-mails :

     - MAILER_HOST=Email server domain
- MAILER_PORT=Email server port
- MAILER_USER=Email login user
- MAILER_PASSWORD=Email password
- MAILER_PORT=587
- MAILER_SECURE=true
- MAILER_SENDER=EXEMPLE <co*****@ex*****.com>

Remplacez Email server domain (par exemple : mail.exemple.com), Email login user (par exemple : co*****@ex*****.com), Email password (votre mot de passe pour l’adresse e-mail) et EXEMPLE <co*****@ae******.com> (le nom et l’adresse e-mail d’envoi depuis le logiciel AFFiNE) par vos données.


1.3. Installez AFFiNE :

Exécutez la commande suivante, en modifiant le cas échéant l’adresse e-mail et le mot de passe :

AFFINE_ADMIN_EMAIL=af****@ac**.sh AFFINE_ADMIN_PASSWORD="affine" docker compose -f ./.github/deployment/self-host/compose.yaml up

Explications :

  • AFFINE_ADMIN_EMAIL: l’e-mail par défaut pour vous connecter à votre cloud auto-hébergé.
  • AFFINE_ADMIN_PASSWORD: le mot de passe par défaut pour vous connecter à votre cloud auto-hébergé.
  • ./.github/deployment/self-host/compose.yaml : est le chemin d’accès au fichier de composition dans le référentiel AFFiNE. Si vous choisissez de télécharger uniquement le compose.yml, assurez-vous d’ajuster le chemin du fichier en conséquence pour qu’il corresponde à l’emplacement de votre fichier téléchargé.
  • Dans le fichier compose.yaml ,vous pouvez également choisir votre version de déploiement cible : ghcr.io/toeverything/affine-graphql:stable , il est suggéré de déployer la version stable, mais les version beta et canary (la ‘super beta’…) sont également disponibles.

1.4. Vérification :

Lorsque tout est opérationnel, vous devriez pouvoir voir trois instances liées à AFFiNE dans docker avec la commande :

sudo docker ps -a
  • Postgres
  • Redis
  • AFFiNE auto-hébergé : Comme vous pouvez le constater, la version auto-hébergée d’AFFiNE contient tout ce qu’il faut pour auto-héberger AFFiNE Cloud. Gardez à l’esprit que vous devez vous connecter à votre AFFiNE Cloud auto-hébergé pour stocker vos données dans la base de données. Sinon, vos données dans l’espace de travail local par défaut seront stockées sous forme de cache dans le navigateur et risquent d’être perdues. Assurez-vous de les avoir transformés en espaces de travail cloud pour activer la synchronisation avec Postgres.

2. Créez un ficher Virtualhost pour un serveur apache (facultatif)
2.1 Créez un fichier de configuration apache

Si vous avez installé cette application sur un serveur VPS, vous ne pourrez pas vous connecter avec votre navigateur à l’adresse locale : http://localhost:3010 ou à l’adresse http://192.168.1.XX:3010 du VPS.

Il faut alors créer un accès vers cette application depuis un site internet spécifique.

Pour accéder à ce logiciel d’intelligence artificielle ‘Serge’ depuis un site internet, vous devez d’abord créer un sous-domaine : « affine.exemple.com » ou « taches.exemple .com » depuis votre compte client de votre gestionnaire de domaine en le reliant à l’adresse IP de votre serveur via un enregistrement ‘DNS A’.

Si vous ne vous vous souvenez plus comment faire, consultez de nouveau l’étape 1 de la phase 4 de notre tutoriel pour installer Juris-Tyr.

(Rappel des étapes si vous avez acheté votre nom de domaine via OVH : «Connexion à l’ Espace client d’OVH » -> Onglet « WebCloud» -> Lien « Noms de domaines » -> « exemple.com » -> Bouton « Zone DNS » -> Bouton « Créer un nouvel enregistrement » -> Bouton «  A » -> Bouton « Suivant » -> « cloud » -> compléter l’adresse IP de votre VPS « 51.xx.xxx.xx » -> « Bouton Suivant » -> « Bouton Valider »).

Une fois votre sous-domaine crée, éditez un nouveau fichier ‘affine.conf’ (ou ‘taches.conf’) dans le dossier /etc/apache2/sites-available/ avec un éditeur de texte en ligne de commande comme Nano :

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

Copiez et collez le texte suivant dans le fichier :
(Remplacez le texte « affine.exemple.com » par votre propre sous-domaine et nom de domaine) 

<VirtualHost *:80>
ServerName affine.exemple.com
#HTTP proxy
# ProxyPreserveHost On
ProxyRequests On
# ProxyRequests Off
ProxyRequests On
# ProxyVia On
<Proxy *>
Allow from all
</Proxy>
ProxyPass / http://127.0.0.1:3010/
ProxyPassReverse / http://127.0.0.1:3010/
<Location "/">
ProxyPass "http://127.0.0.1:3010/"
ProxyPassReverse "http://127.0.0.1:3010/"
</Location>
<Directory "/var/www/html/AFFiNE">
Options Indexes MultiViews Includes FollowSymLinks
AddOutputFilter Includes html
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/affine.error.log
CustomLog ${APACHE_LOG_DIR}/affine.access.log combined
RewriteRule ^/(.*)?$ http://127.0.0.1:3010/$1 [P,L]
ProxyPass / http://127.0.0.1:5555/
ProxyPassReverse / http://127.0.0.1:5555/
</VirtualHost>

Enregistrez et fermez le fichier.
(Pour enregistrer un fichier dans l’éditeur de texte Nano, appuyez sur les touches ‘Ctrl+o’, puis sur ‘Entrer’ pour confirmer. Pour quitter, appuyez sur ‘Ctrl+X’).

Activez ensuite ce nouveau fichier de configuration du serveur Apache ‘hôte virtuel’ :

sudo a2ensite affine.conf

Exécutez la commande suivante pour activer les modules Apache requis :

sudo a2enmod rewrite headers env dir mime setenvif ssl proxy_http proxy rewrite

 Recharger Apache et les modules PHP :

sudo systemctl restart apache2 php8.2-fpm

Désormais vous pouvez accèder à AFFiNE via l’adresse : http://affine.exemple.com


2.2. Activez https pour le site internet crée :

Nous souhaitons (un peu) sécuriser l’accès au site https://affine.example.com. Nous allons donc enregistrer un certificat TLS pour accéder à ce site internet en ‘https’.

Exécutez les commandes suivantes pour installer le client Let’s Encrypt (certbot) à partir du référentiel de logiciels par défaut.

sudo apt install certbot

Si vous utilisez le serveur Web Apache, vous devez également installer le plug-in Certbot Apache.

sudo apt install python3-certbot-apache

Exécutez ensuite la commande suivante pour obtenir un certificat TLS/SSL gratuit.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email yo*@ex*****.com -d affine.example.com

Exécuter la commande suivante :

sudo systemctl restart apache2

3. Utilisez AFFiNE :

Allez sur le site web https://affine.exemple.com puis connectez vous avec les identifiants :

E-mail / Login : af****@ac**.sh 
Mot de passe : affine

Ou l’adresse e-mail et mot de passe que vous avez choisi lors de l’installation.


Installation personnalisée / Paramètres facultatifs :
Configurer les informations de connexion initiales
E-mail initial et mot de passe pour la connexion :

La façon suggérée de commencer avec la version auto-hébergée d’AFFiNE est de vous connecter via une adresse e-mail et un mot de passe. Le mot de passe et l’adresse e-mail par défaut peuvent être définis dans le fichier .ymal pour AFFiNE.

Vous pouvez attribuer votre adresse e-mail et votre mot de passe administrateur dans vos variables d’environnement.

Cela se fait en ajoutant la ligne suivante dans le fichier bashrc/zshrc :

export AFFINE_ADMIN_EMAIL=mailto:co*****@ex*****.fr export AFFINE_ADMIN_PASSWORD="mon super mot de passe impossible à deviner"

… ou vous pouvez plus simplement remplir vos informations directement dans le fichier .yaml de Docker au moment de l’installation.

sudo nano /var/www/html/AFFiNE/compose.yaml
environment:
.../...
- AFFINE_ADMIN_EMAIL=${AFFINE_ADMIN_EMAIL}
- AFFINE_ADMIN_PASSWORD=${AFFINE_ADMIN_PASSWORD}
.../...

Stockage des données du logiciel :
Mise en place de vos bases de données :

Par défaut, une instance Redis et Postgres seront téléchargées et composées prêtes à l’emploi. Si vous préférez utiliser votre propre instance Redis ou Postgres, vous pouvez vous modifier le fichier docker compose d’AFFiNE

environment:  
- REDIS_SERVER_HOST=redis
- DATABASE_URL=postgres://affine:affine@postgres:5432/affine

les progiciels Redis et Postgre sont utilisés pour votre base de données. Vos données seront conservées dans le chemin indiqué dans la section volume du fichier YAML.

volumes:  
# custom configurations
- ~/.affine/self-host/config:/root/.affine/config
# blob storage
- ~/.affine/self-host/storage:/root/.affine/storage

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 ‘Ollama Open UI’ qui permet d’exécuter des petits modèles de langages open source en local (MistralAI, Llama2…etc.) , sans transmission de données à une société commerciale. C’est la méthode la plus sûre et la plus confidentielle pour utiliser des logiciels d’intelligence artificielle.
  • 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 :

© L’auteur de ces tutoriels est Timo RAINIO.
Une partie de ces tutoriels a été réalisée en reprenant certains tutoriels et guides 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 porposée par 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 (SignaturePSD). Ce tutoriel 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. Vous pouvez également laisser un commentaire pour proposer une amélioration ou rectification


Des observations ou des questions ?

Laisser un commentaire

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