README corto y sin comentarios en el código
This commit is contained in:
parent
cb551e2a3c
commit
7ed0276704
9 changed files with 7 additions and 165 deletions
120
README.md
120
README.md
|
|
@ -1,117 +1,11 @@
|
|||
# acampada26s.net
|
||||
|
||||
Web de la acampada del 26S en Madrid. Comunicados, directo, cómo organizarse
|
||||
y dónde están los colectivos.
|
||||
Web de la acampada del 26S en Madrid. HTML y CSS, sin JavaScript.
|
||||
|
||||
HTML y CSS. Sin JavaScript en el navegador, sin cookies, sin analítica y sin
|
||||
peticiones a terceros. La tipografía va dentro del repo.
|
||||
1. `site/` va a `/var/www/acampada26s.net`. `deploy/nginx.conf` y `deploy/hub.conf` a nginx.
|
||||
2. Directo es el HUB del pub OASIS (`/c`), servido en local en `127.0.0.1:3000`.
|
||||
3. Comunicados, comisiones y debates salen de OASIS con `deploy/web26s.timer`. Rellenar `CUENTA` y `TRIBU` en `deploy/web26s.service`.
|
||||
4. Publica quien está en la tribu pública de la acampada y lo sigue la cuenta de la acampada. Comunicado: post con `#comunicado26s`, primera línea de título. Comisión: subtribu pública. Debate: foro público.
|
||||
5. Fotos subidas a mano: `tools/limpia-img.sh` antes, siempre.
|
||||
|
||||
La comunicación viva no depende de esta web: va por un pub de
|
||||
[OASIS](https://code.03c8.net/krakenslab/oasis) (Secure Scuttlebutt). Si la web
|
||||
cae o la tiran, el pub y lo publicado siguen en la red.
|
||||
|
||||
## Estructura
|
||||
|
||||
```
|
||||
site/ lo que se sirve (copiar tal cual a /var/www/acampada26s.net)
|
||||
deploy/ nginx y timer de systemd
|
||||
tools/ generador desde OASIS y limpieza de imágenes
|
||||
```
|
||||
|
||||
## Qué sale de dónde
|
||||
|
||||
- **Directo**: enlace al HUB del pub (`/c?type=feed`). Lo sube la gente de
|
||||
comunicación desde OASIS. No pasa por esta web.
|
||||
- **Comunicados, comisiones y debates**: los genera `tools/` a partir de OASIS
|
||||
cada dos minutos. Nadie edita HTML a mano.
|
||||
- **Colectivos**: lista fija en `site/index.html`. Para añadir uno, un `<li>`
|
||||
más. Solo webs o cuentas comprobadas.
|
||||
|
||||
## Publicar desde OASIS
|
||||
|
||||
Quien publica en la web: miembros de la tribu pública de la acampada **a los
|
||||
que la cuenta de la acampada sigue**. Hacen falta las dos cosas. Unirse a una
|
||||
tribu es un mensaje que cualquiera puede publicar sobre sí mismo (el código de
|
||||
invitación solo lo comprueba la interfaz), así que la tribu sola no vale como
|
||||
permiso. El follow lo firma la cuenta de la acampada y no se puede falsificar.
|
||||
|
||||
- Dar permiso: invitar a la tribu y seguir desde la cuenta de la acampada.
|
||||
- Quitarlo: dejar de seguir. Sus comunicados desaparecen en la siguiente pasada.
|
||||
|
||||
Qué se publica:
|
||||
|
||||
- **Comunicado**: un post con `#comunicado26s`. La primera línea es el título.
|
||||
Las imágenes adjuntas salen en la página. Si se borra en OASIS, se borra aquí.
|
||||
- **Comisión**: una subtribu pública de la tribu de la acampada, creada por
|
||||
alguien con permiso.
|
||||
- **Debate**: un foro público abierto por alguien con permiso.
|
||||
|
||||
Las tribus privadas y lo que se escribe dentro de las tribus va cifrado; eso
|
||||
no sale en la web ni debe salir.
|
||||
|
||||
La tribu tiene que ser pública (no anónima) y con invitación estricta, y la
|
||||
tiene que crear la cuenta de la acampada.
|
||||
|
||||
## Imágenes
|
||||
|
||||
Las de los comunicados las sirve el pub (`/c/blob/...`). Las que se suban a
|
||||
mano a `site/img/`, siempre limpias antes:
|
||||
|
||||
```
|
||||
tools/limpia-img.sh site/img/*.jpg
|
||||
```
|
||||
|
||||
El EXIF lleva GPS, modelo de móvil y hora. Caras tapadas salvo permiso expreso.
|
||||
|
||||
## Despliegue
|
||||
|
||||
Requisitos: nginx, certbot, el pub OASIS en la misma máquina, Node 22 y
|
||||
Python 3.9+.
|
||||
|
||||
```
|
||||
rsync -a --exclude comunicados/ site/ /var/www/acampada26s.net/
|
||||
cp deploy/nginx.conf /etc/nginx/sites-available/acampada26s.net
|
||||
cp deploy/hub.conf /etc/nginx/snippets/acampada26s-hub.conf
|
||||
ln -s ../sites-available/acampada26s.net /etc/nginx/sites-enabled/
|
||||
nginx -t && systemctl reload nginx
|
||||
```
|
||||
|
||||
Un `rsync` de `index.html` deja los bloques generados vacíos; el timer los
|
||||
repone en dos minutos.
|
||||
|
||||
### Pub OASIS
|
||||
|
||||
`sh oasis.sh server`. El HUB web escucha en `:3000`; mejor solo en local
|
||||
(`--host=127.0.0.1`). nginx publica `/c` en solo lectura y sin la IP de quien
|
||||
visita.
|
||||
|
||||
### Generador
|
||||
|
||||
```
|
||||
cp -r . /opt/26s
|
||||
cp deploy/web26s.service deploy/web26s.timer /etc/systemd/system/
|
||||
# rellenar CUENTA, TRIBU, OASIS_DIR y User en web26s.service
|
||||
systemctl enable --now web26s.timer
|
||||
```
|
||||
|
||||
A mano:
|
||||
|
||||
```
|
||||
OASIS_DIR=~/oasis CUENTA=@...ed25519 TRIBU=%...sha256 node tools/extrae.js \
|
||||
| python3 tools/genera.py site
|
||||
```
|
||||
|
||||
`extrae.js` solo lee del sbot por su socket local. `genera.py` escapa todo lo
|
||||
que viene de SSB, solo deja enlaces `http(s)` y escribe de forma atómica.
|
||||
|
||||
## Comprobaciones antes de subir
|
||||
|
||||
```
|
||||
grep -rniE '<script|javascript:|\son[a-z]+=' site/ # nada
|
||||
grep -rnoE 'https?://[^"]+' site/ # solo enlaces salientes
|
||||
```
|
||||
|
||||
## Licencia
|
||||
|
||||
Código: AGPL-3.0 (`LICENSE`). Textos e imágenes: CC BY-SA 4.0.
|
||||
Tipografía Anton: SIL OFL 1.1 (`site/fonts/OFL.txt`).
|
||||
Código AGPL-3.0. Textos CC BY-SA 4.0. Tipografía Anton, OFL.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue