GDPR compliance: self-host all assets, add Impressum + Datenschutz

- Self-host Tailwind, Plotly, D3.js (no more CDN requests)
- Self-host Inter font (no more Google Fonts requests)
- Replace JetBrains Mono with system monospace font stack
- Zero external requests when visiting the site (GDPR-safe)
- Add /impressum page (§5 TMG, §18 MStV)
- Add /datenschutz page (DSGVO Art. 13/14)
- Hosting: Hetzner, no cookies, no tracking, no analytics
- Add Impressum/Datenschutz links to sidebar footer
- Configure Flask static_folder for local asset serving

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-07 08:20:52 +01:00
parent 75c4da72e0
commit da2a989744
13 changed files with 345 additions and 8 deletions

View File

@@ -44,6 +44,8 @@ from webui.data import (
app = Flask(
__name__,
template_folder=str(Path(__file__).parent / "templates"),
static_folder=str(Path(__file__).parent / "static"),
static_url_path="/static",
)
app.config["SECRET_KEY"] = "ietf-dashboard-dev"
@@ -282,6 +284,16 @@ def about():
return render_template("about.html", stats=stats)
@app.route("/impressum")
def impressum():
return render_template("impressum.html")
@app.route("/datenschutz")
def datenschutz():
return render_template("datenschutz.html")
# --- API endpoints for AJAX (used by client-side charts) ---