176 lines
4.5 KiB
Plaintext
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
|
|
|