Statistik-Seite: Kennzahlen, Reichweite, ASN und Verlaeufe

Neue Seite /stats.html: Basiszahlen, Reichweite, Netze nach Betreiber
(ASN), Aufrufe pro Tag und beliebteste Seiten. Diagramme als CSS-Balken
(Breite per CSSOM, kein Inline-style) statt Chart-Library -- bleibt
CSP-konform. Verlinkt in der Legal-Nav aller Seiten.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-17 23:21:17 +02:00
parent 662285c8b5
commit 8be8ecedc9
6 changed files with 213 additions and 3 deletions
+51
View File
@@ -0,0 +1,51 @@
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Statistik Kontrollverlust</title>
<link rel="stylesheet" href="/css/app.css">
</head>
<body>
<header>
<nav id="legal">
<a href="/static/docs/impressum.html">Impressum</a> -
<a href="/static/docs/datenschutz.html">Datenschutz</a> -
<a href="/static/docs/beitragsordnung.html">Beitragsordnung</a>
</nav>
<a href="/"><h1>Kontrollverlust</h1></a>
<div id="headerbar"><a class="button" href="/">zurück zum Feed</a></div>
</header>
<main>
<section>
<h2>Statistik</h2>
<h3>Auf einen Blick</h3>
<div id="stat-overview" class="statgrid"></div>
<h3>Reichweite</h3>
<p class="muted">
Seitenaufrufe werden mit anonymisierten Netzen gezählt (IPv4 /16, IPv6 /32).
„Netze" ist eine grobe Annäherung an Besucher, keine Personenzählung.
</p>
<div id="stat-reach" class="statgrid"></div>
<h3>Netze nach Betreiber</h3>
<p class="muted">
Aufrufe je autonomem System (Netzbetreiber), aufgelöst über GeoLite2-ASN.
</p>
<div id="stat-asns" class="bars"></div>
<h3>Aufrufe pro Tag</h3>
<div id="stat-daily" class="bars"></div>
<h3>Beliebteste Seiten</h3>
<div id="stat-pages" class="bars"></div>
</section>
</main>
<script src="/js/feed.js"></script>
<script src="/js/stats.js"></script>
</body>
</html>