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.
This commit is contained in:
parent
ce3127baff
commit
7d5dbeec60
24 changed files with 606 additions and 96 deletions
69
despliegue/README.md
Normal file
69
despliegue/README.md
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
# 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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue