Contenido desde OASIS y colectivos
Comunicados, comisiones y debates salen del pub: los publica quien es miembro de la tribu de la acampada y además sigue la cuenta de la acampada. Directo enlaza al HUB. Lista de centros sociales y colectivos de Madrid con enlaces comprobados.
This commit is contained in:
parent
f78773bb87
commit
cb551e2a3c
13 changed files with 505 additions and 261 deletions
93
README.md
93
README.md
|
|
@ -1,6 +1,7 @@
|
|||
# acampada26s.net
|
||||
|
||||
Web de la acampada del 26S en Madrid. Comunicados, directo y cómo organizarse.
|
||||
Web de la acampada del 26S en Madrid. Comunicados, directo, cómo organizarse
|
||||
y dónde están los colectivos.
|
||||
|
||||
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.
|
||||
|
|
@ -14,69 +15,95 @@ cae o la tiran, el pub y lo publicado siguen en la red.
|
|||
```
|
||||
site/ lo que se sirve (copiar tal cual a /var/www/acampada26s.net)
|
||||
deploy/ nginx y timer de systemd
|
||||
tools/ limpiar imágenes y regenerar el directo
|
||||
tools/ generador desde OASIS y limpieza de imágenes
|
||||
```
|
||||
|
||||
## Publicar un comunicado
|
||||
## Qué sale de dónde
|
||||
|
||||
1. Copiar `site/comunicados/2026-09-26-convocatoria.html` a
|
||||
`site/comunicados/AAAA-MM-DD-titulo.html` y cambiar título, fecha y texto.
|
||||
2. Añadir un `<li>` arriba del todo en la lista `#comunicados` de `site/index.html`.
|
||||
3. Fotos a `site/img/`, siempre limpias antes:
|
||||
- **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.
|
||||
|
||||
```
|
||||
tools/limpia-img.sh site/img/*.jpg
|
||||
```
|
||||
## Publicar desde OASIS
|
||||
|
||||
El EXIF lleva GPS, modelo de móvil y hora. Además: caras tapadas salvo
|
||||
permiso expreso.
|
||||
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.
|
||||
|
||||
4. Toda imagen con `alt`, `width` y `height`.
|
||||
- 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. Para el directo: el pub OASIS en la misma máquina,
|
||||
Node 22 y Python 3.9+.
|
||||
Requisitos: nginx, certbot, el pub OASIS en la misma máquina, Node 22 y
|
||||
Python 3.9+.
|
||||
|
||||
```
|
||||
rsync -a --delete site/ /var/www/acampada26s.net/
|
||||
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
|
||||
```
|
||||
|
||||
`rsync --delete` borra el bloque directo generado; el timer lo repone en un minuto.
|
||||
Un `rsync` de `index.html` deja los bloques generados vacíos; el timer los
|
||||
repone en dos minutos.
|
||||
|
||||
### Pub OASIS
|
||||
|
||||
El pub se arranca con `sh oasis.sh server` y el HUB web escucha en `:3000`.
|
||||
Conviene que escuche solo en local (`--host=127.0.0.1`): nginx publica `/c`
|
||||
en solo lectura (GET/HEAD) y le quita la IP del visitante.
|
||||
`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.
|
||||
|
||||
Invite para la home: `sh oasis.sh invite 1000`, y pegarlo en `#organizate`.
|
||||
|
||||
### Directo
|
||||
|
||||
`tools/ultimos.js` lee los últimos posts de la identidad de la acampada por el
|
||||
socket local del sbot. `tools/directo.py` los escribe en `index.html` entre
|
||||
`<!-- directo:inicio -->` y `<!-- directo:fin -->`, escapado y con escritura
|
||||
atómica. Sigue siendo un fichero estático: aguanta mucha carga y no hace falta
|
||||
JavaScript.
|
||||
### Generador
|
||||
|
||||
```
|
||||
cp -r . /opt/26s
|
||||
cp deploy/directo.service deploy/directo.timer /etc/systemd/system/
|
||||
# editar FEED, OASIS_DIR y User en directo.service
|
||||
systemctl enable --now directo.timer
|
||||
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 node tools/ultimos.js @feed.ed25519 5 | python3 tools/directo.py site/index.html
|
||||
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
|
||||
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue