ahnifyTechnologie & Lizenzen
Transparenz

Was drinsteckt, und unter welcher Lizenz.

ahnify ist selbst gehostet und baut bewusst nur auf Komponenten mit permissiven Open-Source-Lizenzen auf — keine Cloud-Dienste, keine CDN-Einbindungen, keine Copyleft-Bestandteile (GPL/AGPL) im Stack. Alle Versions- und Lizenzangaben unten wurden direkt aus den eingebundenen Dateien bzw. den installierten Paketmetadaten geprüft, nicht aus dem Gedächtnis übernommen.

Backend

Python-Pakete

Aus requirements.txt, Versionen wie zum Prüfzeitpunkt installiert.

PaketVersionLizenzZweck
FastAPI0.136.3MITWeb-Framework
Starlette1.2.1BSD-3-ClauseASGI-Unterbau von FastAPI
Uvicorn0.47.0BSD-3-ClauseASGI-Server
Pydantic / pydantic-settings2.13.4 / 2.14.1MITDatenvalidierung, .env-Konfiguration
PyMySQL1.1.2MITMariaDB-Treiber
DBUtils3.1.2MITConnection-Pool
python-jose3.5.0MITJWT-Signierung
bcrypt5.0.0Apache-2.0Passwort-Hashing
cryptography48.0.0Apache-2.0 / BSD-3Fernet-Verschlüsselung (SMTP-Zugangsdaten, TOTP-Secret)
pyotp2.10.0MITTOTP-Codes (2FA)
qrcode8.2BSDQR-Code-Generierung (2FA-Setup)
email-validator2.3.0UnlicenseE-Mail-Validierung
python-multipart0.0.32Apache-2.0Datei-Uploads
aiofiles25.1.0Apache-2.0Asynchrones Datei-I/O
Pillow12.2.0MIT-CMUThumbnail-Generierung
httpx0.28.1BSD-3-ClauseHTTP-Client (Ollama-Anbindung)
anthropic0.109.1MITClaude-API-Client (KI-Transkription)
slowapi0.1.10MITRate-Limiting
jellyfish1.2.1MITJaro-Winkler-Ähnlichkeit (Dubletten-Erkennung)
cologne-phonetics2.0.0MITKölner Phonetik (phonetische Vorauswahl bei der Dubletten-Erkennung)
Frontend

Vendor-Bibliotheken

Alle self-hosted unter frontend/static/vendor/ — kein CDN, keine Laufzeit-Abhängigkeit von Drittanbietern.

KomponenteVersionLizenzZweck
Bootstrap5.3.3MITCSS-Framework, UI-Komponenten
Bootstrap Icons1.11.3MITIcon-Font
Alpine.js3.14.1MITReaktives UI ohne Build-Schritt
D3.js7.9.0ISCStammbaum, Ahnenfächer, Netzwerk-Graph
Leaflet1.9.4BSD-2-ClauseKartenansicht
Leaflet.markercluster—MITMarker-Clustering auf Karten
Externer Live-Dienst — Ausnahme vom „kein CDN"-Prinzip: Kartenkacheln kommen zur Laufzeit von OpenStreetMap-Tileservern (üblich für Leaflet-Karten, keine sinnvolle Alternative ohne eigene Tile-Infrastruktur). Das Geocoding der Ortsliste ruft Nominatim direkt aus dem Browser auf — kein API-Key nötig, maximal 1 Anfrage/Sekunde (Nutzungsbedingungen), der Batch-Geocoder hält das automatisch ein. Beides sind die einzigen externen Netzwerkaufrufe im gesamten System.
Datenschutz

Client-seitige Speicherung

Keine Cookies. Anmeldung läuft ausschließlich über ein JWT im Authorization: Bearer <token>-Header — der Server setzt zu keinem Zeitpunkt einen Set-Cookie-Header. Ein Cookie-Consent-Banner gibt es folgerichtig nicht, da nichts zu erlauben oder abzulehnen wäre.

Alles Client-seitige liegt in localStorage des Browsers und wird nie automatisch an den Server übertragen. Über „Browserdaten verwalten" (↺-Symbol in der Topnav) einsehbar und kategorisiert löschbar:

KategorieKeysInhalt
Sitzung (nicht Teil des Dialogs)hk-token, hk-userJWT-Zugriffstoken, zwischengespeicherter Nutzer
Einstellungenhk-theme, hk-locale, hk-sidebar-pinned, hk-nav-groupsDark Mode, Sprache, Sidebar-Zustand, Menügruppen
Zuletzt verwendethk_tree_root, hk_fan_centerZuletzt angezeigte Stammbaum-/Ahnenfächer-Startperson
Ansicht-UmschalterdocView, hk_*_map_clusterKachel-/Listenansicht, Karten-Clustering
Suchfilterhk-chips-*, hk_net_event_filterZuletzt verwendete Filterbegriffe je Liste
App-Konfigurationhk-app-name, hk-brandZwischengespeichertes Branding (wird bei jedem Aufruf neu geladen)

Vollständige Key-Liste: README.md, Abschnitt „Client-seitige Speicherung".

Optional

KI-Provider

Die KI-Transkriptions-Pipeline ist vollständig optional und austauschbar (AI_PROVIDER in backend/.env):

ProviderBetriebsartDatenabfluss
Anthropic Claude (Vision)Cloud-API, benötigt eigenen API-KeyDokumentbilder gehen zur Transkription an Anthropic
OllamaLokal, selbst gehostet (z. B. minicpm-v/llama3.2)Keiner — läuft komplett im eigenen Netz
Zusammenfassung

Lizenz-Kompatibilität

Jede eingebundene Komponente — Backend wie Frontend — steht unter einer permissiven Lizenz (MIT, BSD, Apache-2.0, ISC oder Unlicense). Keine davon verlangt, dass eigener Anwendungscode unter derselben Lizenz veröffentlicht wird (kein Copyleft), und keine schließt einen kommerziellen Selbst-Betrieb aus. Namensnennungs-/Copyright-Hinweise der jeweiligen Projekte bleiben in den ausgelieferten Dateien erhalten.