sites/dossiers.ngi: blank cascade landing with path-root stubs

This commit is contained in:
Hernâni Marques 2026-09-29 16:10:56 +02:00
parent 0b009b2717
commit 9fa5ce19b6
No known key found for this signature in database
8 changed files with 393 additions and 4 deletions

View file

@ -1,11 +1,11 @@
[Unit]
Description=Timer · Taler landing stats (every 2 min)
Description=Timer · Taler landing stats (every 4h)
Documentation=file:%h/src/koopa/koopa-admin-log/scripts/taler-landing/README.md
[Timer]
OnBootSec=90s
OnUnitActiveSec=2min
AccuracySec=20s
OnUnitActiveSec=4h
AccuracySec=5min
Persistent=true
Unit=taler-landing-stats.service

View file

@ -50,7 +50,7 @@ systemctl --user list-timers 'taler-landing-stats*'
Units:
- `configs/systemd/user/taler-landing-stats.service` — oneshot collector
- `configs/systemd/user/taler-landing-stats.timer` — every **2 minutes** after boot
- `configs/systemd/user/taler-landing-stats.timer` — every **4h** after boot
Installed paths:

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>feat/sm-content · cascade</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>Fassung: feat/sm-content</h1>
<p class="meta">path <code>/feat-sm-content/</code> &middot; tip <code>089ef1f</code> &middot; depends on <a href="/main/"><code>main</code></a></p>
<div class="nav">
<a href="/">home</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>ladder position</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<a href='/main/'>main</a>
<span class='dim'> |</span>
<span class='ok'>* feat/sm-content &lt;-- this Fassung</span>
<span class='dim'> |</span>
<a href='/feat-website-features/'>feat/website-features</a>
<span class='dim'> |</span>
<a href='/feat-website-design/'>feat/website-design</a>
<span class='dim'> |</span>
<a href='/feat-website-views/'>feat/website-views</a></div>
<h2>what this looks like</h2>
<p>SM dossier prose content on top of main.</p>
<p class="dim">Blank relational stub. Frozen Flask build for this tip is separate; this page only shows cascade relation and path root.</p>
</body>
</html>

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>feat/website-design · cascade</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>Fassung: feat/website-design</h1>
<p class="meta">path <code>/feat-website-design/</code> &middot; tip <code>2e26c80</code> &middot; depends on <a href="/feat-website-features/"><code>feat/website-features</code></a></p>
<div class="nav">
<a href="/">home</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>ladder position</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<a href='/main/'>main</a>
<span class='dim'> |</span>
<a href='/feat-sm-content/'>feat/sm-content</a>
<span class='dim'> |</span>
<a href='/feat-website-features/'>feat/website-features</a>
<span class='dim'> |</span>
<span class='ok'>* feat/website-design &lt;-- this Fassung</span>
<span class='dim'> |</span>
<a href='/feat-website-views/'>feat/website-views</a></div>
<h2>what this looks like</h2>
<p>Design/CSS layer on top of features.</p>
<p class="dim">Blank relational stub. Frozen Flask build for this tip is separate; this page only shows cascade relation and path root.</p>
</body>
</html>

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>feat/website-features · cascade</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>Fassung: feat/website-features</h1>
<p class="meta">path <code>/feat-website-features/</code> &middot; tip <code>53a3176</code> &middot; depends on <a href="/feat-sm-content/"><code>feat/sm-content</code></a></p>
<div class="nav">
<a href="/">home</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>ladder position</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<a href='/main/'>main</a>
<span class='dim'> |</span>
<a href='/feat-sm-content/'>feat/sm-content</a>
<span class='dim'> |</span>
<span class='ok'>* feat/website-features &lt;-- this Fassung</span>
<span class='dim'> |</span>
<a href='/feat-website-design/'>feat/website-design</a>
<span class='dim'> |</span>
<a href='/feat-website-views/'>feat/website-views</a></div>
<h2>what this looks like</h2>
<p>Website feature routes on top of sm-content.</p>
<p class="dim">Blank relational stub. Frozen Flask build for this tip is separate; this page only shows cascade relation and path root.</p>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>feat/website-views · cascade</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>Fassung: feat/website-views</h1>
<p class="meta">path <code>/feat-website-views/</code> &middot; tip <code>fcab26c</code> &middot; depends on <a href="/feat-website-design/"><code>feat/website-design</code></a></p>
<div class="nav">
<a href="/">home</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>ladder position</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<a href='/main/'>main</a>
<span class='dim'> |</span>
<a href='/feat-sm-content/'>feat/sm-content</a>
<span class='dim'> |</span>
<a href='/feat-website-features/'>feat/website-features</a>
<span class='dim'> |</span>
<a href='/feat-website-design/'>feat/website-design</a>
<span class='dim'> |</span>
<span class='ok'>* feat/website-views &lt;-- this Fassung</span></div>
<h2>what this looks like</h2>
<p>Views/list layer on top of design (local tip; origin bbafc38).</p>
<p class="dim">Blank relational stub. Frozen Flask build for this tip is separate; this page only shows cascade relation and path root.</p>
<p class="note"><strong>views gap vs dossiers.ngi-0.eu:</strong>
Frozen Flask on this tip exposes project_list / project_detail / dossier_list / blank.
It does not yet mirror the Next.js category-style views on dossiers.ngi-0.eu.
This path documents that gap; category-parity views remain open work.</p>
</body>
</html>

View file

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>cascade landing</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>tech-dossier cascade landing</h1>
<p class="meta">host: dossiers.ngi.hacktivism.ch &middot; blank relational index &middot; owned by koopa-admin-log</p>
<div class="nav">
<a href="/">/</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>relation to main</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<a href='/main/'>main</a>
<span class='dim'> |</span>
<a href='/feat-sm-content/'>feat/sm-content</a>
<span class='dim'> |</span>
<a href='/feat-website-features/'>feat/website-features</a>
<span class='dim'> |</span>
<a href='/feat-website-design/'>feat/website-design</a>
<span class='dim'> |</span>
<a href='/feat-website-views/'>feat/website-views</a></div>
<h2>Fassungen</h2>
<ul class="plain">
<li><a href="/main/"><code>/main/</code></a> &mdash; <code>main</code> @ <code>d2fbd79</code> &middot; base<br><span class="dim">Base freeze tip.</span></li>
<li><a href="/feat-sm-content/"><code>/feat-sm-content/</code></a> &mdash; <code>feat/sm-content</code> @ <code>089ef1f</code> &middot; depends on <code>main</code><br><span class="dim">SM dossier prose content on top of main.</span></li>
<li><a href="/feat-website-features/"><code>/feat-website-features/</code></a> &mdash; <code>feat/website-features</code> @ <code>53a3176</code> &middot; depends on <code>feat/sm-content</code><br><span class="dim">Website feature routes on top of sm-content.</span></li>
<li><a href="/feat-website-design/"><code>/feat-website-design/</code></a> &mdash; <code>feat/website-design</code> @ <code>2e26c80</code> &middot; depends on <code>feat/website-features</code><br><span class="dim">Design/CSS layer on top of features.</span></li>
<li><a href="/feat-website-views/"><code>/feat-website-views/</code></a> &mdash; <code>feat/website-views</code> @ <code>fcab26c</code> &middot; depends on <code>feat/website-design</code><br><span class="dim">Views/list layer on top of design (local tip; origin bbafc38).</span></li>
</ul>
<p class="note">Each path is its own root for that branch Fassung. No dossiers.2 / dossiers.3 subdomains.</p>
</body>
</html>

View file

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>main · cascade</title>
<style>
:root { color-scheme: dark; }
* { box-sizing: border-box; }
body {
margin: 0; padding: 1.5rem;
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
font-size: 14px; line-height: 1.45;
background: #0b0d10; color: #c8d0d8;
}
a { color: #7ec8ff; text-decoration: none; }
a:hover { text-decoration: underline; }
h1 { font-size: 1.15rem; font-weight: 600; margin: 0 0 0.75rem; color: #e8eef4; }
h2 { font-size: 1rem; font-weight: 600; margin: 1.25rem 0 0.5rem; color: #e8eef4; }
.meta { color: #8a96a3; margin-bottom: 1rem; }
.box {
border: 1px solid #2a3340; background: #12161c;
padding: 0.85rem 1rem; margin: 0.75rem 0; white-space: pre; overflow-x: auto;
}
.nav { margin: 0.5rem 0 1rem; }
.nav a { margin-right: 0.85rem; }
.note { color: #b8a46a; margin-top: 1rem; max-width: 72ch; white-space: normal; }
.ok { color: #7dcea0; }
.dim { color: #6a7682; }
ul.plain { padding-left: 1.2rem; }
li { margin: 0.25rem 0; }
</style>
</head>
<body>
<h1>Fassung: main</h1>
<p class="meta">path <code>/main/</code> &middot; tip <code>d2fbd79</code> &middot; depends on <span class='dim'>none (base)</span></p>
<div class="nav">
<a href="/">home</a>
<a href="/main/">/main/</a>
<a href="/feat-sm-content/">/feat-sm-content/</a>
<a href="/feat-website-features/">/feat-website-features/</a>
<a href="/feat-website-design/">/feat-website-design/</a>
<a href="/feat-website-views/">/feat-website-views/</a>
</div>
<h2>ladder position</h2>
<div class="box">cascade ladder (path roots on dossiers.ngi only)
<span class='ok'>* main &lt;-- this Fassung</span>
<span class='dim'> |</span>
<a href='/feat-sm-content/'>feat/sm-content</a>
<span class='dim'> |</span>
<a href='/feat-website-features/'>feat/website-features</a>
<span class='dim'> |</span>
<a href='/feat-website-design/'>feat/website-design</a>
<span class='dim'> |</span>
<a href='/feat-website-views/'>feat/website-views</a></div>
<h2>what this looks like</h2>
<p>Base freeze tip.</p>
<p class="dim">Blank relational stub. Frozen Flask build for this tip is separate; this page only shows cascade relation and path root.</p>
</body>
</html>