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.
Aus requirements.txt, Versionen wie zum Prüfzeitpunkt installiert.
| Paket | Version | Lizenz | Zweck |
|---|---|---|---|
| FastAPI | 0.136.3 | MIT | Web-Framework |
| Starlette | 1.2.1 | BSD-3-Clause | ASGI-Unterbau von FastAPI |
| Uvicorn | 0.47.0 | BSD-3-Clause | ASGI-Server |
| Pydantic / pydantic-settings | 2.13.4 / 2.14.1 | MIT | Datenvalidierung, .env-Konfiguration |
| PyMySQL | 1.1.2 | MIT | MariaDB-Treiber |
| DBUtils | 3.1.2 | MIT | Connection-Pool |
| python-jose | 3.5.0 | MIT | JWT-Signierung |
| bcrypt | 5.0.0 | Apache-2.0 | Passwort-Hashing |
| cryptography | 48.0.0 | Apache-2.0 / BSD-3 | Fernet-Verschlüsselung (SMTP-Zugangsdaten, TOTP-Secret) |
| pyotp | 2.10.0 | MIT | TOTP-Codes (2FA) |
| qrcode | 8.2 | BSD | QR-Code-Generierung (2FA-Setup) |
| email-validator | 2.3.0 | Unlicense | E-Mail-Validierung |
| python-multipart | 0.0.32 | Apache-2.0 | Datei-Uploads |
| aiofiles | 25.1.0 | Apache-2.0 | Asynchrones Datei-I/O |
| Pillow | 12.2.0 | MIT-CMU | Thumbnail-Generierung |
| httpx | 0.28.1 | BSD-3-Clause | HTTP-Client (Ollama-Anbindung) |
| anthropic | 0.109.1 | MIT | Claude-API-Client (KI-Transkription) |
| slowapi | 0.1.10 | MIT | Rate-Limiting |
| jellyfish | 1.2.1 | MIT | Jaro-Winkler-Ähnlichkeit (Dubletten-Erkennung) |
| cologne-phonetics | 2.0.0 | MIT | Kölner Phonetik (phonetische Vorauswahl bei der Dubletten-Erkennung) |
Alle self-hosted unter frontend/static/vendor/ — kein CDN, keine Laufzeit-Abhängigkeit von Drittanbietern.
| Komponente | Version | Lizenz | Zweck |
|---|---|---|---|
| Bootstrap | 5.3.3 | MIT | CSS-Framework, UI-Komponenten |
| Bootstrap Icons | 1.11.3 | MIT | Icon-Font |
| Alpine.js | 3.14.1 | MIT | Reaktives UI ohne Build-Schritt |
| D3.js | 7.9.0 | ISC | Stammbaum, Ahnenfächer, Netzwerk-Graph |
| Leaflet | 1.9.4 | BSD-2-Clause | Kartenansicht |
| Leaflet.markercluster | — | MIT | Marker-Clustering auf Karten |
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:
| Kategorie | Keys | Inhalt |
|---|---|---|
| Sitzung (nicht Teil des Dialogs) | hk-token, hk-user | JWT-Zugriffstoken, zwischengespeicherter Nutzer |
| Einstellungen | hk-theme, hk-locale, hk-sidebar-pinned, hk-nav-groups | Dark Mode, Sprache, Sidebar-Zustand, Menügruppen |
| Zuletzt verwendet | hk_tree_root, hk_fan_center | Zuletzt angezeigte Stammbaum-/Ahnenfächer-Startperson |
| Ansicht-Umschalter | docView, hk_*_map_cluster | Kachel-/Listenansicht, Karten-Clustering |
| Suchfilter | hk-chips-*, hk_net_event_filter | Zuletzt verwendete Filterbegriffe je Liste |
| App-Konfiguration | hk-app-name, hk-brand | Zwischengespeichertes Branding (wird bei jedem Aufruf neu geladen) |
Vollständige Key-Liste: README.md, Abschnitt „Client-seitige Speicherung".
Die KI-Transkriptions-Pipeline ist vollständig optional und austauschbar (AI_PROVIDER in backend/.env):
| Provider | Betriebsart | Datenabfluss |
|---|---|---|
| Anthropic Claude (Vision) | Cloud-API, benötigt eigenen API-Key | Dokumentbilder gehen zur Transkription an Anthropic |
| Ollama | Lokal, selbst gehostet (z. B. minicpm-v/llama3.2) | Keiner — läuft komplett im eigenen Netz |
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.