Contenido

Cómo instalar un servidor para el protocolo Gemini

En el artículo anterior comentaba acerca del protocolo Gemini y como navegar por sus cápsulas. Todo esto puede resultar simplemente una curiosidad o despertar mucho interés en personas que les guste encontrar cosas interesantes enterradas en las profundidades del ciberespacio.

Hay quienes quieran entrar de lleno en el tema y generar contenido en modo texto mediante este protocolo. Y que decirles, tener una de estas cápsulas no es muy complicado:

Requisitos antes de comenzar

  1. Un servidor (Raspberry, VPS, NAS, etc)
  2. Un nombre de dominio (apuntando al servidor)
  3. Puerto TCP 1965 abierto en el servidor y en el router

Preparación

a. En el servidor necesitaremos crear un directorio /gemini y subdirectorios /content y /certificate:

mkdir -p gemini/{content,certificate}

b. Crearemos una pequeña cápsula de ejemplo:

nano gemini/content/index.gmi

# Este es el Título

## Esta Cápsula funciona!

Hello world

El contenido en este archivo es texto plano, con un lenguaje de marcado similar a Markdown llamado Gemtext. Aquí tienes una breve introducción a Gemtext.

Instalación del servidor Gemini

Hay muchos servidores disponibles. Yo elegí uno llamado Molly-Brown que está disponible para arquitectura ARM desde los repositorios de Ubuntu.

sudo apt install molly-brown

Esta es la página del proyecto con la respectiva documentación.

Creación del certificado

Entramos al directorio /certificate:

cd gemini/certificate

y lo creamos:

openssl req -new -subj "/CN=capsula.milangaelectronica.com.ar" -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 3650 -nodes -out cert.pem -keyout key.pem

Configuración

El archivo de configuración por defecto esta ubicado en /etc/molly.conf

sudo nano /etc/molly.conf

y configuramos los respectivos campos como en el ejemplo de abajo, cambiando las rutas y el nombre de dominio por los que hayamos elegido:

# Molly Brown localhost server config using snakeoil certificates

CertPath = "~/gemini/certificate/cert.pem"
KeyPath = "~/gemini/certificate/key.pem"
DocBase = "~/gemini/content/"
AccessLog = "-"
ErrorLog = "/home/ubuntu/oracle-arm/gemini/server/errors.log"
Port = 1965
Hostname = "capsula.milangaelectronica.com.ar"

Configuración del servicio con Systemd

sudo nano /etc/systemd/system/molly-brown.service

Y usamos el contenido de este ejemplo:

[Unit]
Description=Molly Brown gemini server
After=network.target

[Service]
Type=simple
Restart=always
User=ubuntu
ExecStart=/usr/bin/molly-brown

[Install]
WantedBy=multi-user.target

Activamos el el servicio: sudo systemctl enable molly-brown.service

sudo systemctl start molly-brown.service

En caso de tener un proxy inverso en el servidor:

Yo suelo utilizar Caddy, por lo que poniendo el siguiente registro al final del archivo Caddyfile funcionó sin problemas:

capsula.milangaelectronica.com.ar {
                      reverse_proxy 127.0.0.1:1965
                                  }

 

¡Deja tus comentarios aquí !

 

Referencias

 

 

 

Dame feedback!

 

 Suscríbete en Spotify, iVoox, Google Podcast o en Apple Podcast.