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