💾 Archived View for elmau.net › notes › jetforce.gmi captured on 2023-11-04 at 11:27:58. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2021-11-30)
-=-=-=-=-=-=-
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.