Zum Inhalt springen
supastack
Dokumentation durchstöbern

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /de/docs/desktop/updates.md (or send Accept: text/markdown).

Auto-Updates und Release-Kanäle

Signierte Update-Feeds, der stable/beta-Kanal und der mitgelieferte Release-Workflow.

Das Updater-Schlüsselpaar einmal erzeugen

Der Updater verifiziert minisign-Signaturen auf heruntergeladenen Artefakten. Erzeugen Sie ein Schlüsselpaar mit dem Tauri-Signer und bewahren Sie den privaten Schlüssel als TAURI_SIGNING_PRIVATE_KEY mit seinem Passwort in TAURI_SIGNING_PRIVATE_KEY_PASSWORD auf — beide in Ihrem Secret Store, nie im Repository. Builds, die Updater-Artefakte erzeugen, legen eine .sig-Sidecar neben jeden Installer; der öffentliche Schlüssel geht an die Clients, der private bleibt in der CI.

corepack pnpm --filter @supastack/desktop exec tauri signer generate -w ~/.tauri/product.key

Den Updater zur Build-Zeit konfigurieren

tauri.conf.json liefert einen Sentinel-Updater-Block mit leeren endpoints und pubkey — behalten Sie ihn, denn das Updater-Plugin kann ohne vorhandene Schlüssel nicht initialisieren. Echte Werte werden zur Build-Zeit über ein --config-JSON-Overlay oder die Umgebungsvariable TAURI_CONFIG tiefengemergt; check:release-config gibt das exakte Overlay zum Einfügen aus, wenn SUPASTACK_UPDATER_ENDPOINT und SUPASTACK_UPDATER_PUBKEY gesetzt sind.

Setzen Sie beide oder keins: Ein Overlay nur mit endpoints lässt pubkey leer — die Prüfungen scheinen dann zu funktionieren, während jede Installation an der Signaturprüfung scheitert. Die Endpunkt-URL trägt die Platzhalter {{target}}, {{arch}} und {{current_version}} — der Versionsslot ist Pflicht — plus ein optionales {{channel}}-Pfadsegment, das Release-Kanäle aktiviert.

# check:release-config prints this overlay for tauri build --config:
# {"plugins":{"updater":{"endpoints":["https://releases.example.com/{{channel}}/{{target}}/{{arch}}/{{current_version}}"],"pubkey":"<base64 public key>"}}}
# SUPASTACK_UPDATER_ENDPOINT=
# SUPASTACK_UPDATER_PUBKEY=

Den latest.json-Feed veröffentlichen

Jeder Endpunkt beantwortet ein latest.json-Manifest — version, notes, pub_date und eine platforms-Map über darwin-aarch64, darwin-x86_64, windows-x86_64, windows-aarch64, linux-x86_64 und linux-aarch64 —, in der jeder Eintrag die Installer-URL mit ihrer signature paart.

Bauen Sie es mit dem Skript release:manifest: Es durchsucht ein Bundle-Verzeichnis nach .app.tar.gz-, -setup.exe- (bevorzugt vor .msi) und .AppImage-Artefakten — jedes braucht seinen .sig-Nachbarn — und schreibt oder mergt das Manifest. Flags decken --version, --base-url, --bundle-dir mit --platform, --merge zum Sammeln der Plattformen über Läufe hinweg, --notes, --pub-date und --out ab.

corepack pnpm --filter @supastack/desktop release:manifest -- \
  --version 1.2.0 \
  --base-url https://releases.example.com/stable \
  --bundle-dir src-tauri/target/release/bundle \
  --platform windows-x86_64 \
  --merge latest.json

Stable- und Beta-Kanäle

Enthält ein Endpunkt den Platzhalter {{channel}}, aktiviert das App-Menü eine Beta Updates-Checkbox, die den Feed zwischen stable und beta umschaltet. Die Wahl bleibt in einer update-channel-Datei neben der App-Konfiguration erhalten; SUPASTACK_UPDATE_CHANNEL überschreibt sie pro Lauf — alles Unerkannte wird mit einer Warnung ignoriert —, und stable ist der Standard. Ohne Platzhalter bleibt der Schalter deaktiviert, und nur der stable-Feed wird geprüft.

Wann Updates geprüft werden

Beim Start läuft eine stille Hintergrundprüfung, die nur dann einen Dialog zeigt, wenn ein Update existiert; der Menüeintrag Check for Updates… meldet jedes Ergebnis. Prüfungen werden serialisiert — eine zweite gleichzeitige Anfrage wird verworfen. Ein verfügbares Update bietet Install and Restart, das die App herunterlädt, installiert und neu startet; nicht konfigurierte Builds antworten mit „Updates aren't configured for this build.“, und Fehler erscheinen als Dialoge statt als Wiederholungen.

Der mitgelieferte Release-Workflow

.github/workflows/desktop-release.yml baut die Matrix — macOS auf beiden Architekturen, Windows und Ubuntu — bei desktop-v*-Tags oder einem manuellen Dispatch mit Version und Kanal. Es prägt die Manifest-Version aus dem Tag (ein Release, das dies überspringt, bietet sich für immer selbst als Update an), mergt die Manifeste pro Plattform und erstellt einen GitHub-Release-Entwurf mit latest.json plus jedem Installer und jeder Signatur — für Beta-Kanäle als Prerelease markiert.

Es braucht SUPASTACK_APP_URL und SUPASTACK_UPDATER_ENDPOINT als Repository-Variablen sowie SUPASTACK_UPDATER_PUBKEY plus den privaten Signierschlüssel und sein Passwort als Secrets; Apple-Signierdaten sind optionale Ergänzungen. Das vollständige Runbook liegt im Repository unter docs/desktop-updates.md.

Überprüfung und Fehlerbehebung

Installieren Sie einen Build, veröffentlichen Sie ein neueres Manifest in einem Test-Feed und bestätigen Sie, dass der Update-Dialog bei der nächsten Prüfung erscheint und die App in die neue Version neu startet. Wechseln Sie dann auf beta und bestätigen Sie, dass sich die Antwort des Kanal-Feeds ändert.

Häufige Fragen

14 Fragen

Was ist supastack?

supastack ist eine modulare Basis zum Bauen von KI-gestützten SaaS-Produkten. Sie bündelt die gemeinsame Infrastruktur, damit du dich auf die Funktionen konzentrieren kannst, die dein Produkt ausmachen.

Unterstützt es Web und Mobil?

Ja. supastack enthält Next.js- und Expo-Apps als Ausgangspunkt für Web- und Mobile-Erlebnisse.

Welche Authentifizierung ist enthalten?

Better Auth deckt E-Mail/Passwort, OTP und Social Login ab. Persönliche Workspaces werden mit dem Konto provisioniert, damit Datensätze vom ersten Tag an begrenzt sind.

Wie wird KI unterstützt?

supastack enthält konfigurierbare Multi-Anbieter-KI, Nutzungsverfolgung, Budgets und verschlüsselte Bring-your-own-key-Unterstützung.

Wie werden Abonnements gehandhabt?

Für Produkte, die auf dem Kit aufbauen, bilden Stripe-Abrechnung, Abonnements und Berechtigungen die Basis für bezahlten Zugang. Anbieter-Geheimnisse bleiben serverseitig.

Wo liegt mein produktspezifischer Code?

Produktspezifische Funktionen bleiben in einem separaten Codebase, während das Produkt die Basismodule von supastack konfiguriert und integriert.

Wie funktioniert die Preisgestaltung von supastack?

Das Kit ist ein Einmalkauf mit lebenslangen Updates: Single Stack für 249 $ — deine Wahl aus dem Next.js- (Web), Expo- (iOS & Android) oder Tauri-Repo (macOS & Windows Desktop) —, Dual Stack für 398 $ mit zwei beliebigen Repos oder Full Bundle für 399 $ mit allen drei Repos und dem vollständigen Monorepo, plus 75 $ pro zusätzlichem Entwickler-Sitz. Kein Kit-Abo. Checkout auf dieser Website liefert deinen Lizenzschlüssel per E-Mail, mit Repo-Zugang per GitHub-Einladung.

Wie begrenzen Workspaces meine Daten?

Nutzerdatensätze sind über workspaceId begrenzt. Identität, Berechtigungen, KI-Nutzung, Abrechnungsereignisse und Audit-Einträge bleiben innerhalb der persönlichen Workspace-Grenze.

Wie funktionieren Hintergrundjobs?

Trigger.dev ist die explizite Job-Laufzeit. Der JobRunner-Vertrag verspricht nur enqueue, status und cancel — Workflow-Semantik bleibt Trigger.dev-spezifisch und explizit.

Wie unterscheidet sich E-Mail von Outreach?

Transaktions-E-Mail deckt Produktabläufe wie Task-Abschluss-Hinweise ab. Cold Outreach und Kampagnen gehören zum Produkt selbst, außerhalb des E-Mail-Moduls dieses Kits.

Wie funktionieren mobile Käufe?

Mobile bietet native Käufe und Wiederherstellung über RevenueCat; dein Server prüft den Zugriff. Konfiguriere die Store-Konten und schließe Gerätetests vor der Veröffentlichung ab. Web-Abrechnung bleibt separat.

Wo liegen die KI-Anbieter-Schlüssel?

BYOK-Zugangsdaten sind verschlüsselt und bleiben serverseitig. Schlüssel werden in Logs bereinigt; Nutzung und Budgets bleiben auf Workspace-Ebene sichtbar.

Welche Zahlungsmethoden akzeptiert der Checkout?

Der von Stripe gehostete Checkout akzeptiert Karten und kann — sobald die Wallets im Stripe-Konto aktiviert sind — auch Alipay und WeChat Pay anbieten, praktisch für Käufer in China. Wallet-Autorisierungen werden asynchron bestätigt, sodass sich die Lizenzseite aktualisiert, sobald die Zahlung eingegangen ist.

Kann ich eine Rückerstattung erhalten?

Sobald du Zugriff auf das Repository hast, gehört supastack für immer dir und kann daher nicht zurückerstattet werden. Aber keine Sorge: Du erhältst den vollständigen Quellcode mit lebenslangen Updates, um unbegrenzt viele Produkte für dich oder deine Kunden zu erstellen und zu veröffentlichen. Du darfst den Code lediglich nicht weiterverkaufen oder das Repository als Starter-Kit oder Vorlage weitergeben.

DE
Design