Zum Inhalt springen
supastack
Dokumentation durchstöbern
WebNext.js

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/web/provider-keys.md (or send Accept: text/markdown).

Die übrigen Anbieter-Keys einsammeln

Kurze Walkthroughs für die restlichen Dienste: KI-Anbieter, Trigger.dev, S3-Storage, Sentry oder PostHog, Turnstile und Ihre Domain.

Wie Sie diese Seite nutzen

Jeder Abschnitt unten ist ein komplettes Setup-Walkthrough: Konto erstellen, Key finden, Env-Namen setzen, prüfen. Nehmen Sie nur die Abschnitte für Dienste, die Ihr Produkt ausliefert — eine Seite ohne KI-Funktionen braucht den ersten nie, und das Kit läuft weiter, selbst wenn Sie jeden Abschnitt hier überspringen.

Dieselben Secret-Regeln wie überall: API-Keys und Webhook-Secrets bleiben serverseitig, nur Werte mit NEXT_PUBLIC_/EXPO_PUBLIC_-Prefix dürfen den Client erreichen, Produktions-Secrets liegen im Secret Store des Hosts, und der Dev-Server liest Env erst nach einem Neustart.

KI-Anbieter-Keys

Das AI_PROVIDER des Kits akzeptiert openai, anthropic, openai-compatible und openrouter — plus fake, den lokalen Standard-Ersatz. Wählen Sie einen; der Anbieter-Key ist das einzige nötige Konto, denn Modell-IDs und Preise kommen aus dem Datenbank-Katalog des Kits, nicht aus Env-Variablen.

OpenAI: platform.openai.com → API keys → Create new secret key → sk-… kopieren → OPENAI_API_KEY. Anthropic: console.anthropic.com → API Keys → Create Key → sk-ant-… → ANTHROPIC_API_KEY. Beide rechnen pro Token ab — ein paar Dollar Guthaben decken die Entwicklung.

OpenRouter leitet jedes Katalog-Modell über einen Key: openrouter.ai → Keys → Create Key → sk-or-… → AI_PROVIDER=openrouter plus OPENROUTER_API_KEY; die optionalen OPENROUTER_APP_NAME/OPENROUTER_SITE_URL senden Attribution-Header. openai-compatible deckt jeden OpenAI-förmigen Endpoint ab: OPENAI_COMPATIBLE_API_KEY plus OPENAI_COMPATIBLE_BASE_URL.

Prüfen: neu starten, eine KI-Aufgabe laufen lassen und eine echte Modellantwort statt des deterministischen Fakes erwarten. Ein Startfehler, der den Key nennt, heißt: Das Anbieter-Flag ist ohne seinen Key an. Eine echte Antwort braucht außerdem JOB_PROVIDER=trigger aus dem Trigger.dev-Abschnitt unten plus ein aktiviertes Modell im Katalog des Kits — KI einrichten behandelt dieses Setup.

# apps/web/.env.local — pick ONE provider
AI_PROVIDER=openai
OPENAI_API_KEY=sk-…

# or AI_PROVIDER=anthropic
# ANTHROPIC_API_KEY=sk-ant-…

# or AI_PROVIDER=openrouter
# OPENROUTER_API_KEY=sk-or-…

# or AI_PROVIDER=openai-compatible
# OPENAI_COMPATIBLE_API_KEY=…
# OPENAI_COMPATIBLE_BASE_URL=https://your-endpoint/v1

Trigger.dev

Überspringen, es sei denn, das Produkt braucht echte Hintergrundjob-Läufe — JOB_PROVIDER=local reiht Jobs im Speicher ein, ohne sie auszuführen, was für die Entwicklung richtig ist.

1. Öffnen Sie app.trigger.dev → Sign up → Projekt erstellen.

2. Kopieren Sie zwei Werte: den Project Ref proj_… aus den Projekt-Settings oder der Dashboard-URL → TRIGGER_PROJECT_REF, und den Secret Key von der API-Keys-Seite des Projekts (tr_dev_… für die Dev-Umgebung, tr_prod_… für Produktion) → TRIGGER_SECRET_KEY. Beide bleiben serverseitig.

3. Die Tasks des Kits liegen bereits in apps/web/trigger, und apps/web/trigger.config.ts liest TRIGGER_PROJECT_REF. Führen Sie aus apps/web npx trigger.dev@latest dev aus — es registriert die Tasks bei Ihrem Projekt und führt sie lokal gegen den Dev-Key aus.

Prüfen: Der Dev-Befehl protokolliert die registrierten Tasks; reihen Sie einen in der App ein und sehen Sie ihm in der Runs-Liste des Dashboards beim Ausführen zu. Deployete Umgebungen führen corepack pnpm --filter @supastack/web trigger:deploy aus, um den Task-Satz zu veröffentlichen.

# apps/web/.env.local
JOB_PROVIDER=trigger
TRIGGER_PROJECT_REF=proj_…
TRIGGER_SECRET_KEY=tr_dev_…   # tr_prod_… in production

# run the worker alongside the app, from apps/web:
cd apps/web
npx trigger.dev@latest dev

S3-kompatibler Storage (Cloudflare R2)

Überspringen, es sei denn, das Produkt speichert Dateien — STORAGE_PROVIDER=memory hält Uploads für die Entwicklung im Prozess.

Jeder S3-kompatible Bucket funktioniert; Cloudflare R2 ist die Free-Tier-freundliche Wahl. 1. Öffnen Sie dash.cloudflare.com → R2 Object Storage → Create bucket, benennen Sie ihn und behalten Sie den Standard-Location-Hint.

2. Öffnen Sie auf der R2-Übersicht Manage R2 API Tokens → Create API token → Berechtigung Object Read & Write, auf diesen Bucket beschränkt → Create. Kopieren Sie die Access Key ID, den Secret Access Key und den gezeigten S3-Endpoint — https://<account-id>.r2.cloudflarestorage.com.

3. Setzen Sie die Env-Namen unten. STORAGE_REGION=auto ist die R2-Konvention — das Kit nutzt standardmäßig us-east-1, was R2 ebenfalls akzeptiert. STORAGE_FORCE_PATH_STYLE ist für Custom Endpoints bereits standardmäßig an, was R2 will. Öffentliche Dateien auszuliefern braucht zusätzlich STORAGE_PUBLIC_BASE_URL oder CDN-Verkabelung; private Dateien brauchen nichts weiter.

Prüfen: neu starten und durch die App hochladen — das Objekt erscheint im R2-Bucket-Browser. Ein Signatur- oder 403-Fehler heißt, dem Token fehlt Object Read/Write auf diesem Bucket; erstellen Sie einen frischen, korrekt begrenzten Token.

# apps/web/.env.local
STORAGE_PROVIDER=s3
STORAGE_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
STORAGE_REGION=auto
STORAGE_BUCKET=your-bucket
STORAGE_ACCESS_KEY_ID=…          # server-only
STORAGE_SECRET_ACCESS_KEY=…      # server-only
# STORAGE_PUBLIC_BASE_URL=       # optional public-URL base

Sentry oder PostHog (optional)

Komplett optional: Jeder Observability-Wert ist standardmäßig leer und das Kit läuft ohne alle — fügen Sie dies hinzu, wenn Sie Fehlerberichte und Analytics in Produktion wollen.

Sentry für Fehler: sentry.io → Projekt erstellen → die Next.js-Plattform wählen → der Setup-Bildschirm zeigt den DSN https://…@….ingest.sentry.io/… → SENTRY_DSN. Exceptions erreichen Sentry dann mit Correlation-IDs getaggt; das Free Tier reicht zum Start.

PostHog für Produkt-Analytics stattdessen: posthog.com → Projekt erstellen → den Projekt-API-Key phc_… kopieren → NEXT_PUBLIC_POSTHOG_KEY plus NEXT_PUBLIC_POSTHOG_HOST (https://us.i.posthog.com oder Ihr EU-Host). Diese beiden sind by design öffentliche Browser-Werte; SENTRY_DSN bleibt serverseitig. ALERT_WEBHOOK_URL postet optional Fehler-Alarme an einen Slack-kompatiblen Endpoint.

Prüfen: neu starten, eine Test-Exception auslösen (oder Sentries Beispiel-Event nachspielen) und bestätigen, dass sie in der Issues-Liste des Projekts landet.

# apps/web/.env.local — all optional
SENTRY_DSN=https://…@….ingest.sentry.io/…

NEXT_PUBLIC_POSTHOG_KEY=phc_…
NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com

# ALERT_WEBHOOK_URL=https://hooks.slack.com/services/…

Cloudflare Turnstile

Bot-Schutz für die öffentlichen Formulare und Credential-Endpoints — standardmäßig CAPTCHA_PROVIDER=off, also fügen Sie ihn hinzu, bevor Sie die Registrierung für Fremde öffnen. Kostenlos.

1. Öffnen Sie dash.cloudflare.com → Turnstile → Add widget → benennen Sie es und listen Sie die Hostnamen: localhost für die Entwicklung plus Ihre echte Domain → Create.

2. Kopieren Sie beide Werte: den Site Key — by design öffentlich, er rendert im Widget → NEXT_PUBLIC_TURNSTILE_SITE_KEY — und den Secret Key, den der Server zur Prüfung nutzt → TURNSTILE_SECRET_KEY.

3. CAPTCHA_PROVIDER=turnstile schaltet es ein; der Start scheitert und nennt den fehlenden Key. Der Captcha-Guide listet exakt, welche Oberflächen das Widget schützt.

Prüfen: öffnen Sie /auth oder das Kontaktformular — das Widget rendert; Einsendungen ohne gelöste Challenge werden abgelehnt. Lädt das Widget nie, steht der besuchte Hostname nicht auf der Widget-Liste.

# apps/web/.env.local
CAPTCHA_PROVIDER=turnstile
NEXT_PUBLIC_TURNSTILE_SITE_KEY=0x…   # public by design
TURNSTILE_SECRET_KEY=0x…             # server-only

Eine eigene Domain

Ein Kauf bei einem beliebigen Registrar — Cloudflare Registrar, Porkbun, Namecheap funktionieren alle. Nichts davon landet in der Env; die Domain taucht in der Services ID, den Resend-DNS, den Turnstile-Hostnamen und den OAuth-Return-URLs auf, die Sie unterwegs konfiguriert haben.

Zwei Wege, sie auf die App zu zeigen: Für Cloud Run nutzen Sie das Domain Mapping im Deploy-Guide — ein paar Konsolen-Klicks plus die DNS-Records, die Google listet. Oder ziehen Sie DNS zu Cloudflare-Nameservern um (der Registrar tauscht zwei Records) — optional, aber auch der aufgeräumte Weg, R2-Public-Buckets und Turnstile-Hostnamen an einem Ort zu verwalten.

Wenn du die Einrichtung fortsetzen möchtest, lies Datenbank einrichten.

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: Ein Framework für 249 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 349 $) oder Alle Frameworks (Next.js, iOS, Android) für 499 $ (befristeter Einführungspreis — 100 $ Rabatt auf den regulären Preis von 599 $), 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