ENRE_WEB/despliegue
SITO 7d5dbeec60 Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue
- Rol «externas» para la asamblea de externas: pide sin cupo, siempre con el
  colectivo de fuera y su contacto, y sus solicitudes salen en naranja hasta
  que la asamblea de la Enre las confirma.
- /pedir/ explica en una línea que los colectivos externos piden fecha en la
  asamblea de externas, los lunes de 19:00 a 20:00.
- Seguridad: argon2 limitado a dos cálculos a la vez y el intento se cuenta
  antes de calcular (60 accesos simultáneos llevaban el proceso a 3,8 GB);
  bloqueo por cuenta a 20 fallos para que no se pueda dejar fuera a la
  asamblea; avisos por sesión en vez de por URL; sig sin «..»; eventos de
  31 días como mucho; parámetros de argon2 acotados.
- Títulos pegados arriba en todas las páginas; la franja de la enredadera
  recupera ese alto para seguir llenando la pantalla.
- despliegue/: instalar.sh, cuenta.sh, servicio de systemd con el proceso
  encerrado, fragmento de nginx que además deja de servir .git y las notas
  internas, y configuración de ejemplo. Ninguna contraseña en el repositorio.
2026-09-23 12:15:33 +02:00
..
config.ejemplo.json Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
cuenta.sh Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
enrecal.service Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
instalar.sh Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
nginx-laenre.conf Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
nginx-zona.conf Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00
README.md Cuenta de externas, arreglos de seguridad, títulos arriba y despliegue 2026-09-23 12:15:33 +02:00

Despliegue de /pedir/

El gestor de reservas es un programa en Go que escucha en 127.0.0.1:8090. nginx le pasa /pedir/ y sigue sirviendo el resto de la web como hasta ahora.

Qué Dónde
programa y plantillas /opt/enrecal/
configuración /etc/enrecal/config.json
datos (registro, solo crece) /var/lib/enrecal/registro.jsonl
accesos, para fail2ban /var/log/enrecal/auth.log
servicio enrecal.service, usuario enrecal

Primera vez

En el servidor, en la carpeta de la web (la que ya es un clon del repo):

git fetch && git checkout pedir-evento
sudo ./despliegue/instalar.sh

Después, dos cosas a mano:

  1. Añadir esta línea dentro del server{} de www.laenre.net y recargar:

    include /etc/nginx/snippets/enrecal.conf;
    
    sudo nginx -t && sudo systemctl reload nginx
    

    El fragmento también deja de servir .git, gestor/, despliegue/, README.md, context.txt e info.txt, que ahora mismo se pueden descargar desde la web.

  2. Crear las cuentas. cuenta.sh para el servicio, crea la cuenta y lo vuelve a arrancar:

    sudo ./despliegue/cuenta.sh -usuario asamblea -nombre "Asamblea de La Enre" -rol enre -clave 'LA-CLAVE' -definitiva cuenta
    sudo ./despliegue/cuenta.sh -usuario externas -nombre "Asamblea de externas" -rol externas cuenta
    sudo ./despliegue/cuenta.sh -usuario hacklab -nombre "Hacklab La Raíz" cuenta
    

    Sin -clave, se genera una al azar y se imprime: se entrega en mano y se cambia al entrar. Con -clave X sin -definitiva, también se pide cambiarla al entrar. Ninguna clave va en el repositorio.

Comprobar: https://www.laenre.net/pedir/ carga y https://www.laenre.net/.git/HEAD da 403.

Actualizar

git pull
sudo ./despliegue/instalar.sh

No toca la configuración ni los datos.

Si el servidor no tiene Go

instalar.sh compila si encuentra go. Si no, se compila en otra máquina y se copia el binario a despliegue/enrecal antes de lanzar el instalador:

cd gestor && CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -trimpath -buildvcs=false -o ../despliegue/enrecal .
scp ../despliegue/enrecal servidor:/ruta/de/la/web/despliegue/

Día a día

  • Otra clave para una cuenta: sudo ./despliegue/cuenta.sh -usuario X clave
  • Registro del servicio: journalctl -u enrecal
  • Copia de los datos: basta con copiar /var/lib/enrecal/registro.jsonl, también con el servicio en marcha, porque solo se escribe al final.
  • La configuración (cupo, ventana, qué finde es tranqui o con ruido) se cambia en /etc/enrecal/config.json y se aplica con sudo systemctl restart enrecal.