2.4 KiB
chamorrx
pequeño servidor gemini en go.
actualmente dando servicio a gemini://caracolito.mooo.com y sus múltiples hosts :)
basado en el ejemplo de servidor de go-gemini y algunos aspectos del servidor de flounder para tener múltiples "hosts virtuales" cada uno con su propio certificado.
instalación
ejecutar
en principio esto funciona con go>=1.17 y se puede ejecutar de la siguiente forma:
$ go run .
bien instalado
como sea, para una instalación más adecuada, tomo algunos pasos de la instalación de pleroma.
crea une user en el sistema para correr el servicio:
$ su -
# useradd -r -s /bin/false -m -d /var/lib/chamorrx -U chamorrx
créale sus directorios:
# mkdir -p /opt/chamorrx
# chown -R chamorrx:chamorrx /opt/chamorrx
ingresamos a su cuenta para trabajar más fácil:
# su -l chamorrx -s $SHELL
$ cd /opt/chamorrx
clonamos el repositorio en ese mismo directorio:
$ git clone https://tildegit.org/sejo/chamorrx /opt/chamorrx
probamos correr el servidor; va a descargar algunos paquetes y va a lanzar error al querer leer la configuración:
$ go run .
creamos el archivo config.txt
de acuerdo a las instrucciones de abajo. después ya debería funcionar :)
ahora construimos el ejecutable chamorrx
:
$ go build
que ahora podemos ejecutar:
$ ./chamorrx
systemd
en el repositorio, ejemplo-chamorrx.service
lo podemos usar como plantilla para correr el servidor a través de systemd.
regresamos a root y copiamos el servicio:
$ exit
# cp /opt/chamorrx/ejemplo-chamorrx.service /etc/systemd/system/chamorrx.service
modificamos el archivo de ser necesario.
por si las dudas, recargamos los archivos de servicios:
# systemctl daemon-reload
iniciamos el servicio:
# systemctl start chamorrx
si todo está bien, lo podemos habilitar:
# systemctl enable chamorrx
¡y listo!
config
el servidor espera una configuración con el siguiente formato en un archivo config.txt
, para indicar los hosts que existirán y desde dónde se servirán:
example.com /var/gemini/ejemplo
otrohost.com /var/gemini/otroejemplo
licencia
THIS IS CHAOTIC SOFTWARE BEWARE gemini://sunshinegardens.org/~xj9/wiki/chaotic-software/