JetForce Servidor Gemini

Hay varios servidores Gemini que se pueden usar en diferentes lenguajes con diferentes características.

Servidores y clientes Gemini

El que usa este servidor es Jetforce escrito en Python

Jetforce en Github

No es necesario que tengas un VPS exclusivo para Gemini, dado que ocupa pocos recursos. Este VPS tiene como sistema operativo Ubuntu Server 20.04 que es bastante sólido y es con el que se hizo esta guía. Asumo que sabes conectarte a su servidor y que tienes un usuario con privilegios de "sudo". Asegurate de dominar un editor mínimo de texto como vim o nano.

Debes de tener ya un dominio apuntando a la IP de tu VPS, puedes usar un subdominio también. Si no cuentas con uno escríbeme para ayudarte con uno.

1] Actualiza el servidor.

sudo apt update
sudo apt upgrade

2] Instala los requerimientos previos.

sudo apt install python-is-python3 python3-pip python3-venv

sudo pip install --upgrade pip

3] Crea un entorno virtual.

sudo python -m venv /opt/jetforce

4] Cambia el usuario dueño del directorio, reemplaza USER por tu usuario.

sudo chown -R USER:USER /opt/jetforce

5] Cambia al directorio.

cd /opt/jetforce

6] Activa el entorno virtual.

source bin/activate

7] Instala este requerimiento primero.

pip install wheel

8] Instala jetforce

pip install jetforce

9] Crea el directorio y cámbialo de dueño

sudo mkdir /opt/gemini
sudo chown USER:USER /opt/gemini

10 ] Crea tu primer archivo gemini.

vim /opt/gemini/index.gmi

10.1 ] Con el contenido que quieras, por ejemplo:

# Mi super servidor Gemini

Sin la basura de la GMAFIA

11] Prueba el server, reemplaza DOMINIO por tu dominio

./bin/jetforce --host 0.0.0.0 --hostname DOMINIO --dir /opt/gemini

Si no ves algo como el siguiente mensaje y obtienes un error, revisa cada paso de nuevo.

Generating ad-hoc certificate files...

You are now riding on...
_________    _____________
______  /______  /___  __/_______________________
___ _  /_  _ \  __/_  /_ _  __ \_  ___/  ___/  _ \
/ /_/ / /  __/ /_ _  __/ / /_/ /  /   / /__ /  __/
\____/  \___/\__/ /_/    \____//_/    \___/ \___/

An Experimental Gemini Server, v0.9.0
https://github.com/michael-lazar/jetforce

Server hostname is gemini.cuates.net
TLS Certificate File: /tmp/localhost.crt
TLS Private Key File: /tmp/localhost.key
Listening on 127.0.0.1:1965

Si vez algo similar a esto, todo esta funcionando correctamente. Con cualquier cliente Gemini, ya deberías poder ver tu servidor.

12] Presiona CTRL+C para terminar el proceso del servidor jetforce

13] Vamos a crear el servicio.

sudo vim /etc/systemd/system/jetforce.service

13.1] Con el siguiente contenido.

[Unit]
Description=Jetforce Server

[Service]
Type=simple
Restart=always
RestartSec=5
Environment="PYTHONUNBUFFERED=1"
ExecStart=/opt/jetforce/bin/jetforce \
    --host 0.0.0.0 \
    --port 1965 \
    --hostname gemini.cuates.net \
    --dir /opt/gemini \

[Install]
WantedBy=default.target

14] Activa e iniciamos el servicio.

sudo systemctl enable jetforce
sudo systemctl start jetforce

En este punto ya debe estar tu servidor accesible por cualquier cliente Gemini, al menos los que acepten certificados autofirmados.

Hasta ahora, Jetforce nos crea automáticamente los certificados autofirmados para nuestro servidor Gemini que son perfectamente válidos y reconocidos por la mayoría de los clientes.

En caso de que tu cliente no los acepte, genera un par de certificados para tu dominio como detalle en el siguiente artículo [1]

Entonces, modifica el servicio. Reemplaza DOMINIO por tu dominio.

[Unit]
Description=Jetforce Server

[Service]
Type=simple
Restart=always
RestartSec=5
Environment="PYTHONUNBUFFERED=1"
ExecStart=/opt/jetforce/bin/jetforce \
    --host 0.0.0.0 \
    --port 1965 \
    --hostname DOMINIO \
    --dir /opt/gemini \
    --tls-certfile /etc/letsencrypt/DOMINIO/fullchain.pem \
    --tls-keyfile /etc/letsencrypt/DOMINIO/privkey.pem

[Install]
WantedBy=default.target

¡Disfrutalo, presume tu servidor y publica mucho!

No dejes de compartir el vínculo a tu capsula para agregarlo al listado hispano de sitios Gemini.

Un abrazo desde México.

[1] Generar certificados Wildcard con Let's Encrypt

Regresar el índice

Regresar al inicio