Commento pour gérer les commentaires
Une fois tous les 10 ans, je repasse sur le système de commentaires disponible sur mon blog (non, un blog, ce n'est pas hasbeen).
Au début, j'utilisais le système de commentaires de Dotclear que j'ai abandonné pour mauvaise gestion des spams et pour suivre la mode de Disqus. Depuis, Frank a fait pas mal de boulot pour la gestion des spams mais le mal était fait. J'ai installé Disqus qui a deux défauts assez importants : c'est propriétaire et centralisé. Disqus est même doublement centralisé : il n'y a « qu'un seul » serveur et tous les commentaires que fait un utilisateur ou une utilisatrice se retrouvent au même endroit. Il est donc assez facile de savoir que j'ai commenté example.com, le site du boulot et example.org, le site de pétanque du village. C'est (encore) plus facile pour profiler1.
Ensuite, comme quasi personnes ne commentent sur mon blog, j'ai désactivé les commentaires et personne ne s'est plaint. C'est dire ;-)
Il pleut.
Je décide donc d'installer Commento. C'est la version logiciel libre de Disqus. Il est possible de souscrire un hébergement chez eux ou de l'installer. Je l'installe. Vous me direz ce que vous en pensez.
Je suis grosso-merdo la documentation officielle qui m'a posé quelques soucis. Voici la procédure .
Le site a besoin de PostgreSQL.
# apt install postgresql
C'est une bonne pratique de créer un utilisateur spécifique pour l'application,
je crée donc un utilisateur commento
qui aura les droits qui vont bien — et
pas plus — sur la base de données (BD) :
# sudo -u postgres psql
postgres=# create database commento;
CREATE DATABASE
postgres=# create role commento;
CREATE ROLE
postgres=# alter role commento with login;
ALTER ROLE
postgres=# \password commento
Je télécharge Commento et commence l'installation.
désarchiver dans
/opt/commento
2l'idée du logiciel est d'utiliser les variables d'environnement pour le configurer, je décide d'écrire un script qui positionnera les variables d'environnement et qui lancera le service.
C'est un service qui tourne sur un certain port. Il faudra donc un serveur web et un virtual host.
root@momos:~# cat /opt/commento.sh #!/bin/bash export COMMENTO_ORIGIN=https://commento.example.org export COMMENTO_PORT=8081 export COMMENTO_POSTGRES=postgres://commento:secret@localhost:5432 /commento?sslmode=disable export COMMENTO_CDN_PREFIX=$COMMENTO_ORIGIN export COMMENTO_SMTP_HOST=relay.example.org export COMMENTO_SMTP_PORT=25 export COMMENTO_SMTP_FROM_ADDRESS=commento@example.org export COMMENTO_FORBID_NEW_OWNERS=true /opt/commento/commento &
mise en place d'un virtual host pour que le service réponde à l'adresse
commento.example.org
. (J'utilisedehydrated
pour la gestion du certificat SSL avec LetsEncrypt.)<VirtualHost *:80\> ServerName http://commento.example.org ServerAdmin webmaster@example.org ProxyRequests Off ProxyPass / http://127.0.0.1:8081/ ProxyPassReverse / http://commento.example.org:8081/ # Dehydrated Alias /.well-known/acme-challenge /var/lib/dehydrated/acme-challenges <Directory /var/lib/dehydrated/acme-challenges> Options None AllowOverride None <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> ErrorLog ${APACHE_LOG_DIR}/ commento.example.org-error.log CustomLog ${APACHE_LOG_DIR}/ commento.example.org-access.log combined </VirtualHost> <VirtualHost *:443> ServerName https://commento.example.org ServerAdmin webmaster@example.org ProxyRequests Off ProxyPass / http://127.0.0.1:8081/ ProxyPassReverse / https://commento.example.org:8081/ SSLEngine on SSLCertificateFile /var/lib/dehydrated/certs/ commento.example.org/fullchain.pem SSLCertificateKeyFile /var/lib/dehydrated/certs/ commento.example.org/privkey.pem # Dehydrated Alias /.well-known/acme-challenge /var/lib/dehydrated/acme-challenges <Directory /var/lib/dehydrated/acme-challenges> Options None AllowOverride None <IfModule mod_authz_core.c> Require all granted </IfModule> </Directory> LogLevel warn ErrorLog ${APACHE_LOG_DIR}/ commento.example.org-error.log CustomLog ${APACHE_LOG_DIR}/ commento.example.org-access.log combined </VirtualHost> # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
pour terminer, ce serait bien que
systemd
se charge du service.# cat /lib/systemd/system/commento.service [Unit] Description=Commento daemon service After=multi-user.target [Service] User=commento Type=forking WorkingDirectory=/tmp ExecStart=/opt/commento.sh [Install] WantedBy=multi-user.target
Et tout roule. Vous pouvez laisser un commentaire. Normalement ;-)
Crédit photo perso. Hier une grue et un arc-en-ciel devant la maison.
-
Choisis un un profil au hasard et observe. On peut voir les sites sur lesquels le profil commente régulièrement et ce qu'il y dit. ↩
-
En fait, je désarchive dans
/opt/commento-1.8.0
et je fais un lien softcommento
. ↩