koopa-admin-log/scripts/dossiers-ngi/README.md
2026-09-30 12:50:54 +02:00

3.3 KiB

dossiers-ngi — cascade landing + hourly branch-status

SoT for the blank cascade landing on dossiers.ngi.hacktivism.ch (path roots only; no dossiers.2 / dossiers.3 ownership here).

Path Role
sites/dossiers.ngi.hacktivism.ch/ Landing HTML (EN, ASCII ladder)
scripts/dossiers-ngi/branch-status-hourly.py Read tips from tdpd checkout → branch-status.json
configs/systemd/user/dossiers-ngi-branch-status.{timer,service} Hourly oneshot on koopa

Env

Var Default Meaning
TDPD_ROOT $HOME/git/src/ngi/tech-dossier-project-data tech-dossier-project-data checkout for tip SHAs
ADMIN_LOG (script derives from __file__) koopa-admin-log root

On koopa the clone often lives at %h/src/koopa/koopa-admin-log; set TDPD_ROOT in the service Environment= if the tdpd path differs.

Manual run

python3 scripts/dossiers-ngi/branch-status-hourly.py
# → sites/dossiers.ngi.hacktivism.ch/branch-status.json

Deploy landing (Freigabe)

hernani@koopa:/var/www/monitoring-sites/dossiers.ngi.hacktivism.ch/

rsync from sites/dossiers.ngi.hacktivism.ch/ — Freigabe this session required. Hourly JSON can sit next to the HTML once the timer is installed on koopa (Freigabe for host mutation).

Ownership

Hourly builder belongs in kal (this tree). Do not put scripts/branch-status-hourly.py back into tdpd.

Sticky cascade bar

Stock Caddy templates renders {% include "_cascade/bar.html" . %} on each HTML page. The include path has no leading slash. The dot passes the request, so .Req.URL.Path marks the active link with class="is-active" and aria-current="page". Delimiters are {% %}, so a later {{ }} in real dossier HTML stays literal.

The bar lists cascade / plus the five branch paths. Seeded tips match branch-status.json. /_cascade/bar.js refreshes [data-tip] from that JSON (cache: no-store). CSS is /_cascade/bar.css (position: sticky).

Enable templates before rsync. A page without the include does not grow the bar. {% without the templates directive is shown as raw text.

Templates apply is host-local on koopa (~/bin/apply-dossiers-ngi-templates.sh), not tracked in this repo. It edits ~/koopa-caddy/Caddyfile only (this host; keeps header Alt-Svc "clear" and any basic_auth; leaves .2 / .3 untouched). Then reload with the usual home→/etc helper:

bash ~/bin/apply-dossiers-ngi-templates.sh
sudo ~/bin/caddy-apply

The stanza body for hand-check / re-seed lives in scripts/dossiers-ngi/caddy-dossiers-ngi.snippet. scripts/caddy/caddy-apply.sh --snippet leaves an existing block unchanged. Leave scripts/caddy/apply-goa-wdGet-full-replace.sh and scripts/caddy/apply-dossiers-ngi-basicauth.sh unused. No response-body replace plugin.

After validate and reload succeed, rsync from the laptop (Freigabe):

rsync -avz --delete --exclude .DS_Store \
  "$HOME/git/admin-logs/local/koopa-admin-log/sites/dossiers.ngi.hacktivism.ch/" \
  hernani@koopa:/var/www/monitoring-sites/dossiers.ngi.hacktivism.ch/

--delete removes _cascade/ on the server when the source tree is an older copy. The bar does not finish the dossier site. This section does not install the hourly timer.