Este método ha sido probado en una Raspberry Pi 3

Estructura de carpetas

$ GEMINI_DOMAIN=replace.by.your.domain.com
$ mkdir -p ~/gemini/$GEMINI_DOMAIN
$ echo "Hola mundo" > ~/gemini/$GEMINI_DOMAIN/index.gmi

Descargar agate y crear script de arranque

$ cd ~/gemini
$ wget -O - $(curl -s https://api.github.com/repos/mbrubeck/agate/releases/latest | grep "browser_download_url.*aarch64-unknown-linux-gnu.*.gz" | cut -d'"' -f4) | gunzip > agate-server.bin
$ cat > agate-server.sh <<EOL
#!/bin/sh
set -e
cd "\$(dirname "\$0")"

INX=\$(find . -maxdepth 2 -type f -name index.gmi | sort | head -n 1)
if [ ! -f \$INX ]; then
    echo "index.gmi not found"
    exit 1
fi
DOM=\$(echo "\$INX" | xargs dirname | xargs | xargs basename)
./agate-server.bin --lang es-ES --certs ./certificate/ --content "./\$DOM/" --hostname "\$DOM"
EOL
$ chmod +x agate-server.bin agate-server.sh
$ ./agate-server.bin --version
agate 3.2.4

NOTA: el script agate-server.sh permite usar como dominio el nombre del directorio que tiene el contenido, así si queremos cambiarlo basta con renombrar la carpeta y no hay que editar el servicio agate.service creado más adelante.

Crear servicio

$ cat > agate.service <<EOL
[Unit]
Description=Agate gemini server
After=network.target

[Service]
WorkingDirectory=${HOME}/gemini
ExecStart=${HOME}/gemini/agate-server.sh

Restart=always
RestartSec=1

StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=gemini

[Install]
WantedBy=multi-user.target
EOL
$ sudo mv agate.service /etc/systemd/system/agate.service
$ sudo systemctl enable agate
$ sudo systemctl start agate
$ sudo systemctl status agate
● agate.service - Agate gemini server
   Loaded: loaded (/etc/systemd/system/agate.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2023-02-26 11:22:24 CET; 4s ago
 Main PID: 9914 (agate-server.sh)
    Tasks: 6 (limit: 4915)
   Memory: 1.0M
      CPU: 68ms
   CGroup: /system.slice/agate.service
           ├─9914 /bin/sh /home/pi/gemini/agate-server.sh
           └─9931 ./agate-server.bin --lang es-ES --certs ./certificate/ --content ./replace.by.your.domain.com/ --hostname replace.by.your.domain.com

feb 26 11:22:24 bot systemd[1]: Started Agate gemini server.
feb 26 11:22:24 bot gemini[9914]: [2023-02-26T10:22:24Z INFO  agate] The certificate directory "./certificate/" does not exist, creating it.
feb 26 11:22:24 bot gemini[9914]: [2023-02-26T10:22:24Z INFO  agate] No certificate or key found for "replace.by.your.domain.com", generating them.
feb 26 11:22:24 bot gemini[9914]: [2023-02-26T10:22:24Z INFO  agate] Started listener on [::]:1965

Clientes

Ver gemini.circumlunar.space/clients.html

Fuentes: github/mbrubeck, ochobitshacenunbyte.com