Comment installer Wallabag sur Ubuntu 18.04 LTS

Wallabag est un service de type « read it later ». Il te permet d’enregistrer des pages Web pour que tu puisses les lire plus tard à ton rythme. Il existe de nombreux services qui te permettent de le faire comme Pocket, Instapaper, etc. mais avoir un service installé sur un serveur qui t’appartient est bénéfique. D’une part, il ne fera pas faillite et n’entraînera pas les liens avec lui. Et tu peux garder tes données de navigation privées.

Ce tutoriel explique comment installer et configurer Wallabag sur un serveur fonctionnant sous Ubuntu 18.04 et plus. Il explique aussi comment configurer Nginx, MariaDB, Git, Postfix, Composer et PHP, qui sont tous nécessaires au fonctionnement de Wallabag.

Conditions préalables

Tu auras besoin des éléments suivants avant de poursuivre notre tutoriel.

  • Un serveur basé sur Ubuntu 18.04 ayant un utilisateur non-root avec des privilèges sudo.

  • Tu auras aussi besoin de l’outil Make. Pour l’installer, il suffit d’utiliser la commande suivante

    $ sudo apt install make
    

Installer git

La première étape consiste à installer Git que nous utiliserons plus tard pour copier les fichiers d'installation de wallabag depuis son dépôt git. De nos jours, Git est généralement installé sur la plupart des serveurs Web. Si ce n'est pas le cas, continue avec les commandes suivantes.

$ sudo apt install git
$ git config --global user.name "Your name"
$ git config --global user.email "[email protected]"

Installe Nginx

$ sudo apt install nginx 

Si tu utilises le pare-feu d'Ubuntu, ajoute les règles suivantes à sa liste.

$ sudo ufw allow "Nginx HTTP" 

Vérifie aussi le statut.

$ sudo ufw status 

Tu devrais voir quelque chose comme ceci

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

Essaie d'accéder à l'adresse IP de ton serveur dans le navigateur. Tu devrais voir la page Nginx par défaut suivante, qui confirme que Nginx a été installé avec succès.

Nginx Welcome page

Installer MariaDB

MariaDB est un remplacement direct de MySQL, ce qui signifie que les commandes pour exécuter et faire fonctionner MariaDB sont les mêmes que celles de MySQL. Pour installer MariaDB, exécute les commandes suivantes

$ sudo apt install mariadb-server 

Exécute la commande suivante pour effectuer la configuration par défaut, comme donner un mot de passe root, supprimer les utilisateurs anonymes, interdire la connexion root à distance et supprimer les tables de test. Appuie sur oui pour tout et configure un mot de passe root.

$ sudo mysql_secure_installation 

Il y a une mise en garde concernant la configuration du mot de passe root. Par défaut, MariaDB permet aux utilisateurs root du système de se connecter à MariaDB sans mot de passe. Mais si tu comptes utiliser une application tierce pour accéder à la racine, un mot de passe est indispensable, sinon des applications comme PHPMyAdmin échoueront. Pour cela, tu dois désactiver l'authentification par plugin qui est l'option par défaut sur MariaDB.

Pour désactiver l'authentification par plugin et restaurer le mot de passe root, entre d'abord dans l'invite MySQL en utilisant la commande suivante.

$ sudo mysql -u root 

Ensuite, entre les commandes suivantes pour désactiver l'authentification par plugin.

use mysql;
update user set plugin='' where User='root';
flush privileges;
exit

Après cela, redémarre ton service MariaDB.

$ sudo systemctl restart mariadb.service 

C'est tout. La prochaine fois que tu veux te connecter à MySQL, utilise la commande suivante

$ sudo mysql -u root -p 

Et il te sera demandé ton mot de passe root que tu avais défini initialement.

Configurer MariaDB pour Wallabag

Nous devons maintenant configurer une base de données à utiliser pour l'application Wallabag. Pour ce faire, connecte-toi à l'invite MySQL. Nous supposerons que tu utilises la méthode d'authentification par défaut de MariaDB (c'est-à-dire sans utiliser le mot de passe root) pour le reste du tutoriel.

$ sudo mysql -u root 

Une fois à l'invite, entre les commandes suivantes qui configureront une base de données nommée wallabag et un utilisateur de base de données nommé wallabaguser et lui donneront accès à la base de données.

create database wallabag;
create user [email protected];
set password for [email protected]= password("yourpassword");
grant all privileges on wallabag.* to [email protected]ost identified by "yourpassword";
flush privileges;
exit

Installe PHP et composer

Maintenant que notre serveur est opérationnel, il est temps d'installer PHP et Composer. Comme nous utilisons Nginx, nous devons installer le paquet PHP-FPM. Avec lui, nous aurons besoin de plusieurs autres extensions PHP telles que mbstring, mysql, gd, bc-math, curl, zip et xml.

$ sudo apt install php-fpm php-mysql php-bcmath php-xml php-zip php-curl php-mbstring php-gd php-tidy php-gettext php-tokenizer
$ sudo apt install composer

C'est tout pour le moment. Nous aborderons la partie configuration de PHP et de composer plus tard. Passons à l'étape suivante.

Configurer Nginx

Il est temps de configurer notre installation Nginx avant de procéder à l'installation proprement dite. En supposant que le nom de domaine que tu utilises pour wallabag est exemple.com, crée un répertoire où tu hébergeras ton installation. Wallabag sera installé dans le répertoire html.

$ sudo mkdir -p /var/www/example.com/html 

Ensuite, attribue la propriété du répertoire au www-data qui est utilisé par Nginx.

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

Assure-toi que les permissions correctes sont définies.

$ sudo chmod -R 755 /var/www/example.com 

Ensuite, crée un hôte virtuel pour le site.

sudo nano /etc/nginx/sites-available/example.com 

Colle la configuration suivante qui fonctionne avec wallabag.

server {
    server_name example.com www.example.com;
    root /var/www/example/html/web;

    location / {
        try_files $uri /app.php$is_args$args;
    }
    location ~ ^/app\.php(/|$) {
        # replace php7.2-fpm with whichever php 7.x version you are using
        fastcgi_pass unix:/run/php/php7.2-fpm.sock;
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }

    location ~ \.php$ {
        return 404;
    }

    error_log /var/log/nginx/wallabag_error.log;
    access_log /var/log/nginx/wallabag_access.log;
}

Enregistre le fichier en appuyant sur Ctrl + X et en saisissant Y lorsque tu y es invité. Ensuite, nous devons activer cette configuration. Pour cela, crée un lien de celle-ci vers le répertoire sites-enabled.

$ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ 

Tu peux être confronté à un problème de mémoire qui survient en raison de noms de serveurs supplémentaires. Pour résoudre ce problème, ouvre le fichier nginx.conf

$ sudo nano /etc/nginx/nginx.conf 

Trouve la directive server_names_hash_bucket_size et supprime le symbole # pour décommenter la ligne :

server_names_hash_bucket_size 64; 

Sauvegarde le fichier. Ensuite, vérifie qu'il n'y a pas d'erreurs dans les configurations de Nginx.

$ sudo nginx -t 

S'il n'y a pas de problèmes, redémarre Nginx pour activer les nouvelles modifications.

$ sudo systemctl restart nginx 

Installe Wallabag

Tout d'abord, clone wallabag depuis son dépôt GitHub. Comme nous avons donné les permissions du dossier html à l'utilisateur www-data, nous devrons passer à celui-ci pour exécuter l'installation.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com
git clone https://github.com/wallabag/wallabag.git html

Cela permettra de copier les fichiers d'installation de wallabag dans le répertoire html. Installe Wallabag à l'aide de la commande make.

$ cd html
$ make install

Plusieurs questions te seront posées pendant l'installation.

Si tu veux utiliser httpentre http://example.com à la place lorsqu'on te demande le nom de domaine et saute la partie HTTPS du tutoriel.

database_driver (pdo_mysql): pdo_mysql
database_driver_class (null): Press Enter
database_host (127.0.0.1): 127.0.0.1
database_port (null): 3306
database_name (wallabag): wallabag
database_user (root): wallabaguser
database_password (null): wallabagpassword
database_path (null): Press Enter
database_table_prefix (wallabag_): Prefix of your choice or Press Enter for the default.
database_socket (null): Press Enter
database_charset (utf8mb4): Press Enter
domain_name ('https://your-wallabag-url-instance.com'): http://example.com 

Il te sera également demandé les détails SMTP pour recevoir des mails concernant un mot de passe oublié ou une authentification à deux facteurs. Si tu veux utiliser un service SMTP tiers comme Mailgun ou Sendgrid, tu peux remplir les valeurs restantes ou simplement appuyer sur Entrée à travers elles. Entre no contre le paramètre fosuser_registration si tu ne veux pas que quelqu'un s'inscrive sur ton site. Change aussi la valeur du paramètre secret paramètre. Si tu as de grandes données à importer, installe RabbitMQ ou Redis et entre les valeurs lorsqu'on te le demande.

Lorsqu'on te demande si tu dois réinitialiser ta base de données existante, appuie sur Entrée pour utiliser l'option par défaut (non). Il te sera également demandé de créer un utilisateur Admin.

Reviens à ta connexion d'utilisateur Ubuntu par défaut lorsque tu as terminé.

$ exit

Configurer le SMTP

Si tu veux configurer un serveur SMTP de base et ne pas utiliser de services SMTP tiers, installe Mailutils.

$ sudo apt install mailutils

Pendant l'installation, il te demandera de sélectionner un type de configuration pour Postfix. Sélectionne Internet Site et continue. Saisis example.com lorsqu'on te demande le champ Nom du système de messagerie. C'est tout.

Configurer HTTPS

Nous allons utiliser Let's Encrypt pour configurer HTTPS pour notre installation wallabag. Ajoute le dépôt suivant pour l'outil Certbot.

$ sudo add-apt-repository ppa:certbot/certbot

Installe le paquet Certbot Nginx à partir du référentiel.

$ sudo apt install python-certbot-nginx

Obtiens le certificat pour ton domaine exemple.com.

$ sudo certbot --nginx -d example.com -d www.example.com

Si c'est la première fois que tu utilises l'outil Certbot, il te sera demandé de fournir un e-mail et d'accepter les conditions d'utilisation. Il te sera également demandé si tu veux que ton email soit partagé avec l'EFF (Electronic Frontier Foundation). Choisis N si tu ne veux pas que l'EFF t'envoie des e-mails concernant ses actualités et ses campagnes.

Si tout se passe bien, Certbot te demandera comment tu veux configurer tes paramètres HTTPS.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Choisis 2 car nous voulons que toutes les demandes adressées à ton domaine soient redirigées vers https.

C'est terminé. Ton domaine HTTPS est en ligne. Certbot renouvellera automatiquement ton domaine après tous les 90 jours. Pour tester le processus de renouvellement, fais un essai à sec.

$ sudo certbot renew --dry-run

Si tu ne vois pas d'erreurs, cela signifie que tout est parfait.

Configurer Wallabag

Maintenant que nous avons configuré wallabag, ouvre ton domaine wallabag. Tu devrais voir l'écran suivant.

Connexion Wallabag

Saisis les informations d'identification que tu as choisies pendant le processus make ci-dessus. Après t'être connecté, tu devrais voir l'écran suivant.

Tableau de bord Wallabag

Tu dois activer l'authentification à deux facteurs. Pour ce faire, clique sur le bouton Config à gauche et sélectionne l'onglet USER INFORMATION dans l'écran suivant. Active la coche Two-factor authentication pour l'activer.

Paramètres de Wallabag

Tu peux importer tes données depuis Pockets, Instapaper, Pinboard et les signets des navigateurs basés sur Firefox et Chrome.

Wallabag te propose une multitude d'applications pour chaque navigateur, mobile ou lecteur d'Ebook à l'aide desquelles tu peux ajouter des liens. Et si rien d'autre ne te tente, tu peux même utiliser un Bookmarklet, dont tu peux accéder aux détails dans la section How to de tes paramètres.

Comment utiliser Wallabag

Mettre à niveau Wallabag

Pour mettre à niveau Wallabag vers la dernière version, il suffit d'exécuter les commandes suivantes.

$ sudo -u www-data /bin/bash
$ cd /var/www/example.com/html
$ make update

C'est tout pour ce tutoriel. Tu peux maintenant enregistrer et lire des articles depuis ton serveur sans compromettre la confidentialité de tes données.

Vous aimerez aussi...