# 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 ```bash python3 scripts/dossiers-ngi/branch-status-hourly.py # → sites/dossiers.ngi.hacktivism.ch/branch-status.json ``` ## Deploy landing (Freigabe) ```text 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.