Installer un forum à la Hacker News en français

06 mars 2014

Dans les années 2000, on allait sur http://slashdot.org. Aujourd’hui, quand on veut des nouvelles pour les hackers, on va sur Hacker News. “Hacker” au sens général de “quelqu’un qui se désigne lui-même comme “hacker”…

Un forum old school… mais pas trop

Le site est un peu spartiate, mais il marche. Vous pouvez poster des liens, les commenter, voter sur les liens, voter sur les commentaires, cumuler du karma, vous abonner au fil RSS des nouvelles, poster des questions et créer des sondages. Il y a de quoi faire.

C’est minimaliste et lisible – destiné à ceux qui n’ont pas besoin de paillettes.

Le logiciel qui fait tourner Hacker News a été écrit par Paul Graham, gourou du web et du Lisp s’il en est. Ce logiciel est écrit en Arc. Arc était destiné à populariser le Lisp, mais c’est plutôt raté : heureusement, Clojure a pris la relève avec succès.

Donc si vous n’aimez pas phpbb, que vous n’avez pas envie de vous plonger dans l’installation et la gestion d’une instance Discourse (le plus “hype” des moteurs de forum du moment), si vous avez besoin d’un truc qui marche rapidement et sans base de données, alors suivez-moi…

Étape 0 : prérequis

Vous avez un serveur

Vous avez un serveur GNU/Linux quelque part avec un accès root.

Vous avez configuré Apache ou Nginx

Vous avez configuré Apache ou Nginx pour qu’un sous-domaine redirige vers localhost:8080.

Voici ma configuration dans /etc/nginx/site-availables/default:

server {
        listen   80;
        server_name forum.jecode.org;
        location / {
        proxy_pass http://localhost:8080;
        }
}

Vous avez installé git, racket, screen et openssl

Vous avez installé Git, Racket et screen et openssl :

Étape 1 : cloner Arc

Connectez-vous à votre serveur sous l’utilisateur de votre choix.

Clonez Arc en version française :

~$ git clone https://github.com/bzg/anarki.git

Allez dans le répertoire Anarki et placez-vous sur la branche fr :

~$ cd anarki
~$ git checkout fr

Étape 2 : configurer votre forum

Ouvrez le fichier lib/news.arc et éditez les informations sur votre forum :

(= this-site*    "My Forum"
   site-url*     "http://news.yourdomain.com/"
   parent-url*   "http://www.yourdomain.com"
   favicon-url*  ""
   site-desc*    "What this site is about."               ; for rss feed
   site-color*   (color 180 180 180)
   border-color* (color 180 180 180)
   prefer-url*   t)

Si vous n’utilisez pas le port 8080, il faut changer la valeur un peu plus bas dans le code :

(def nsv ((o port 8080))
  (map ensure-dir (list arcdir* newsdir* storydir* votedir* profdir*))
  (unless stories* (load-items))
  (if (and initload-users* (empty profs*)) (load-users))
  (asv port))

Vous pouvez aussi regarder les éléments de style CSS dans cette page.

Toujours depuis le répertoire anarky, indiquez quel est le nom d’utilisateur de l’administrateur:

mkdir arc
echo "bzg" > arc/admins

Important: Assurez-vous au passage que l’utilisateur sous lequel votre serveur web tourne peut écrire dans ce répertoire arc/, c’est là que seront stockées toutes les informations (les liens postés, les utilisateurs, etc.)

Étape 3 : Lancez Arc !

Depuis le répertoire anarki:

racket -f as.scm

Cette command vous ouvre une interface pour interagir avec Arc.

Il suffit ensuite de charger le module “news.arc”, puis de lancer le forum:

arc> (load "lib/news.arc")
arc> (nsv)

Rendez-vous maintenant sur http://localhost:8080 (ou sur l’adresse de votre sous-domaine)… et voilà!

Étape 3 bis : Lancer Arc avec screen

Sortez de l’interpréteur de commandes Arc avec C-c et faites:

screen racket -f as.scm

Dans cette session screen, tapez C-a d pour « détacher » la session et retrouver le prompt.

Testez votre forum… et re-voilà !

Dites-moi si vous y arrivez. Je sais que vous n’arriverez pas à convaincre tout le monde d’utiliser un forum qui « a l’air » un peu rébarbatif… mais c’est si simple que ce serait dommage de s’en passer.

Ah, et si vous avez de bonnes feuilles de style, merci de partager !