diff --git a/notes/deploy.md b/notes/deploy.md index 1a976a6..10b1e16 100644 --- a/notes/deploy.md +++ b/notes/deploy.md @@ -57,6 +57,24 @@ Konfiguration über Umgebungsvariablen: |-------------|---------------------|----------------------| | `KVER_ADDR` | `:8080` | Listen-Adresse im Container | | `KVER_DB` | `/app/data/kver.db` | Pfad zur SQLite-Datei | +| `KVER_GEOIP_ASN` | _(leer)_ | Pfad zur GeoLite2-ASN-`.mmdb`; leer = ASN-Auflösung aus | + +## GeoLite2-ASN-Datenbank (optional) + +Für die netzwerktopologische Einordnung der Impressions (Spalte `impression.asn`). +Ohne diese DB läuft alles normal weiter, die Impressions haben dann nur kein ASN. + +Die `GeoLite2-ASN.mmdb` gibt es kostenlos bei MaxMind (Konto + Lizenzschlüssel, +monatliche Updates). Datei ins Daten-Volume legen und den Pfad setzen: + +```sh +podman unshare cp GeoLite2-ASN.mmdb \ + "$(podman volume inspect kver-data --format '{{.Mountpoint}}')/" +``` + +Dann `KVER_GEOIP_ASN=/app/data/GeoLite2-ASN.mmdb` setzen. Die Datei wird beim Start +einmalig gemappt; für aktualisierte Daten die Datei ersetzen und den Dienst neu +starten. ## Bestehende Daten übernehmen diff --git a/notes/migrations.md b/notes/migrations.md index e4f5067..e2a203e 100644 --- a/notes/migrations.md +++ b/notes/migrations.md @@ -97,3 +97,24 @@ ALTER TABLE entry ADD COLUMN deleted INTEGER NOT NULL DEFAULT 0; ``` Bestehende Beiträge bleiben damit sichtbar (`deleted = 0`). Nur einmalig ausführen. + +--- + +## `asn`-Spalte in `impression` + +**Wann:** beim Deploy der ASN-Auswertung gegen eine bestehende `impression`-Tabelle. + +**Hintergrund:** Pro Impression wird das autonome System (Netzbetreiber) gespeichert, +aufgelöst aus der vollen Client-IP *vor* dem Maskieren (siehe `lookupASN`). Die Spalte +liegt bewusst **nicht** im Primärschlüssel — pro `anon_ip` ist das ASN deterministisch, +also entstehen keine Zeilen-Duplikate, und ein simples `ADD COLUMN` genügt (kein +Tabellen-Rebuild). `CREATE TABLE IF NOT EXISTS` ergänzt die Spalte bei einer +vorhandenen Tabelle nicht. + +**Migration:** +```sql +ALTER TABLE impression ADD COLUMN asn TEXT NOT NULL DEFAULT ''; +``` + +Bestehende Zeilen haben damit kein ASN (`''`, in der Auswertung „(unbekannt)"). Nur +einmalig ausführen. diff --git a/static/docs/datenschutz.html b/static/docs/datenschutz.html index 46dca02..a54adae 100644 --- a/static/docs/datenschutz.html +++ b/static/docs/datenschutz.html @@ -69,7 +69,7 @@ E-Mail: david@bernet.it IP-Adresse (anonymisiert) -Nutzungsstatistik +Reichweitenmessung (Seitenaufrufe) Unbegrenzt Berechtigtes Interesse @@ -135,15 +135,23 @@ E-Mail: david@bernet.it Speicherdauer: Maximal 24 Stunden

-

5. Anonymisierte Nutzungsstatistik

+

5. Anonymisierte Reichweitenmessung

Erfasste Daten:

-Zweck: Erfassung des Seitenwachstums und Auswertung der Nutzeraktivität
+Verarbeitung: + +Zweck: Erfassung des Seitenwachstums und der Reichweite (Seitenaufrufe)
Rechtsgrundlage: Berechtigtes Interesse (Art. 6 Abs. 1 lit. f DSGVO)
-Hinweis: Durch die Anonymisierung ist keine Rückverfolgung auf einzelne Personen möglich +Hinweis: Durch die Anonymisierung und Aggregation ist keine Rückverfolgung auf einzelne Personen möglich.

6. Datenlöschung