- 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.
2.6 KiB
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:
-
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 nginxEl fragmento también deja de servir
.git,gestor/,despliegue/,README.md,context.txteinfo.txt, que ahora mismo se pueden descargar desde la web. -
Crear las cuentas.
cuenta.shpara 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" cuentaSin
-clave, se genera una al azar y se imprime: se entrega en mano y se cambia al entrar. Con-clave Xsin-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.jsony se aplica consudo systemctl restart enrecal.