Installation & Setup
Richten Sie CodeCourier für die lokale Entwicklung ein. Behandelt Systemanforderungen, Umgebungsvariablen sowie die Konfiguration von Convex, Clerk, E2B und Trigger.dev.
Diese Anleitung deckt alles ab, was Sie benötigen, um CodeCourier lokal für die Entwicklung auszuführen. CodeCourier ist eine Next.js-Anwendung, die von Convex, Clerk, E2B und Trigger.dev unterstützt wird. Jeder Dienst benötigt seine eigene Konfiguration, aber einmal eingerichtet ist die lokale Entwicklungserfahrung mit Hot Reloading und Echtzeit-Daten voll funktionsfähig.
Systemanforderungen
- Node.js - Version 20.9.0 oder neuer (vom Clerk-SDK gefordert)
- Paketmanager - Bun (empfohlen, in den Projekt-Scripts verwendet) oder npm/yarn/pnpm
- Git - Zum Klonen des Repositories und Verwalten von Branches
- Betriebssystem - macOS, Linux oder Windows (mit WSL für die beste Erfahrung empfohlen)
Bun ist optional
bun-nextjs-convex-clerk), funktionieren auch alle standardmäßigen npm-Befehle. Die folgenden Anweisungen zeigen beide Optionen.Klonen und installieren
Repository klonen
git clone https://github.com/your-org/codecourier.git
cd codecourierAbhängigkeiten installieren
bun installDies installiert alle Produktions- und Entwicklungs-Abhängigkeiten einschließlich Next.js, Convex, Clerk, dem E2B-SDK, Trigger.dev-SDK, Tailwind CSS, Radix UI, shadcn/ui, Framer Motion sowie Test-Tools (Vitest, Playwright).
Umgebungsvariablen
Erstellen Sie eine Datei .env.local im Projekt-Root. Das Repository enthält eine Datei .env.example mit allen unterstützten Variablen. Kopieren Sie sie als Ausgangspunkt:
cp .env.example .env.localDie folgenden Variablen sind für die lokale Entwicklung erforderlich:
Convex
# Your Convex deployment URL (shown after running npx convex dev)
NEXT_PUBLIC_CONVEX_URL=https://your-deployment.convex.cloud
# Convex site URL (used by Trigger.dev for HTTP callbacks)
CONVEX_SITE_URL=https://your-deployment.convex.siteClerk-Authentifizierung
# Clerk publishable key (client-side, starts with pk_test_ or pk_live_)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_xxx
# Clerk secret key (server-side, starts with sk_test_ or sk_live_)
CLERK_SECRET_KEY=sk_test_xxx
# Clerk JWT issuer domain (found in Clerk dashboard > JWT Templates)
CLERK_JWT_ISSUER_DOMAIN=https://your-clerk-domain.clerk.accounts.dev
# Clerk webhook signing secret (for Convex HTTP webhook handler)
CLERK_WEBHOOK_SECRET=whsec_xxxTrigger.dev
# Shared secret for authenticating callbacks between Trigger.dev and Convex
TRIGGER_CALLBACK_SECRET=your-random-secret-stringStarkes Callback-Secret generieren
TRIGGER_CALLBACK_SECRET wird verwendet, um zu überprüfen, dass eingehende HTTP-Anfragen an Convex tatsächlich von Ihren Trigger.dev-Jobs stammen. Verwenden Sie eine kryptografisch zufällige Zeichenkette (mindestens 32 Zeichen). Sie können eine mit openssl rand -hex 32 generieren.Optionale Variablen
# PostHog analytics (optional)
# NEXT_PUBLIC_POSTHOG_KEY=phc_xxx
# NEXT_PUBLIC_POSTHOG_HOST=https://us.i.posthog.com
# Meta/Facebook Pixel (optional)
# NEXT_PUBLIC_META_PIXEL_ID=123456789
# Google Ads conversion tracking (optional)
# NEXT_PUBLIC_GOOGLE_ADS_ID=AW-123456789Dienst-Einrichtung
Convex einrichten
Convex ist die Datenbank und Backend-Runtime für CodeCourier. Starten Sie den Convex-Entwicklungsserver, der Ihr lokales Schema und Ihre Funktionen mit einer Entwicklungs-Deployment synchronisiert:
npx convex devBeim ersten Lauf fordert Sie die Convex-CLI zum Einloggen auf und erstellt ein neues Projekt. Nach dem Setup gibt sie Ihre Deployment-URL aus - kopieren Sie diese in Ihre .env.local als NEXT_PUBLIC_CONVEX_URL.
Der Convex-Dev-Server überwacht Änderungen an Dateien im Verzeichnis convex/ und pusht automatisch Schema- und Funktions-Updates. Lassen Sie dieses Terminal während der Entwicklung laufen.
Convex-Umgebungsvariablen
CLERK_WEBHOOK_SECRET und TRIGGER_CALLBACK_SECRET dort.Clerk-Authentifizierung konfigurieren
Erstellen Sie eine Clerk-Anwendung unter dashboard.clerk.com:
- Erstellen Sie eine neue Anwendung und aktivieren Sie die gewünschten Anmeldemethoden (Google, GitHub, E-Mail usw.)
- Kopieren Sie den Publishable Key und den Secret Key von der API-Keys-Seite in Ihre
.env.local - Richten Sie ein JWT Templatefür Convex ein. Navigieren Sie im Clerk-Dashboard zu JWT Templates, erstellen Sie ein neues Template mit dem Namen „convex“ und konfigurieren Sie die Issuer- und Audience-Felder gemäß dem Convex + Clerk-Integrationsleitfaden
- Kopieren Sie die JWT-Issuer-Domain in
CLERK_JWT_ISSUER_DOMAIN - Richten Sie einen Webhook-Endpoint ein, der auf Ihre Convex-Site-URL zeigt (z. B.
https://your-deployment.convex.site/clerk-webhook). Aktivieren Sie Benutzer-Events (user.created, user.updated, user.deleted). Kopieren Sie das Signing-Secret inCLERK_WEBHOOK_SECRET
E2B-Sandbox-Zugriff einrichten
E2B stellt die Cloud-Sandboxes bereit, in denen KI-Agenten ausgeführt werden. Die Konfiguration erfolgt auf Projektebene innerhalb der CodeCourier-UI (Projekteinstellungen > API Keys), nicht als lokale Umgebungsvariable. Um Ihr E2B-Setup während der Entwicklung zu verifizieren:
- Erstellen Sie ein Konto unter
e2b.devund beziehen Sie Ihren API-Key vom Dashboard - Nach dem Start von CodeCourier navigieren Sie zu den Projekteinstellungen und fügen Sie Ihren E2B-API-Key im Bereich API Keys hinzu
Das E2B-SDK (Paket e2b) ist bereits in den Projekt-Abhängigkeiten enthalten. Sandbox-Templates (die die Basis-Umgebung und vorinstallierten Tools definieren) werden pro Workflow konfiguriert und über die CodeCourier-UI verwaltet.
Trigger.dev verbinden
Trigger.dev übernimmt die Ausführung von Hintergrund-Jobs für Sandbox-Provisionierung, Workflow-Läufe und Issue-Sessions. Für die lokale Entwicklung:
- Registrieren Sie sich unter
trigger.devund erstellen Sie ein neues Projekt - Installieren Sie die Trigger.dev-CLI global oder verwenden Sie npx:
npx trigger.dev@latest devDies startet den Trigger.dev-Dev-Server, der sich mit der Trigger.dev-Cloud verbindet, um Jobs lokal zu empfangen und zu verarbeiten. Das Projekt enthält eine Datei trigger.config.ts, die alle registrierten Tasks definiert.
Trigger.dev ist für UI-Entwicklung optional
Entwicklungsserver starten
Während Convex Dev in einem Terminal läuft, starten Sie den Next.js-Entwicklungsserver in einem anderen:
bun devDie Anwendung startet unter http://localhost:3000. Sie sollten die Clerk-Anmeldeseite sehen. Nach der Authentifizierung werden Sie geleitet, Ihr erstes Projekt zu erstellen oder einem bestehenden beizutreten.
Installation überprüfen
Gehen Sie diese Checkliste durch, um zu bestätigen, dass alles funktioniert:
- Authentifizierung: Sie können sich über Clerk an- und abmelden. Ihr Benutzer erscheint im Convex-Dashboard unter der Tabelle
users. - Projekterstellung: Sie können ein neues Projekt erstellen. Prüfen Sie, ob die Tabellen
projects,projectMembersundprojectSettingsin Convex gefüllt werden. - Echtzeit-Updates: Öffnen Sie zwei Browser-Tabs am selben Projekt. Erstellen Sie in einem Tab einen Workflow und bestätigen Sie, dass er sofort im anderen erscheint.
- API-Key-Speicherung: Fügen Sie in den Projekteinstellungen einen E2B-API-Key hinzu und überprüfen Sie, dass nur die letzten vier Zeichen sichtbar sind.
Tests ausführen
CodeCourier enthält sowohl Unit-Tests (Vitest) als auch End-to-End-Tests (Playwright):
# Unit tests
npm run test
# Unit tests with watch mode
npm run test:watch
# Unit tests with coverage report
npm run test:coverage
# End-to-end tests (requires the dev server running)
npm run test:e2e
# E2E tests with interactive UI
npm run test:e2e:uiFehlerbehebung
Convex Dev startet nicht
Stellen Sie sicher, dass Sie in der Convex-CLI angemeldet sind (npx convex login) und dass Ihre Datei convex.json auf ein gültiges Projekt zeigt. Wenn Sie Schema-Validierungsfehler sehen, prüfen Sie, dass alle Dateien im Verzeichnis convex/ ohne TypeScript-Fehler kompilieren.
Endlosschleife bei Clerk-Authentifizierungs-Weiterleitungen
Überprüfen Sie, dass NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYmit der Umgebung Ihrer Clerk-Anwendung übereinstimmt (Test vs. Produktion). Stellen Sie sicher, dass das JWT-Template in Clerk „convex“ heißt und die Issuer-Domain in CLERK_JWT_ISSUER_DOMAIN exakt passt.
Sandbox-Erstellung schlägt fehl
Prüfen Sie, dass Ihr E2B-API-Key in den Projekteinstellungen korrekt konfiguriert ist (nicht in .env.local - E2B-Schlüssel werden projektweise in Convex gespeichert). Überprüfen Sie, dass der Trigger.dev-Dev-Server läuft und verbunden ist. Sehen Sie sich die Job-Ausführungs-Logs im Trigger.dev-Dashboard an.
Typprüfungs-Fehler
Führen Sie den Typ-Checker aus, um Probleme zu finden:
npm run typecheckDas Projekt verwendet TypeScript 5.9+ mit Strict Mode. Convex generiert Typen automatisch in convex/_generated/- wenn diese fehlen, stellen Sie sicher, dass npx convex dev mindestens einmal ausgeführt wurde.