feat(tops): Taler Operations design previews (ng1–ng3)

Static previews on ports 9090–9092: DD 90 branding (Montserrat,
#0042B3, logo), FINMA sticky, no taler-ops-www build. ng1 landing,
ng2 step/amount sliders + tabs, ng3 classic mirror. Podman nginx,
bin/up.sh, Caddy snippet, /CHANGES notes for current site only.
This commit is contained in:
Hernâni Marques 2026-07-10 17:36:51 +02:00
parent 497bc1243d
commit f821dc0eb4
No known key found for this signature in database
16 changed files with 1593 additions and 0 deletions

View file

@ -0,0 +1,39 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Notiz · tops.ng3</title>
<style>
body { font-family: system-ui, sans-serif; max-width: 36rem; margin: 2rem auto; padding: 0 1rem; line-height: 1.5; color: #111; }
h1 { font-size: 1.25rem; margin: 0 0 0.75rem; }
h2 { font-size: 0.95rem; margin: 1.25rem 0 0.4rem; }
ul { padding-left: 1.2rem; margin: 0.3rem 0; }
li { margin: 0.25rem 0; }
code { background: #f3f3f3; padding: 0.05em 0.3em; border-radius: 3px; font-size: 0.9em; }
a { color: #04c; }
.meta { color: #666; font-size: 0.85rem; margin-bottom: 1.25rem; }
.finma { background: #1a0508; color: #ffe8ec; border-bottom: 3px solid #ff4d6a; padding: 0.55rem 0.75rem; font-size: 0.8rem; font-weight: 600; margin: -2rem -1rem 1.25rem; }
</style>
</head>
<body>
<aside class="finma" role="note">
<strong>FINMA:</strong> Taler Operations is not supervised by FINMA.
Escrow not deposit-insured; segregated bank account.
</aside>
<p class="meta"><a href="/">← Start</a> · tops.ng3 · Port 9092</p>
<h1>Diese Seite</h1>
<h2>Inhalt</h2>
<ul>
<li>Klassische Taler-Operations-Website (Spiegel von <a href="https://taler-ops.ch/">taler-ops.ch</a> oder Fallback-HTML)</li>
<li>Kein Build von <code>taler-ops-www</code> — nur HTTP-Mirror / Fallback</li>
</ul>
<h2>Auslieferung (aktuell)</h2>
<ul>
<li><code>nginx:1.27-alpine</code>, rootless Podman · <code>bin/up.sh</code> (+ optional <code>--refresh-classic</code>)</li>
<li>Caddy: <code>reverse_proxy</code><code>127.0.0.1:9092</code></li>
</ul>
</body>
</html>

View file

@ -0,0 +1,36 @@
# Paste into host Caddyfile (/etc/caddy/Caddyfile) and reload Caddy.
# Ports: 9090 ng1 | 9091 ng2 | 9092 ng3
# DNS: tops.ng{1,2,3}.hacktivism.ch → koopa (same as other *.hacktivism.ch)
# --- comment at top of Caddyfile port map ---
# 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 these hosts to the existing HTTP→HTTPS redirect block, e.g.:
# http://..., http://tops.ng1.hacktivism.ch, http://tops.ng2.hacktivism.ch, http://tops.ng3.hacktivism.ch {

View file

@ -0,0 +1,63 @@
# Taler Operations design previews — host ports 9090+
# tops.ng1 → 9090 | tops.ng2 → 9091 | tops.ng3 → 9092
#
# Usage (on koopa):
# cd ~/koopa-tops && ./bin/up.sh
services:
tops-ng1:
image: docker.io/library/nginx:1.27-alpine
container_name: koopa-tops-ng1
restart: unless-stopped
ports:
- "9090:80"
volumes:
- ../ng1:/usr/share/nginx/html:ro
labels:
org.hacktivism.service: tops-ng1
org.hacktivism.host_port: "9090"
org.hacktivism.site: tops.ng1.hacktivism.ch
org.hacktivism.managed_by: koopa-admin
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/"]
interval: 30s
timeout: 5s
retries: 3
tops-ng2:
image: docker.io/library/nginx:1.27-alpine
container_name: koopa-tops-ng2
restart: unless-stopped
ports:
- "9091:80"
volumes:
- ../ng2:/usr/share/nginx/html:ro
labels:
org.hacktivism.service: tops-ng2
org.hacktivism.host_port: "9091"
org.hacktivism.site: tops.ng2.hacktivism.ch
org.hacktivism.managed_by: koopa-admin
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/"]
interval: 30s
timeout: 5s
retries: 3
tops-ng3:
image: docker.io/library/nginx:1.27-alpine
container_name: koopa-tops-ng3
restart: unless-stopped
ports:
- "9092:80"
volumes:
- ../ng3:/usr/share/nginx/html:ro
labels:
org.hacktivism.service: tops-ng3
org.hacktivism.host_port: "9092"
org.hacktivism.site: tops.ng3.hacktivism.ch
org.hacktivism.managed_by: koopa-admin
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://127.0.0.1/"]
interval: 30s
timeout: 5s
retries: 3