rebreak-monorepo/ops/strategy/mdm-productization-roadmap.md
chahinebrini 5d6c322129 wip: KeyboardAwareSheet migrations + Snake/Tetris UI + iron.png + useMe live-update
Sheets via neuer KeyboardAwareSheet-Composable (in Modal pattern, auto-grow
mit Tastatur, paddingBottom-Lift): EditMail, AddDomain, CreateRoom, ConnectMail.
GameOverScreen behält Spring-Slide-In, nutzt RN Keyboard.addListener für Lift.

- KeyboardAwareSheet.tsx — universal modal with sheet-grow + keyboard-padding
- react-native-keyboard-controller installiert + KeyboardProvider in Root
- Snake: time + ScoreProgressBar + useSnakeSounds (haptic, audio TODO)
- Tetris: title weg, Buttons zentriert, kein Pressable mit style-fn
- DPad-Buttons 60→48, more bg, no scale
- useMe: pub-sub listener pattern für app-weite avatar/nickname-Updates
- dm.tsx: resolveAvatar wrap (iron.png-Warning)
- Mail-error-humanizer + locales

Recovery-Doc-Update in docs/internal/RECOVERY_LOG_2026-05-10.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-10 23:59:25 +02:00

5.0 KiB

MDM-Productization Roadmap

Stand: 2026-05-10 (nach Phase F: persönliches Self-Binding für Chahine erfolgreich)

Vision

ReBreak bietet als optionales Add-On (3€/mo on top auf Pro/Legend) ein vollständiges MDM-Lock-Setup für motivierte Recovery-User. Voraussetzung: Mac + USB + Bereitschaft zum factory-reset.

Ziel-Audience

Schmaler aber motivierter Markt:

  • Recovery-Community-Members nach 100000 Verzweiflungen
  • DiGA-Patienten in aktiver Relapse-Prevention mit Therapie-Begleitung
  • Users die "alles andere probiert haben" und maximalen Lock wollen

User-Insight (Chahine, 2026-05-10): "wenn keine nachfrage da ist haben wir nicht viel verloren — server steht eh."

Was schon steht (Phase F done)

  • NanoMDM-Server auf rebreak-mdm (178.105.101.137)
  • Apple-Push-Cert via mdmcert.download
  • AdGuard Home DoH @ dns.rebreak.org mit ReBreak-Blocklist
  • DNS-MDM-Profile non-removable (supervised-only)
  • Backend-Endpoint /api/url-filter/blocklist.txt als single source of truth

Productization-Phase G (~1-2 Wochen dev)

G.1 Enrollment-Profile-Generator

Backend-Endpoint POST /api/mdm/enroll-profile (Pro/Legend gated):

  • Generiert per-user device-identity-cert (signed by NanoMDM CA)
  • Wrapped als PKCS12
  • Build .mobileconfig mit MDM-payload pointing zu https://mdm.rebreak.org/mdm
  • DNS-payload pointing zu https://dns.rebreak.org/dns-query
  • Returns als download

Heute manuell gemacht in /opt/nanomdm/enrollment/ — automatisieren.

NanoMDM speichert devices in eigener DB (table devices). Brauchen mapping zu rebreak users:

  • Neue table rebreak.mdm_enrollments(user_id, device_id, enrolled_at, status)
  • Backend-API: GET /api/mdm/my-status returns enrollment-status für UI

G.3 Lyra-Onboarding-Flow

In-App "Stärkster Schutz" Button (Pro/Legend):

  1. Lyra-conversation: "Bist du sicher? Bedeutet factory-reset deines iPhones..."
  2. Risiko-Aufklärung: Apps + lokale Daten (außer iCloud-Backup) verloren
  3. 7-Tage-Cooldown wie andere Schutze — User muss 7 Tage drüber schlafen
  4. Nach Cooldown: Step-by-step Anleitung
  5. Web-link öffnet mdm.rebreak.org/onboarding/<user-token>
  6. Apple Configurator Wizard (Markdown-formatted instructions + screenshots)
  7. Profile-Download
  8. Wenn enrolled: NanoMDM pushed DNS-Profile + Restriction-Profile automatisch

G.4 Onboarding-Web-Page

Static page (Nuxt marketing app) mdm.rebreak.org/onboarding/<token>:

  • Step-1: Mac-requirement check
  • Step-2: Apple Configurator install (App Store link)
  • Step-3: factory-reset Anleitung (Settings-Pfad screenshot)
  • Step-4: USB-connect + Configurator-Prepare-wizard (mit Screenshots)
  • Step-5: .mobileconfig download + install via Apple Configurator
  • Step-6: Bestätigung dass enrollment erfolgreich (backend-callback)

G.5 Stripe-Add-On-Tier

  • Pro: 3.99€ → mit MDM 6.99€
  • Legend: 7.99€ → mit MDM 10.99€
  • Stripe-Subscription-Modification API

G.6 Per-User-Blocklist (later)

Aktuell: AdGuard pulled GLOBAL getActiveBlocklistDomains(). Phase G.6: extend zu user-specific (custom-domains pro User). Optionen:

  • AdGuard-multi-DNS-server (1 pro User) — overkill
  • Custom DoH-server der per-Token user-spezifische blocklist serviert
  • Nicht-Priority — global blocklist ist 99% der Use-Cases

Out-of-Scope (Apple-Hard-Limits)

  • Windows-User-Support: Apple Configurator nur auf macOS. Windows-Pfad bräuchte custom Apple-Configurator-clone = monate dev. Skip.
  • DEP/ABM-Enrollment: Wäre "ohne factory-reset enrollable", aber braucht DUNS + Apple-Business-Manager-Approval + nur Neu-Geräte via Reseller. Out of scope für consumer.
  • Per-App-Family-Controls-Toggle-Lock: Apple-Platform-Limit (siehe Research Mai 2026). DNS-Layer kompensiert.

Marginal Cost pro neuem User

  • 1 row in nanomdm.devices: ~1KB
  • APNS-connection: shared-pool, kosten gegen 0
  • DoH-queries: paar 100 pro Tag pro User → AdGuard handhabt easy
  • Storage/Bandwidth: vernachlässigbar
  • Effektiv: ~0€/mo pro MDM-User

Bei 3€/mo Add-On = ~95% Marge.

Risk-Assessment

  • Apple könnte mdmcert.download-shared-key revoken (wenn auffällig viele Personal-MDM-Users) → fallback DNS funktioniert weiter, MDM-Push-commands brechen. Mitigation: eigener mdmcert-Account-Apply (kostenlos)
  • Support-burden: jeder MDM-User wird ggf. Hilfe beim Setup brauchen. Initial-Beta: max 10-20 User, manueller Support, Lyra-led
  • Liability: User locked sich aus → Recovery-Pfad via Lyra + Chahine-Manual-Override (admin-API). Cooldown verhindert impulsive enrollment.

Decision-Points (User entscheidet)

  • Phase G bauen oder warten bis 5+ User explizit nachfragen?
  • Beta-Launch: stille Mail an existierende Legend-Users oder offen?
  • Preisbestätigung: 3€ Add-On bestätigt oder 5-9€ wie Strategist eher empfehlen würde?

Strategist hat Pricing-Analysis pending (Task #58) — abwarten bevor finale Preis-Entscheidung.

Source-of-Truth-Files

  • Personal-Setup-Doku: ops/mdm/PHASES.md (Phase A-F)
  • Architektur: ops/mdm/ARCHITECTURE.md
  • Pricing-Strategy (pending): output von Strategist Task #58