nathanrenting.dev
Projekt · v0.1 Release Candidate

TherapyVault — sichere Video-Plattform für die Therapie

Eine private Video-Plattform, auf der Therapeuten aufgezeichnete Sitzungen sicher mit ihren eigenen Klienten teilen. Keine öffentlichen URLs, kein YouTube-Link nach dem Motto "nur wer den Link hat" — alles liegt hinter Signed URLs mit granularen Zugriffsfreigaben pro Klient, optional zeitlich begrenzt, ansichtsbegrenzt oder downloadbegrenzt.

Handgezeichnete Architekturskizze: Therapeut lädt in den VAULT hoch (Notizbuch mit Schloss), MFA-Schild für Admin, drei Klienten mit Zugriffsfreigaben (forever / time-limited / view-limited), Audit-Log-Notizbuch am unteren Rand, Annotationen 'no public URLs', 'access-grant evaluator', 'GDPR'.

Whiteboard-Skizze · die Form des Systems

Problem

WeTransfer ist für Gesundheitsdaten nicht DSGVO-konform. YouTube unlisted ist keine Zugriffskontrolle. SharePoint ist Enterprise-Overkill. Vimeo Pro

TherapyVault ist die spezifische Lösung: ein Ort, an dem der Therapeut hochlädt und der Klient sicher zusieht, mit der juristischen und technischen Grundlage, die ein Gesundheitskontext erfordert.

Was in v0.1 steckt

BereichStatus
AuthE-Mail+Passwort, Passwort-Reset, MFA (TOTP), Session-Management, RBAC
Video-UploadResumable Multipart (tus-Protokoll) bis 10 GB, nach R2 / S3 / MinIO
Video-StreamingSigned-URL-Wiedergabe mit Range-Support, keine öffentlichen URLs
ZugriffskontrollePro Freigabe: forever / time-limited / view-limited / download-limited
Coupons5 Typen: kostenloser Zugang, % Rabatt, fixer Rabatt, Download-Guthaben, View-Guthaben
PaymentsStripe (einmalig + Abos) + Mollie-Stub hinter einem PaymentProvider-Interface
DashboardsTherapist, Client, Admin
DSGVODatenexport-ZIP + Scheduled Deletion mit Grace-Period
i18nEN + NL ab Tag eins (next-intl)
Audit-LogJede sensible Mutation wird protokolliert

Stack

Frontend + API
Next.js 15 (App Router) + TypeScript + Tailwind + shadcn/ui
Auth
Auth.js v5 — Credentials + Argon2id-Hashing + TOTP-MFA
Datenbank
PostgreSQL 16 + Prisma 6
Storage
Cloudflare R2 (S3-kompatibel) — Provider-Abstraktion unterstützt S3, B2, MinIO, local
Uploads
tus-Protokoll via @tus/server
Payments
PaymentProvider-Interface mit Stripe-live + Mollie-Stub dahinter
E-Mail
Console-Stub (v0.1) — react-email-Templates, die in die Logs rendern
Rate-Limit
Redis-Token-Bucket mit In-Memory-Fallback
Logging
pino-strukturiertes JSON + separate AuditLog-Tabelle
Tests
Vitest Unit/Integration + Playwright e2e

Security-Primitives

Keine öffentlichen URLs. Jeder Video-Stream läuft über eine Signed URL, die der Server erst nach einer Zugriffsfreigabe-Prüfung ausstellt. Range-Header werden unterstützt, ohne dass die URL jemals außerhalb der Sitzung leakt.

MFA verpflichtend für Admins. Das Koppeln einer TOTP-App ist eine Erstlogin-Voraussetzung; kein Zugang zu Admin-Dashboards ohne sie.

Argon2id als Passwort-Hash mit memory-hard Parametern.

DSGVO by Design. Klienten-Datenexport als ZIP, Account-Löschung über einen Scheduled Job mit Grace-Period, eine AuditLog-Tabelle für alle sensiblen Mutationen.

Payment-Provider-Abstraktion. Stripe live, Mollie hinter demselben Interface — Umstieg auf iDEAL, ohne die Business-Logik anzufassen.

Roadmap

VersionWas
v0.1 (jetzt)Alle kritischen Security-Primitives, produktiv deploybar
v0.2UI-Polish, Multi-Bitrate-HLS-Transcoding, Push-Notifications, echter E-Mail-Provider
v0.3+Custom Domain pro Therapeut, White-Label, Live-Session

Status

v0.1 Release Candidate. Ein SMTP-Provider und echte E-Mail-Templates sind der nächste Schritt vor dem Launch. Kunde und konkreter Use-Case unter NDA.