pequeño servidor gemini
Go to file
sejo d893a7e678 nota sobre caracolito 2022-01-20 16:03:42 -06:00
LICENSE.txt commit inicial 2022-01-20 14:44:06 -06:00
README.md nota sobre caracolito 2022-01-20 16:03:42 -06:00
ejemplo-chamorrx.service paths absolutos para certs y config 2022-01-20 15:55:04 -06:00
go.mod commit inicial 2022-01-20 14:44:06 -06:00
go.sum commit inicial 2022-01-20 14:44:06 -06:00
servidor.go paths absolutos para certs y config 2022-01-20 15:55:04 -06:00

README.md

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/