# Taler Operations WWW — design previews (koopa) Experimental **static** previews for a redesign of [taler-ops.ch](https://taler-ops.ch/). Content is inspired by **`taler-ops-www`** (`git.taler.net/taler-ops-www`). ## Source branches (`taler-ops-www`) | Branch | Meaning | |--------|---------| | **`stable`** | **Stable website** (classic production-oriented tree) | | **`master`** | Ongoing development | This preview stack **does not build** `taler-ops-www` (Jinja/Parcel). If the upstream tree is old, incomplete, or fails to build — **we do not build it**. - **ng1 / ng2**: hand-crafted static HTML in this repo - **ng3**: optional **HTTP mirror** of live classic site (or a tiny fallback page) ## Ports (9090+) | Host | Variant | Port | Container | |------|---------|------|-----------| | `tops.ng1.hacktivism.ch` | Taler DD 90 branding (Montserrat, `#0042B3`) | **9090** | `koopa-tops-ng1` | | `tops.ng2.hacktivism.ch` | DD 90 + step/amount sliders | **9091** | `koopa-tops-ng2` | | `tops.ng3.hacktivism.ch` | Classic / stable-era look | **9092** | `koopa-tops-ng3` | ## FINMA ng1 and ng2 keep a **sticky, always-visible** FINMA disclaimer (not supervised by FINMA; escrow not deposit-insured; segregated account). ng3 uses the classic site wording when mirrored, or the same disclaimer on the fallback page. ## Deploy on koopa Copy this tree to the host, then run the script (rootless podman as `hernani`): ```bash # from your laptop (example) scp -r configs/taler-ops-ng hernani@koopa:~/koopa-tops # on koopa cd ~/koopa-tops chmod +x bin/up.sh ./bin/up.sh # start :9090 :9091 :9092 ./bin/up.sh status ./bin/up.sh --refresh-classic # re-mirror live taler-ops.ch → ng3 (no build) ./bin/up.sh down ``` Smoke without Caddy: ```bash curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9090/ curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9091/ curl -sS -o /dev/null -w "%{http_code}\n" http://127.0.0.1:9092/ ``` ## Caddy (host) Snippet: `deploy/Caddyfile.snippet` ```caddy # 9090 tops ng1 | 9091 tops ng2 | 9092 tops ng3 tops.ng1.hacktivism.ch { header Alt-Svc "clear" reverse_proxy 127.0.0.1:9090 { header_up Host {host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} } } tops.ng2.hacktivism.ch { header Alt-Svc "clear" reverse_proxy 127.0.0.1:9091 { header_up Host {host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} } } tops.ng3.hacktivism.ch { header Alt-Svc "clear" reverse_proxy 127.0.0.1:9092 { header_up Host {host} header_up X-Forwarded-For {remote_host} header_up X-Forwarded-Proto {scheme} } } ``` Also add the three hostnames to the existing HTTP→HTTPS redirect site list, then: ```bash sudo caddy validate --config /etc/caddy/Caddyfile sudo systemctl reload caddy ``` DNS: `tops.ng1`, `tops.ng2`, `tops.ng3` under `hacktivism.ch` → koopa (same as other public vhosts). ## Layout ``` configs/taler-ops-ng/ README.md ← this file bin/up.sh ← run on koopa deploy/compose.yml ← podman compose deploy/Caddyfile.snippet ng1/index.html ← design preview ng1/CHANGES/index.html ← /CHANGES ng2/… · ng3/… ← same; ng3 also mirror/fallback ``` ## /CHANGES Each preview serves a short change log at **`/CHANGES/`** (ng1, ng2, ng3). ## Design notes - **ng1**: GNU Taler branding per [DD 90](https://docs.taler.net/design-documents/090-branding.html) / [DD 66](https://docs.taler.net/design-documents/066-wallet-color-scheme.html) (Montserrat, primary `#0042B3`, official logo). - **ng2**: same DD 90 tokens as ng1; step carousel + amount range slider + topic tabs. - **ng3**: classic production look via mirror; no Parcel/Jinja build pipeline.