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.