🔧 PRO Setup Guide¶
Diese Anleitung erklärt die Einrichtung des manniPhone PRO Backends für Self-Hosting.
📋 Voraussetzungen¶
Software¶
| Software | Version | Link |
|---|---|---|
| Node.js | 18+ | nodejs.org |
| PostgreSQL | 14+ | postgresql.org |
| Git | 2.x | git-scm.com |
Accounts¶
- Twilio Account – twilio.com/try-twilio
- Stripe Account – stripe.com (für Payments)
🚀 Installation¶
1. Repository klonen¶
2. Dependencies installieren¶
3. Environment konfigurieren¶
Bearbeite .env:
# Server
NODE_ENV=development
PORT=3001
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/manniphone
# JWT
JWT_SECRET=your-super-secret-key-here
JWT_REFRESH_SECRET=another-super-secret-key
# Twilio
TWILIO_ACCOUNT_SID=ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY_SID=SKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_API_KEY_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_TWIML_APP_SID=APxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
TWILIO_PHONE_NUMBER=+491234567890
# Stripe
STRIPE_SECRET_KEY=sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxxxxxxxxxxxxxxxxxxxxxxx
🗄️ Datenbank einrichten¶
PostgreSQL installieren (macOS)¶
Datenbank erstellen¶
Schema anwenden¶
📞 Twilio konfigurieren¶
1. Account erstellen¶
- Gehe zu twilio.com/try-twilio
- Registriere dich mit E-Mail
- Verifiziere deine Telefonnummer
2. Credentials finden¶
- Console → Dashboard
- Kopiere:
- Account SID:
ACxxxxxxxxxx - Auth Token:
xxxxxxxxxx
3. API Key erstellen¶
- Console → Account → API Keys
- Create API Key
- Name:
manniPhone - Type:
Standard - Kopiere:
- SID:
SKxxxxxxxxxx - Secret:
xxxxxxxxxx(nur einmal sichtbar!)
4. Telefonnummer kaufen¶
- Console → Phone Numbers → Buy a Number
- Land: Deutschland (+49)
- Capabilities: ✅ Voice
- Buy
Trial Account
Im Trial-Modus kannst du nur an verifizierte Nummern anrufen. Upgrade für volle Funktionalität.
5. TwiML App erstellen¶
- Console → Voice → TwiML Apps
- Create new TwiML App
- Friendly Name:
manniPhone - Voice Request URL:
https://your-domain.com/api/webhook/voice/outbound - Method:
POST - Create
- Kopiere App SID:
APxxxxxxxxxx
💳 Stripe konfigurieren¶
1. Account erstellen¶
- Gehe zu stripe.com
- Registriere dein Business
2. API Keys¶
- Developers → API Keys
- Kopiere:
- Publishable key:
pk_test_xxx - Secret key:
sk_test_xxx
3. Webhook einrichten¶
- Developers → Webhooks
- Add endpoint
- URL:
https://your-domain.com/api/billing/webhook - Events:
checkout.session.completedcustomer.subscription.createdcustomer.subscription.updatedcustomer.subscription.deleted- Add endpoint
- Kopiere Webhook Secret:
whsec_xxx
🖥️ Server starten¶
Development¶
Server läuft auf http://localhost:3001
Production¶
Mit PM2 (empfohlen)¶
✅ Installation testen¶
Health Check¶
Erwartete Antwort:
API Endpoints¶
🌐 Deployment¶
Empfohlene Hosting-Optionen¶
| Provider | Preis | Besonderheiten |
|---|---|---|
| Railway | ab $5/mo | Einfachstes Setup |
| Render | ab $7/mo | Gute DX |
| Fly.io | ab $5/mo | Edge Deployment |
| Hetzner | ab €4/mo | Deutsche Server |
Railway Deployment¶
# Railway CLI installieren
npm install -g @railway/cli
# Login
railway login
# Projekt erstellen
railway init
# PostgreSQL hinzufügen
railway add -p postgresql
# Deployen
railway up
Environment Variables setzen¶
railway variables set TWILIO_ACCOUNT_SID=ACxxx
railway variables set TWILIO_AUTH_TOKEN=xxx
# ... weitere Variables
🔧 Troubleshooting¶
Port bereits belegt¶
Datenbank-Verbindung fehlgeschlagen¶
Twilio Webhook nicht erreichbar¶
Nutze ngrok für lokales Testing:
Trage ngrok-URL in TwiML App ein.