8.3 KiB
8.3 KiB
EmailSorter - Einrichtungsanleitung
Diese Anleitung führt dich durch die komplette Einrichtung von EmailSorter.
Inhaltsverzeichnis
- Voraussetzungen
- Appwrite einrichten
- Stripe einrichten
- Google OAuth einrichten
- Microsoft OAuth einrichten
- Mistral AI einrichten
- Projekt starten
- Fehlerbehebung
Voraussetzungen
- Node.js 18+ installiert
- npm oder yarn
- Git
1. Appwrite einrichten
1.1 Account erstellen
- Gehe zu cloud.appwrite.io
- Erstelle einen kostenlosen Account
- Erstelle ein neues Projekt (z.B. "EmailSorter")
1.2 API Key erstellen
- Gehe zu Settings → API Credentials
- Klicke auf Create API Key
- Name:
EmailSorter Backend - Wähle alle Berechtigungen aus (Full Access)
- Kopiere den API Key
1.3 Datenbank erstellen
- Gehe zu Databases
- Klicke auf Create Database
- Name:
email_sorter_db - Kopiere die Database ID
1.4 Bootstrap ausführen
cd server
npm run bootstrap:v2
Dies erstellt automatisch alle benötigten Collections:
productsquestionssubmissionsanswersordersemail_accountsemail_statssubscriptionsuser_preferences
1.5 .env konfigurieren
# server/.env
APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
APPWRITE_PROJECT_ID=deine_projekt_id
APPWRITE_API_KEY=dein_api_key
APPWRITE_DATABASE_ID=email_sorter_db
# client/.env
VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
VITE_APPWRITE_PROJECT_ID=deine_projekt_id
2. Stripe einrichten
2.1 Account erstellen
- Gehe zu dashboard.stripe.com
- Erstelle einen Account
- Wechsle in den Test Mode (Toggle oben rechts)
2.2 API Keys kopieren
- Gehe zu Developers → API keys
- Kopiere den Secret key (beginnt mit
sk_test_)
2.3 Produkte erstellen
Gehe zu Products → Add product:
Basic Plan
- Name:
EmailSorter Basic - Preis:
9.00 EUR/ Monat - Kopiere die Price ID (beginnt mit
price_)
Pro Plan
- Name:
EmailSorter Pro - Preis:
19.00 EUR/ Monat - Kopiere die Price ID
Business Plan
- Name:
EmailSorter Business - Preis:
49.00 EUR/ Monat - Kopiere die Price ID
2.4 Webhook einrichten
- Gehe zu Developers → Webhooks
- Klicke auf Add endpoint
- URL:
https://deine-domain.de/api/subscription/webhook- Für lokale Tests: Nutze Stripe CLI
- Events auswählen:
checkout.session.completedcustomer.subscription.updatedcustomer.subscription.deletedinvoice.payment_failedinvoice.payment_succeeded
- Kopiere das Signing Secret (beginnt mit
whsec_)
2.5 Lokaler Webhook-Test mit Stripe CLI
# Installieren
# Windows: scoop install stripe
# Mac: brew install stripe/stripe-cli/stripe
# Login
stripe login
# Webhook forwarden
stripe listen --forward-to localhost:3000/api/subscription/webhook
2.6 .env konfigurieren
# server/.env
STRIPE_SECRET_KEY=sk_test_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_PRICE_BASIC=price_...
STRIPE_PRICE_PRO=price_...
STRIPE_PRICE_BUSINESS=price_...
3. Google OAuth einrichten (Gmail)
3.1 Google Cloud Projekt erstellen
- Gehe zu console.cloud.google.com
- Erstelle ein neues Projekt (oder wähle ein bestehendes)
3.2 Gmail API aktivieren
- Gehe zu APIs & Services → Library
- Suche nach "Gmail API"
- Klicke auf Enable
3.3 OAuth Consent Screen
- Gehe zu APIs & Services → OAuth consent screen
- Wähle External
- Fülle aus:
- App name:
EmailSorter - User support email: Deine E-Mail
- Developer contact: Deine E-Mail
- App name:
- Scopes hinzufügen:
https://www.googleapis.com/auth/gmail.modifyhttps://www.googleapis.com/auth/gmail.labelshttps://www.googleapis.com/auth/userinfo.email
- Test users hinzufügen (während der Entwicklung)
3.4 OAuth Credentials erstellen
- Gehe zu APIs & Services → Credentials
- Klicke auf Create Credentials → OAuth client ID
- Typ: Web application
- Name:
EmailSorter Web - Authorized redirect URIs:
http://localhost:3000/api/oauth/gmail/callback(Entwicklung)https://deine-domain.de/api/oauth/gmail/callback(Produktion)
- Kopiere Client ID und Client Secret
3.5 .env konfigurieren
# server/.env
GOOGLE_CLIENT_ID=xxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=GOCSPX-xxx
GOOGLE_REDIRECT_URI=http://localhost:3000/api/oauth/gmail/callback
4. Microsoft OAuth einrichten (Outlook)
4.1 Azure App Registration
- Gehe zu portal.azure.com
- Suche nach "App registrations"
- Klicke auf New registration
- Name:
EmailSorter - Supported account types: Accounts in any organizational directory and personal Microsoft accounts
- Redirect URI:
Web→http://localhost:3000/api/oauth/outlook/callback
4.2 Client Secret erstellen
- Gehe zu Certificates & secrets
- Klicke auf New client secret
- Description:
EmailSorter Backend - Expires:
24 months - Kopiere den Value (wird nur einmal angezeigt!)
4.3 API Permissions
- Gehe zu API permissions
- Klicke auf Add a permission → Microsoft Graph → Delegated permissions
- Füge hinzu:
Mail.ReadWriteUser.Readoffline_access
- Klicke auf Grant admin consent (falls möglich)
4.4 .env konfigurieren
# server/.env
MICROSOFT_CLIENT_ID=xxx-xxx-xxx
MICROSOFT_CLIENT_SECRET=xxx
MICROSOFT_REDIRECT_URI=http://localhost:3000/api/oauth/outlook/callback
5. Mistral AI einrichten
5.1 Account erstellen
- Gehe zu console.mistral.ai
- Erstelle einen Account
- Gehe zu API Keys
- Klicke auf Create new key
- Kopiere den API Key
5.2 .env konfigurieren
# server/.env
MISTRAL_API_KEY=dein_mistral_api_key
6. Projekt starten
6.1 Dependencies installieren
# Backend
cd server
npm install
# Frontend
cd ../client
npm install
6.2 Environment Files erstellen
# Server
cp server/env.example server/.env
# Fülle die Werte aus!
# Client
cp client/env.example client/.env
# Fülle die Werte aus!
6.3 Datenbank initialisieren
cd server
npm run bootstrap:v2
6.4 Server starten
# Terminal 1 - Backend
cd server
npm run dev
# Terminal 2 - Frontend
cd client
npm run dev
6.5 Öffnen
- Frontend: http://localhost:5173
- Backend API: http://localhost:3000
- API Docs: http://localhost:3000
Fehlerbehebung
"APPWRITE_PROJECT_ID is not defined"
Stelle sicher, dass die .env Datei existiert und die Variablen gesetzt sind.
"Invalid OAuth redirect URI"
Die Redirect URI in der OAuth-Konfiguration muss exakt mit der in der .env übereinstimmen.
"Rate limit exceeded"
- Gmail: Max 10.000 Requests/Tag
- Outlook: Max 10.000 Requests/App/Tag
"Mistral AI: Model not found"
Prüfe, ob der API Key gültig ist und das Guthaben ausreicht.
"Stripe webhook signature invalid"
- Nutze das korrekte Webhook Secret (
whsec_...) - Bei lokalem Test: Nutze die Stripe CLI
Microsoft OAuth: "Client credential must not be empty"
Stelle sicher, dass MICROSOFT_CLIENT_ID und MICROSOFT_CLIENT_SECRET gesetzt sind. Falls du Outlook nicht nutzen möchtest, kannst du diese leer lassen - der Server startet trotzdem.
Checkliste
- Appwrite Projekt erstellt
- Appwrite API Key erstellt
- Appwrite Database erstellt
- Bootstrap ausgeführt (
npm run bootstrap:v2) - Stripe Account erstellt
- Stripe Produkte erstellt (Basic, Pro, Business)
- Stripe Webhook eingerichtet
- Google OAuth Credentials erstellt (optional)
- Microsoft App Registration erstellt (optional)
- Mistral AI API Key erstellt
- Alle
.envDateien konfiguriert - Server startet ohne Fehler
- Frontend startet ohne Fehler
Support
Bei Fragen oder Problemen:
- GitHub Issues
- support@emailsorter.de