Aller au contenu

Les commentaires sur Geotribu : de Disqus à Isso, via une contribution open-source#

📆 Date de publication initiale : 14 mai 2021

Mots-clés : Geotribu | Isso | commentaire | open source

Introduction#

icône commentaire

Lorsque nous avons remis Geotribu en route l'an dernier en optant pour un site statique et que la question des commentaires s'est posée, je suis allé au plus simple : Disqus, notammant parce-que son intégration est mise en avant dans la documentation du thème retenu.

Mais avec la montée en puissance de la fréquentation du site, notamment suite à ign2map, Disqus a considéré que Geotribu était éligible pour les publicités.

Disqus - Mail de notification

On peut comprendre qu'un service n'est jamais gratuit et que la publicité est l'un des moyens de le viabiliser (modèle freemium dans le cas de Disqus). Mais le prix est trop élevé pour un site bénévole comme Geotribu et les publicités (que je ne voyais pas moi-même, utilisant entre autres le mode strict de Firefox et uBlock Origin) affichées vraiment mal ciblées voire gênantes :

Disqus - Publicités affichées

D'après la FAQ, nous aurions pu prétendre à un forfait gratuit exempt de publicité mais c'était l'occasion de s'affranchir d'un service propriétaire et qui, même gratuit, ajoute des éléments de tracking non désirés.

Comme évoqué dans l'introduction de la GeoRDP du 12 mars, nous avons donc décidé de couper le service en attendant de trouver mieux... ou de ne pas mettre de système de commentaires du tout.

Finalement, on a mis en place Isso et après un mois d'utilisation, il est temps de faire un retour d'expérience.

Commenter cet article


Isso#

logo Isso

Les systèmes de commentaires sont nombreux : Juvia, GitMent, GitTalk, Schnack, etc.

Mais même si une intégration via GitHub (où le site est déjà stocké, généré, hébergé et sauvegardé) était tentante, on s'est dit qu'on ne voulait pas qu'un compte sur une plateforme tierce soit un pré-requis pour commenter sur Geotribu.

On a finalement opté pour Isso pour plusieurs raisons :

  • très bien packagé/distribué et plutôt bien maintenu
  • pas de publicités, ni de tracking
  • auto-hébergeable facilement
  • compatible avec le socle technique de l'équipe et du site (Python, Flask)
  • pas de SGBD, juste une base SQLite, qu'il est donc facile d'intégrer à notre mécanisme de sauvegarde des fichiers statiques
  • capacité d'import de Disqus, qui fournit un export XML des commentaires
  • une API minimaliste pour éventuellement d'autres usages (exemple les 10 derniers commentaires)

Installation du serveur#

logo Python

Vu que GeoRezo nous autorise gracieusement à utiliser le serveur d'El Géo Paso et qu'il s'agit d'une application légère, j'ai décidé de l'installer à côté de notre pseudo-CDN.

L'occasion de rappeler que soutenir GeoRezo c'est une bonne idée pour l'écosystème et c'est aussi soutenir GeoTribu 🤗 :

Faire un don à GeoRezo

Voici dans les grandes lignes les étapes de l'installation, la configuration et du déploiement :

  • Du côté de notre gestionnaire de domaine (Gandi) :
    • créer un sous-domaine et le faire pointer sur l'adresse IP du serveur
    • créer une adresse email afin d'envoyer des notifications : facteur@geotribu.fr
  • Du côté du serveur :
    • on crée un environnement virtuel Python dans lequel on installe Isso et ses copains (gevent par exemple)
    • on s'assure que le serveur web parle couramment WSGI. Dans notre cas, c'est Apache donc ça passe par mod_wsgi
    • on configure le site dans le serveur web
    • on crée un certificat SSL grâce au certbot de l'EFF
    • on fait quelques optimisations : compression et cache

En grand amateur de la théorie du camion (ou facteur autobus), pour celles et ceux que le détail intéresse, les fichiers de configuration et étapes d'installation sont documentés sur notre compte GitHub :

Fichiers de configuration et documentation

En peu de temps, nous voici avec l'interface d'administration et les commentaires importés depuis Disqus :

Isso, interface d'administration

Intégration au site#

logo HTML5

Comme indiqué (voir la doc et ticket GitHub) par l'auteur du thème Material pour MkDocs que l'on utilise pour le site, si Disqus bénéficie d'une facilité d'intégration, il reste possible d'intégrer n'importe quel système.
Saluons une fois de plus la qualité de ce thème, dont le développement prévoit des personnalisations totales ou partielles de chaque partie du site.

Pour intégrer le bloc de commentaires, j'ai donc ajouté l'URL dans la section extra du fichier de configuration mkdocs.yml, de façon à ne pas stocker d'URL en dur dans le template HTML :

1
2
extra:
  comments_url: https://comments.geotribu.fr/

⛩ Puis, on personnalise le template Jinja qui sert de base à toutes les pages du site main.html en passant nos options Isso et l'URL de la configuration :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
[...]
{% block disqus %}

{# Comment system (Isso) #}
<div id="__comments">
  <script
    data-isso="{{ config.extra.comments_url }}/"
    data-isso-require-author="true"
    data-isso-require-email="true"
    data-isso-reply-to-self="false"
    data-isso-vote="true"
    src="{{ config.extra.comments_url }}/js/embed.min.js">
  </script>
  <hr><section id="isso-thread"><h2>Comments</h2></section>
  <noscript>Please enable JavaScript to view the comments.</noscript>
</div>
{% endblock %}
[...]

Et voilà tout !

Isso, bloc commentaires Geotribu


Contribuer au cercle vertueux de l'open-source#

logo open source

Le service rendu est à la hauteur des attentes et voilà la Geotribu dotée d'un nouveau module de commentaires 🥳.

Mais Isso ne sait notifier des nouveaux commentaires que par email. C'est déjà bien et pour éviter que tout ne repose que sur une personne, on met en place une chaîne de transfert emails à l'ancienne !

Ça marche, mais on peut faire mieux : pourquoi ne pas envoyer une notification sur Slack, l'outil (propriétaire hum... 🤦🏼) que l'on utilise pour la communication interne à la GéoTribu.

Le souci c'est que Slack, en mode gratuit, ne permet pas le transfert d'email vers un canal. En revanche, les webhooks sont très bien gérés et intégrés.

Alors, puisque c'est open source, pourquoi ne pas mettre à profit les nuits écourtées pour contribuer à Isso ?

Mème Bruce tout Puissant clavier

Paupières relevées, manches retroussées et c'est parti pour contribuer au projet Isso en proposant d'ajouter la possibilité d'envoyer des notifications à un webhook pour chaque nouveau commentaire posté, avec en prime la possibilité de définir un modèle JSON personalisé.

Voir la pull request

En attendant que ce soit éventuellement accepté, on utilise déjà cette version sur Geotribu :

Geotribot - Notification Slack

C'est beau l'open source 🥰.


Auteur#

Julien Moura#

Portrait Julien Moura

Géographe "sigiste" de formation, j'ai d'abord travaillé sur différentes thématiques et types de structures : la gestion des déchets en milieu urbain à Madagascar, le foncier d'intérêt général auprès de l'EPF de La Réunion, l'organisation et la résilience urbaine face aux risques naturels à Lima pour l'IRD.

C'est en m'intéressant à la gouvernance et à l'ouverture des données géographiques que je travaille à Isogeo quelques années. L'occasion d'asseoir mes compétences en développement et gestion de produit informatique. En 2020, je deviens indépendant (In Geo Veritas) puis rejoins les rangs d'Oslandia.

Féru des dynamiques de contributions, je participe activement à Geotribu depuis fin 2011 et, comme ça me manquait trop, j'ai décidé de lancer sa renaissance en 2020.


Dernière mise à jour: 3 juin 2021
Contributions à cette page : TestGTR

Commentaires

Une version minimale de la syntaxe markdown est acceptée pour la mise en forme des commentaires.
Propulsé par Isso.