Files
2026-05-26 11:52:03 +02:00

5.2 KiB
Raw Permalink Blame History

title, linkTitle, weight, toc
title linkTitle weight toc
Datenhaltung & Backup Datenhaltung 5 true

Wo Rapport seine Daten speichert, wie du sie sicherst und wiederherstellst.

Diese Seite beschreibt die Desktop-App (Single-User). Wer im Team arbeitet und Rapport gegen einen Rapport Server betreibt, sichert stattdessen die Postgres-Datenbank — siehe Rapport Server § Backup.

Speicherort (Desktop-App)

Die Desktop-App speichert alles lokal — keine Cloud, kein Server.

macOS

~/Library/Application Support/com.rapport.app/

Dort liegt eine einzelne localStorage-Datenbank des WebView, in der alle Rapport-Daten als JSON unter dem Key studio_data_v1 gespeichert sind:

  • Bürodaten, Logo, IBAN
  • Mitarbeiter, Kunden, Projekte, Offerten
  • Zeit-Einträge, Rechnungen
  • Spesen, Lohnabrechnungen, Protokolle
  • App-Einstellungen

Konsequenz: Wer den Application-Support-Ordner kopiert, hat ein vollständiges Backup. Wer ihn löscht, verliert alle Daten.

Warum localStorage?

In der Desktop-App ist Rapport eine Single-User-Anwendung. localStorage ist dafür:

  • Schnell — keine Datenbank-Roundtrips
  • Einfach — keine Migration nötig, JSON-Schema im Code
  • Portabel — eine Datei → ein Backup

Für Multi-User-Betrieb existiert Rapport Server — Postgres + Auth + Realtime in einem Docker-Compose. Wechsel zwischen Desktop- und Server-Modus erfolgt im Login-Bildschirm der App.

Backup-Strategien

A · Einfach (manuell)

Den ganzen Ordner kopieren:

cp -R "~/Library/Application Support/com.rapport.app" \
      "~/Documents/Rapport-Backup-$(date +%Y%m%d)"

→ Auf USB-Stick, externen Datenträger oder in die Cloud.

B · Time Machine

Wenn Time Machine läuft, ist der Ordner automatisch dabei. Versionierung inbegriffen.

Einschränkung: Time Machine sichert nur lokal/USB. Für off-site-Backup separat sorgen.

C · Cron-Job (täglich automatisch)

# In ~/Library/LaunchAgents/com.rapport.backup.plist hinterlegen
# oder als crontab-Eintrag:
0 22 * * * rsync -a "$HOME/Library/Application Support/com.rapport.app/" \
                    "$HOME/Backups/rapport/$(date +\%Y\%m\%d)/"

D · iCloud Drive (off-site)

Application-Support liegt nicht automatisch in iCloud. Wer das will:

# Symlink anlegen
mkdir -p "~/iCloud Drive/Rapport"
ln -s "~/Library/Application Support/com.rapport.app" "~/iCloud Drive/Rapport/data"

Achtung: iCloud-Sync mit aktiver App kann zu Race-Conditions führen. Besser den Sync zeitversetzt (z. B. nachts via Cron).

Wiederherstellung

Vollständig (Rapport komplett tot)

  1. Rapport beenden (Cmd+Q, nicht nur Fenster zu)
  2. Aktuellen Ordner umbenennen (falls noch da):
    mv "~/Library/Application Support/com.rapport.app" \
       "~/Library/Application Support/com.rapport.app.bak"
    
  3. Backup-Ordner zurück kopieren:
    cp -R "~/Documents/Rapport-Backup-20260523" \
          "~/Library/Application Support/com.rapport.app"
    
  4. Rapport starten

Selektiv (nur einzelne Daten)

Da alle Daten in einem JSON unter studio_data_v1 liegen, ist selektive Wiederherstellung manuell:

  1. Backup-localStorage-Datei öffnen (WebKit-Format → mit Tool wie [WebKit Storage Inspector] lesen, oder via Rapport DevTools)
  2. Gewünschte Felder in die aktuelle Instanz übertragen

In der Praxis: meistens lohnt sich die vollständige Wiederherstellung mehr.

Export-Funktionen (in der App)

Aus Rapport selbst:

Was Wo Format
Zeit-Auswertung Zeit → Export CSV
Rechnung Rechnung → PDF PDF (inkl. QR)
Offerte Offerte → PDF PDF
Lohnabrechnung Mitarbeiter → PDF PDF
Jahres-Buchhaltung Buchhaltung → Export CSV

Die Exports sind für externe Verwendung (Buchhalter, Treuhänder, Archiv) gedacht — kein Full-Backup.

Schema-Migrationen

Bei Updates kann sich das Datenformat ändern. Rapport hat einen Migrations-Mechanismus: beim Start prüft die App, ob das gespeicherte Format dem aktuellen entspricht, und migriert es automatisch.

Code: src/storage/migrations.js.

Empfehlung: Vor jedem grösseren Update ein Backup machen — Migrationen sind getestet, aber 100%-Sicherheit gibt es nicht.

Was wird nicht gespeichert?

  • WebView-Cache~/Library/Caches/com.rapport.app/ und ~/Library/WebKit/com.rapport.app/ sind sicher zu löschen (UI-Caches, regenerieren sich)
  • App-Updates — werden bei Bedarf erneut runtergeladen
  • Logs~/Library/Logs/com.rapport.app/ (geplant, derzeit nicht geschrieben)

Datenmenge

Typische Grössen pro Bürojahr:

Inhalt Grösse
Logo (PNG/SVG) 50 KB 1 MB
1 Jahr Zeiterfassung (1 MA) ~ 80 KB
1 Jahr Zeiterfassung (5 MA) ~ 400 KB
50 Projekte mit je 5 Rechnungen ~ 800 KB
Total typisches Solo-Büro / Jahr ~ 12 MB

localStorage hat Limits (i. d. R. ~10 MB pro Origin). Für Solo-Büros reicht das problemlos für viele Jahre. Wer das Limit erreicht oder im Team arbeitet → Rapport Server.