+31648934831 hello@manualninja.com

Technische Daten

Eine moderne RAG-Architektur mit KI-Vision.

Architektur auf einen Blick

ManualNinja ist eine Multi-Tenant-RAG-Anwendung mit einem Python-Backend, einem React-SPA-Frontend, einer PostgreSQL-Datenbank und einem Qdrant-Vektorspeicher. PDFs werden geparst, geteilt, eingebettet und als belegte Antworten über eine Chat-Schnittstelle bereitgestellt. Die Plattform umfasst jetzt KI-Vision zur Bildanalyse, Social Login mit OAuth und Abonnement-Abrechnung mit Stripe.

Backend-API
FastAPI + Uvicorn (Python 3.13). REST-Endpunkte für Authentifizierung, Handbücher, Chat, Abrechnung und Verwaltung. JWT-basierte Authentifizierung mit OAuth2.
Frontend
React 18 + Vite. Single-Page-Application mit Chat-Schnittstelle, Admin-Panel, Abrechnungsportal und SuperAdmin-Dashboard.
Datenbank
PostgreSQL 17. Speichert Organisationen, Benutzer, Handbücher, Chat-Sitzungen, Nutzungsverfolgung und konfigurierbare Einstellungen.
Vektorspeicher
Qdrant 1.19. Semantische Suche über Handbuchabschnitte mit Filterung nach Organisation.
Embeddings
BAAI/bge-small-en-v1.5 (384 dimensions, CPU). Local inference — no external embedding API calls.
LLM (Text)

OpenAI-kompatible API. Standardmodell: deepseek/deepseek-v3-0324. Konfigurierbar über das SuperAdmin-Dashboard.
Lokale KI für mehr Sicherheit gewünscht? Kein Problem. Kontakt aufnehmen

LLM (Vision)
Novita AI vision model — google/gemma-3-27b-it. Analyzes uploaded images (device labels, error screens, nameplates) with OCR and structured extraction.
PDF-Extraktion
PyMuPDF (fitz). Seitenebene-Aufteilung mit Metadatenerhaltung für präzise Quellangaben.
Web URL ingestion
Add manuals by URL instead of uploading a PDF. ManualNinja fetches the page, follows pagination across all sub-pages, and extracts the full manual text. SSRF-protected (internal IPs blocked), 50 MB per page limit, up to 200 pages per manual.
Authentifizierung
JWT-Tokens + Google OAuth 2.0 + LinkedIn OAuth 2.0 (OpenID Connect). E-Mail-Verifizierung mit konfigurierbarem SMTP.
Zahlungen
Stripe — recurring subscriptions via Checkout, customer portal for self-service management, webhook-driven lifecycle events.
Reverse Proxy
Caddy — automatic HTTPS via Let’s Encrypt, HTTP/2, HTTP/3 support.

Multi-Tenancy & Isolierung

Jede Kundenorganisation erhält einen vollständig isolierten Arbeitsbereich:

  • Benutzer, Handbücher und Chat-Sitzungen pro Organisation
  • Qdrant payloads include org_id — vector search is always filtered
  • Tarifabhängige Limits: Fragen/Monat, Speicher, Fragenlänge, Handbuchanzahl
  • Alle Integrationsschlüssel (Stripe, Google, LinkedIn, LLM, SMTP, reCAPTCHA) sind pro Bereitstellung über die Admin-Oberfläche konfigurierbar

Sicherheit & Datenschutz

ManualNinja wurde mit Sicherheit als oberste Priorität entwickelt. Jede Schicht des Stacks ist gehärtet, um Ihre Daten und das Vertrauen Ihrer Kunden zu schützen.

Ende-zu-Ende-Verschlüsselung

Der gesamte Verkehr wird über HTTPS mit TLS 1.2/1.3 über Caddy mit automatischen Let’s Encrypt-Zertifikaten bereitgestellt. Keine Klartext-Verbindungen werden akzeptiert.

Sichere Authentifizierung

JWT-basierte Authentifizierung mit starken Secrets, bcrypt-Passwort-Hashing, OAuth 2.0 mit CSRF-geschütztem State-Parameter und kurzlebigen Austausch-Codes anstelle von Tokens in URLs.

Brute-Force-Schutz

Login-Ratenbegrenzung (10 Versuche pro 5 Minuten pro IP), Registrierungs-Ratenbegrenzung (3 pro IP pro Tag) und obligatorisches Google reCAPTCHA bei öffentlicher Registrierung.

Multi-Tenant-Isolierung

Jede Datenbankabfrage und Vektorsuche ist nach organization_id begrenzt. Keine Cross-Tenant-Datenlecks sind möglich.

Sichere Datei-Uploads

PDF-Uploads werden über Magic Bytes, Content-Type und eine harte Größenbegrenzung von 50 MB validiert. Dateien werden nie direkt ausgeliefert.

Verifizierte Webhooks

Stripe-Zahlungs-Webhooks werden immer signaturverifiziert. Unauthentifizierte Zahlungsereignisse werden nie verarbeitet.

Nur interne Dienste

Das FastAPI-Backend und die Qdrant-Vektordatenbank binden nur an 127.0.0.1. Sie sind nie direkt aus dem Internet erreichbar.

E-Mail-Verifizierung

Die Registrierung erfordert E-Mail-Verifizierung mit zeitlich begrenzten Tokens (24-Stunden-Gültigkeit). Unverifizierte Konten können sich nicht einloggen.

Audit-Protokollierung

Alle Admin- und SuperAdmin-Aktionen — Organisationserstellung, Benutzerverwaltung, Einstellungsänderungen — werden in einem dedizierten Audit-Log für Verantwortlichkeit und Compliance protokolliert.

Möchten Sie es in Aktion sehen?