OS : Debian10

Objectif : Installer un serveur web GEMINI

UNDERWORLD.FR est disponible via gémini : gemini://www.underworld.fr

0) WWW / WEB / GEMINI

Alors oui, y a débat. On dit que les pages web c'est que du html via du http, WWW c'est World Wild Web, c'est comme ca que le defini le W3C.... Mais pour moi le Web, c'est acceder à des sites via un navigateur (qualifié de Web ou Internet).

Bref, ici, la convention sera Gemini et Http = WEB = WWW

nginx est un serveur web http servant des pages web (http://monsite.fr/mapage.html) Molly-Brown est un serveur web gemini servant des pages web (gemini://monsite.fr/mapage.gmi)

1) Installation d'un serveur (exemple: Molly-Brown)

Pourquoi Molly-Brown? parce qu'apres avoir joué avec Agate, j'ai voulu essayer les Script CGI et d'autres fonctions comme le reverse proxy.

apt-get update && apt-get dist-upgrade

apt install curl git golang

adduser --disabled-login gemini

su - gemini

mkdir /home/gemini/server

mkdir /home/gemini/go

export GOPATH=$HOME/go

go get tildegit.org/solderpunk/molly-brown

mv /home/gemini/go/bin/molly-brown /home/gemini/server/

exit

2) Génération d'un certificat autosigné:

openssl req -x509 -nodes -days 3650 -newkey rsa:4096 -keyout /home/gemini/server/www.underworld.fr.key -out /home/gemini/server/www.underworld.fr.crt

chmod +r /home/gemini/server/www.underworld.fr.crt

chmod +r /home/gemini/server/www.underworld.fr.key

3) Fichier de configuration

vi /home/gemini/server/molly-brown.conf

Y mettre à minima:

Port = 1965
Hostname = "www.underworld.fr"
CertPath = "/home/gemini/server/www.underworld.fr.crt"
KeyPath = "/home/gemini/server/www.underworld.fr.key"
DocBase = "/home/gemini/www.underworld.fr/"
HomeDocBase = "/home/gemini/www.underworld.fr/users"
GeminiExt = "gmi"
CGIPaths = [ "/home/gemini/www.underworld.fr/cgi-bin" ]

4) Créer le lanceur systemd

vi /etc/systemd/system/molly-brown.service

Le fichier doit contenir:

[Unit]
Description=Molly Brown gemini server
After=network.target

[Service]
Type=simple
Restart=always
User=gemini
WorkingDirectory=/home/gemini
ExecStart=/home/gemini/server/molly-brown -c /home/gemini/server/molly-brown.conf

[Install]
WantedBy=multi-user.target

Enfin, activer le lanceur:

systemctl daemon-reload

systemctl enable molly-brown.service

systemctl start molly-brown.service

5) Lancer le serveur

service molly-brown start

6) Ouverture de flux

Ouvrir le port TCP 1965 vers votre serveur web gémini

7) Notes / Recherches

Mes notes sur GEMINI

Installation d'un serveur Gémini - Agate