Hay varios servidores Gemini que se pueden usar en diferentes lenguajes con diferentes características.
El que usa este servidor es Jetforce escrito en Python
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.