Home con directo, comunicados y organización. HTML y CSS, sin JS. Configuración de nginx, timer del directo y limpieza de EXIF. |
||
|---|---|---|
| deploy | ||
| site | ||
| tools | ||
| LICENSE | ||
| README.md | ||
acampada26s.net
Web de la acampada del 26S en Madrid. Comunicados, directo y cómo organizarse.
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.
La comunicación viva no depende de esta web: va por un pub de 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/ limpiar imágenes y regenerar el directo
Publicar un comunicado
-
Copiar
site/comunicados/2026-09-26-convocatoria.htmlasite/comunicados/AAAA-MM-DD-titulo.htmly cambiar título, fecha y texto. -
Añadir un
<li>arriba del todo en la lista#comunicadosdesite/index.html. -
Fotos a
site/img/, siempre limpias antes:tools/limpia-img.sh site/img/*.jpgEl EXIF lleva GPS, modelo de móvil y hora. Además: caras tapadas salvo permiso expreso.
-
Toda imagen con
alt,widthyheight.
Despliegue
Requisitos: nginx, certbot. Para el directo: el pub OASIS en la misma máquina, Node 22 y Python 3.9+.
rsync -a --delete 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.
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.
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.
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
A mano:
OASIS_DIR=~/oasis node tools/ultimos.js @feed.ed25519 5 | python3 tools/directo.py site/index.html
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).