Technologie-Stack Übersicht¶
KanjiIQ wurde mit einer selbst gehosteten, Open-Source-First-Philosophie entwickelt. Jede Komponente läuft auf Infrastruktur, die wir kontrollieren, ohne Anbieter-Lock-in.
Technologieübersicht¶
| Schicht | Technologie | Zweck |
|---|---|---|
| Frontend | Flutter Web | Plattformübergreifendes UI-Framework |
| Backend | Dart Frog | Leichtgewichtiger REST API Server |
| Datenbank | PostgreSQL 15 | Primärer Datenspeicher mit JSONB |
| Übersetzung | OpenAI API | Dynamische Inhaltsübersetzung |
| Orchestrierung | k3s (Kubernetes) | Container-Orchestrierung |
| Ingress | Traefik | Reverse Proxy, TLS-Terminierung, Ratenbegrenzung |
| TLS | cert-manager + Let's Encrypt | Automatisierte SSL-Zertifikatsverwaltung |
| CI/CD | Forgejo Actions | Build-, Push- und Deployment-Automatisierung |
| Container Registry | Forgejo Container Registry | Docker-Image-Speicher |
| Versionskontrolle | Forgejo (Gitea Fork) | Selbst gehostete Git-Plattform |
| Hosting | Hetzner Dedicated Server | Infrastrukturanbieter |
| Admin | Flutter Web | Admin-Dashboard für Locale-/Analysemanagement |
Warum diese Entscheidungen?¶
Dart überall¶
Die markanteste Architekturentscheidung ist die Verwendung von Dart sowohl für Frontend als auch Backend:
- Flutter (Dart) für das Frontend
- Dart Frog (Dart) für das Backend
Dies ermöglicht:
- Gemeinsame Modelldefinitionen zwischen Client und Server
- Einzelsprachkompetenz für das gesamte Team
- Einheitliches Tooling (Dart Analyzer, Formatter, Test-Framework)
- Potenzial für gemeinsame Geschäftslogik-Pakete
Selbst gehosteter Stack¶
KanjiIQ vermeidet bewusst verwaltete Cloud-Dienste zugunsten selbst gehosteter Alternativen:
| Verwalteter Dienst | KanjiIQ verwendet | Vorteil |
|---|---|---|
| GitHub/GitLab | Forgejo | Volle Kontrolle, keine Preisgestaltung pro Benutzer |
| Docker Hub | Forgejo Container Registry | Am selben Standort wie der Quellcode |
| GitHub Actions | Forgejo Actions | Gleiche YAML-Syntax, selbst gehostete Runner |
| AWS RDS | PostgreSQL auf k8s | Keine stündlichen Datenbankgebühren |
| AWS ALB | Traefik | In k3s integriert, kostenlos |
| AWS ACM | cert-manager + Let's Encrypt | Kostenlose TLS-Zertifikate |
Kosteneffizienz¶
Der gesamte Produktions-Stack läuft auf einem einzelnen Hetzner Dedicated Server, wodurch die monatlichen Kosten vorhersehbar und deutlich niedriger sind als bei vergleichbaren Cloud-verwalteten Diensten. Siehe Infrastruktur für Details.
Architekturprinzipien¶
- Container-first: Jede Komponente ist mit mehrstufigen Docker-Builds containerisiert
- Infrastructure as Code: Alle Kubernetes-Manifeste sind versionskontrolliert
- Non-root-Ausführung: Alle Container laufen als UID 1000 für Sicherheit
- Gesundheitsprüfungen: Jeder Container hat Liveness- und Readiness-Probes
- Offline-fähig: Das Frontend funktioniert ohne Internet über lokalen SQLite-Cache
- Datenschutzbewusst: GDPR/CCPA-konforme Analysen mit Auto-Anonymisierung