bla : Moteur de commentaires
bla est un petit (~400 LOC) CGI écrit en C (rapide) sur/pour OpenBSD (unveil, pledge). Il doit pouvoir fonctionner sur d'autres systèmes avec quelques ajustements.
Fonctionnalités
- Sécurité : unveil et pledge sont actifs.
- Antispam : question à répondre
- Modération : tous les nouveaux commentaires sont soumis à modération
- Administration : non, bla ne permet pas de gérer les commentaires via une interface dédiée, il faudra renommer les fichiers modérés.
Installation
Décompressez l'archive puis éditez le fichier config.h. Compilez.
$ ftp https://si3t.ch/code/bla.tgz $ tar xvzf bla.tgz $ cd bla $ vi config.h $ make # make install
Activer slowcgi :
# rcctl enable slowcgi # rcctl start slowcgi
En supposant que bla sera à accessible à "https://foo.bar/bla", configurez httpd:
location "/bla" { fastcgi root "/cgi-bin/bla.cgi" }
Rechargez httpd :
# rcctl reload httpd
Créez un dossier pour stocker les commentaires selon ce que vous avez configuré dans la variable dbdir du config.h :
# install -o www -g daemon -m 0755 -d /var/www/bla-db
Copiez le fichier bla.js sur votre serveur web et modifiez votre code HTML là où vous souhaitez voir les commentaires :
<div id="bla"></div> <script src="/bla.js"></script>
Configuration
Pour configurer bla, éditez le fichier config.h puis recompilez.
- dbdir : le répertoire où seront stockés les commentaires. De nouveaux répertoires seront créés selon l'URL de la page commentée. Les caractères qui ne sont pas alphanumériques sont replacés par "_". Par conséquent, les commentaires pour "/article1" seront dans le dossier "_article1".
- qa[][2] : Tableau de questions/réponses pour l'antispam. Vous pouvez écrire du html ici. Une question sera choisie au hasard.
- commtpl : modèle html pour un commentaire. Vous pouvez modifiez les classes pour le CSS.
- form : code HTML pour afficher le formulaire.
- okform : HTML affiché lorsqu'un commentaire a été envoyé.
- moderateme : un caractère placé au début du nom de fichier pour reconnaître un commentaire pas encore modéré.
Modération
Tous les fichiers dont le nom commence par moderateme (définit dans le config.h) sont ignorés. Il faut les renommer pour les accepter. Par exemple :
doas -u www mv /var/www/bla-db/_articles_1_html/_1.txt \ /var/www/bla-db/_articles_1_html/1.txt
Vous voudrez peut-être créer un script pour vous simplifier la vie.
Pour être alerté de la présence de nouveaux ommentaires, un script check_for_comments.sh est intégré à l'archive. Éditez-le selon votre configuration et votre adresse mail puis créez une tâche cron :
@hourly /home/foo/bin/check_for_comments.sh
Vous recevrez un email contenant quelque chose comme :
/var/www/bla-db/file/path/comment1.txt pseudo comment /var/www/bla-db/file/path/comment2.txt another one comment
N'hésitez pas à les améliorer et à m'envoyer vos suggestions.