capsula-gemini/source/notes/jetforce.gmi

176 lines
4.5 KiB
Plaintext

## JetForce Servidor Gemini
Hay varios servidores Gemini que se pueden usar en diferentes lenguajes con diferentes características.
=> gemini://gemini.circumlunar.space/software/ Servidores y clientes Gemini
El que usa este servidor es Jetforce escrito en Python
=> https://github.com/michael-lazar/jetforce 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.
=> https://elmau.net/posts/certificados-wildcard-con-lets-encrypt/ [1] Generar certificados Wildcard con Let's Encrypt
=> gemini://elmau.net/chuletas.gmi Regresar el índice
=> gemini://elmau.net Regresar al inicio