# chamorrx pequeño servidor gemini en go basado en el ejemplo de servidor de [go-gemini](https://git.sr.ht/~adnano/go-gemini) y algunos aspectos del servidor de [flounder](https://git.alexwennerberg.com/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](https://docs-develop.pleroma.social/backend/installation/debian_based_en/). 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. iniciamos el servicio: ``` # systemctl start chamorrx ``` # 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