💾 Archived View for sl1200.dystopic.world › art › kinetoproxy.gmi captured on 2023-12-28 at 15:25:52. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
2022-04-03
#gemini #linux #vps
Este es un tutorial destinado a noobs o usuarios con conocimientos limitados de linux, para instalar con facilidad el proxy kineto y hagáis accesible vuestra cápsula gémini desde cualquier navegador web.
Tener instalados nginx, certbot y go.
En mi caso dispongo de un VPS con Debian 10, un usuario con nombre sl1200 y un dominio, dystopic.world, con las DNS configuradas para que las peticiones de cualquier subdominio se dirijan a mi VPS. El objetivo es que el proxy dirija al subdominio proxy.dystopic.world, que será la dirección en la cual se podrá ver mi cápsula desde cualquier navegador web http.
Nginx debe estar en todos los repositorios, su instalación es muy simple.
sudo apt update sudo apt install nginx
Para instalar certbot debes seguir las instrucciones en su web, en función de que servidor web tengas, en este caso nginx:
Lo primero actualizamos
sudo apt update sudo apt upgrade
Descargamos go, poner la última versión en lugar de XX.X y descomprimimos en /usr/local
wget https://golang.org/dl/go1.XX.X.linux-amd64.tar.gz sudo tar -C /usr/local -xzf go1.XX.X.linux-amd64.tar.gz
Nos aparecerá la carpeta go dentro de /user/local y dentro la carpeta bin que contendrá el ejecutable. Ahora añadimos ese path al archivo ~/.bashrc. Abrimos el archivo ~/.bashrc :
sudo nano ~/.bashrc
Añadimos esta línea al final:
export PATH=$PATH:/usr/local/go/bin:$GOPATH/bin
Guardamos, salimos y recargamos ~/.bashrc con este comando:
source ~/.bashrc
Comprobamos que go está efectivamente instalado con el comando:
go version
Que nos dirá la versión instalada:
go version go1.XX.X linux/amd64
Clonamos :
git clone https://git.sr.ht/~sircmpwn/kineto
Accedemos al directorio `kineto` y compilamos:
go build
Si todo va bien, se generará un ejecutable `kineto` cuya ruta absoluta será `/home/sl1200/kineto/kineto`. Conocer esta ruta será necesario para el siguiente paso.
Usaremos systemd para convertir kineto en un demonio e inicializarlo al arrancar el sistema. Creamos el archivo `/etc/systemd/system/kineto.service` con el siguiente contenido:
[Unit] Description=Kineto Server [Service] Type=simple Restart=always ExecStart=/home/sl1200/kineto/kineto \ -b 0.0.0.0:1966 \ gemini://proxy.dystopic.world [Install] WantedBy=default.target
Habilitamos y arrancamos el nuevo servicio:
sudo systemctl daemon-reload sudo systemctl enable kineto.service sudo systemctl start kineto.service
Con estos parámetros, hemos configurado que el proxy se arranque en el puerto 1966 (por poner uno, puede ser cualquiera) y que la página de inicio del proxy sea nuestra propia cápsula.
sudo certonly --nginx -d proxy.dystopic.world
Esto nos creará el certificado en los directorios:
ssl_certificate /etc/letsencrypt/live/proxy.dystopic.world/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/proxy.dystopic.world/privkey.pem;
- El puerto 80 (HTTP) lo redirigiremos al puerto 443 (HTTPS).
- El puerto 443 lo desviaremos a su vez al 1966 (donde está el proxy), pero con el añadido del cifrado con el certificado.
Creamos un archivo `/etc/nginx/conf.d/gemini.conf` con este contenido:
server { listen 80; server_name proxy.dystopic.world; return 301 https://proxy.dystopic.world$request_uri; } server { listen 443 ssl; server_name proxy.dystopic.world; ssl_certificate /etc/letsencrypt/live/proxy.dystopic.world/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/proxy.dystopic.world/privkey.pem; ssl_protocols TLSv1.3; location / { proxy_pass http://127.0.0.1:1966; } }
Reiniciamos el servicio nginx
sudo systemctl restart nginx
y ya podemos ver el proxy accediendo a https://proxy.dystopic.world
Si queremos personalizar el CSS del proxy, añadimos -s y la ruta de nuestro archivo de estilo, estilo.css, a la línea ExecStart... del archivo del servicio kineto.service que hemos creado antes, al final el archivo quedará así:
[Unit] Description=Kineto Server [Service] Type=simple Restart=always ExecStart=/home/sl1200/kineto/kineto -s /home/sl1200/kineto/estilo.css -b 0.0.0.0:1966 gemini://s$ [Install] WantedBy=default.target
Después reiniciamos el servicio y el proxy quedará con el formato que hayamos definido en el CSS:
sudo systemctl daemon-reload sudo systemctl enable kineto.service sudo systemctl start kineto.service
Si accedes a la cápsula a través del proxy y pulsas sobre un link de otra cápsula te percatarás de que es posible acceder a otras cápsulas a través del proxy. Si quieres usar directamente el proxy para acceder a otras cápsulas de las que no tenga un link publicado sólo tienes que añadir /x/ y la url gemini de la cápsula que quieres visitar al final de la dirección de mi proxy, por ejemplo, si quieres acceder a:
gemini://medusae.space
sólo deberás poner:
https://proxy.dystopic.world/x/medusae.space
Aunque parezca un poco complicado todo el proceso de contratar un dominio, vps, crear tu cápsula y ahora el proxy, recomiendo de verdad publicar en gemini y tener presencia en la web http a través de un proxy. Te queda la sensación de tener un enorme control sobre lo que has hecho, algo que no vas a tener contratando un servicio de hosting, un wordpress y usando generadores de sitios estáticos o cualquier otra solución en la que tu dependencia de terceros sea excesiva.