À la découverte du
protocole Gemini

Récemment, j’ai déouvert le protocole Gemini, développé plus tôt cette année, et je dois admettre que j’ai immédiatement été assez intéressé par celui-ci.

Le web d’il y a 20 ans me manque : plus simple, plus ouvert, que vous pouviez parcourir depuis des annuaires qui vous permettaient de découvrir plein de petits sides, souvent réalisés par des passionnés. Tout le contenu était disponible, sans barrière, inscription, réseaux sociaux, et surveillance. Les pages ne faisaient que quelques dizaines de kilobits.

Surtout, on y rencontrait des gens : les petits sites personnels, forums et chats IRC étaient des lieux de rencontre où l’on pouvait partager et échanger beaucoup de choses.

Internet a depuis été privatisé. Les petits sites continuent d’exister, mais enfoui et peu visible dans les navigateurs de recherche. Il n’y a jamais eu autant de contenu et de monde, et pourtant on se retrouve enfermé dans les mêmes sites et communcautés. Les langages web sont devenus si complexes que programmer un nouveau navigateur est devenu impossible. Nous avons construit un oligopole.

Gemini prend le parti pris radical de redémarrer de zéro : plutôt que de reprendre HTTP et HTML, il les remplace de façon volontairement minimaliste et non extensible.

Installer un serveur Gemini

Il est dit que Gemini est fait pour qu’un serveur ou un client puisse les designer en moins de 24 heures. De fait, il y a déjà un grand nombre d’alternatives ! J’ai pour ma part choisi Agate.

Sur mon serveur Debian, je télécharge directement les fichiers binaires depuis Github. Puis :

gunzip agate.x86_64-unknown-linux-gnu.gz
mv agate.x86_64-unknown-linux-gnu agate
chmod +x agate
sudo agate /usr/local/bin/agate

On lui donne les droits d’écriture à /var/gemini (en supposant que l’utilisateur est membre du groupe www-data):

mkdir /var/gemini
sudo chown -R www-data:www-data /var/gemini
sudo chmod -R g+rwX /var/gemini

Le serveur se démarre alors simplement avec :

agate --content /var/gemini/ \
      --addr "[::]:1965" \
      --addr 0.0.0.0:1965 \
      --hostname domain.tld

Le site sera désormais accessible sur gemini://domain.tld.

Pour le lancer à chaque démarrage, j’utilise systemd:

# /etc/systemd/system/agate.service
[Unit]
Description=Agate

[Service]
Type=simple
Restart=always
RestartSec=5
Environment="PYTHONUNBUFFERED=1"
ExecStart=agate --content /var/gemini/ \
  --addr "[::]:1965" \
  --addr 0.0.0.0:1965 \
  --hostname domain.tld
StandardOutput=file:/var/log/gemini.log
StandardError=file:/var/log/gemini_error.log

[Install]
WantedBy=default.target

On peut le lancer avec :

sudo systemctl start agate

Et pour le lancer automatiquement au démarrage :

sudo systemctl enable agate

Première page

Gemini utilise de simples fichiers textes avec l’extention .gmi.

La spécification est plus que minimaliste. Du texte, sans formatage. Les titres, codes et citations utilisent un langage proche du Markdown. Les liens ont une syntaxe originale avec =>.

Le fichier index.gmi dans /var/gemini sera alors disponible depuis un client Gemini.

Client Gemini

Tout comme les serveurs, un grand nombre de clients existent. J’ai choisi Amfora, que je trouve agréable à utiliser, et qui a le bon goût d’être directement utilisable avec pacman.

sudo pacman -Syu amfora

Premières impressions

Bien sûr, cet outil minimaliste n’intéressera qu’une infime minorité. Les personnes sur Gemini sont aujourd’hui très peu nombreuses. Quelques pages listent les serveurs, et un petit moteur de recherche existe. Il n’y a que quelques centaines de sites, et seule une partie est active.

D’un autre coté, parcourir ces pages m’ont d’ores et déjà permis de découvrir des individus, leurs écrits et centres d’intérêt, et j’ai pris le temps de lire ce contenu artisanal, découvert « au hasard », ce qui ne m’était pas arrivé depuis longtemps !

Bien sûr, ce protocole ne concurrencera jamais le web, et il ne le prétend pas. J’ignore s’il attirera assez de personnes pour survivre par lui-même (même si quelques noms connus, comme le créateur de Sway, y ont migré). Mais j’espère qu’il trouvera sa niche.

Quoi qu’il en soit… Ce site est désormais disponible sur Gemini, et j’expliquerai prochainement comment je suis parvenu à ce résultat.