100 lines
2.1 KiB
Markdown
100 lines
2.1 KiB
Markdown
# 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 <gemini://sunshinegardens.org/~xj9/wiki/chaotic-software/>
|