Skip to main content

Technisches Setup & Domains

Technisches Setup & Domains

Lisa Logo

Überblick über die Infrastruktur hinter lisa.expert. Zugangsdaten stehen nicht in diesem Buch - siehe Vault.

Server & Zugriff

  • Produktionsserver: IONOS VPS XL, IP 87.106.51.21 (CloudPanel).
  • Docroot: /home/lisa/htdocs/lisa.expert, Owner lisa:lisa.
  • Zugriff: nur über WireGuard + SSH.
  • Weitere Server im Verbund: VPS M+ (82.165.121.110, Datenbanken), VPS S (85.215.215.96, n8n/Docker), All-Inkl (Mail).

Domains

Domain Zweck
lisa.expert Hauptseite (NICHT hinter Cloudflare)
news.lisa.expert Lisa-Listmonk-Instanz (Port 9096)
app.lisa.expert geplant (Tenant-Umzug)
frühere Frontend-Domains leiten im Frontend per 301 pfaderhaltend auf lisa.expert um

Umleitungs-Detail: Die früheren Frontend-Domains - 301 https://lisa.expert$request_uri (Pfad bleibt erhalten, weil strukturgleiche Whitelabel-Kopien). /api/ und /.well-known bleiben ausgenommen - sie laufen weiter am geteilten Backend (Port 3021). Die alten Domains liegen hinter Cloudflare, lisa.expert nicht.

Backend-Prozesse (PM2)

Prozess Port Rolle
Node-API (Haupt-Backend) 3021 zentrales Backend für lisa.expert (/api/-Standard), komplett auf Lisa umgebrandet
lisa-webinar 3055 isolierter Webinar-Service (/api/webinar/-Route)

nginx (lisa.expert.conf)

  • try_files $uri $uri/ @reverse_proxy für statische Seiten + Backend-Proxy.
  • 404-Seite: proxy_intercept_errors on + error_page 404 /404.html nur im Proxy-Location - damit liefert lisa.expert die Lisa-gebrandete 404-Seite statt der Express-404 des Backends. Wichtig: ein separater location /api/-Block ohne Fehler-Abfang, damit fehlgeschlagene API-Calls weiterhin JSON liefern (sonst bräche z. B. konto.html).
  • HSTS aktiv (max-age=31536000; includeSubDomains).
  • SSL: Let's Encrypt, Auto-Renew eingerichtet.

Branding-Schicht (Website)

  • PWA: /icons/icon-*.png (8 Größen) + Apple-Größen + maskable-Icons, alle aus lisa-favicon.jpg per ImageMagick erzeugt; manifest.json mit Name "Lisa - KI-Expertin für Neukunden", theme_color #a855f7, background_color #f5f3ff.
  • Logo-Lockup bilder/lisa/lisa-logo.png, Favicon lisa-favicon.jpg, 17+ Lisa-Assets in bilder/lisa/.
  • Cache-Busting über ?v=...-Parameter bei Header/Footer/CSS (sonst liefern Browser/Cloudflare alte Versionen).
  • Cloudflare cached Bilder mit max-age=14400 - nach Logo-Tausch Hard-Refresh oder Cache-Buster.

Chatbots, Wissensdatenbank & mehr (Dienste)

  • Chatbots via n8n: Lisa Kundenservice Chat (Kundenportal), Lisa Produktberater (Website-Widget), Telegram-Variante (t.me/lisaexperte_bot).
  • Wissensdatenbank: PGVector (siehe Seite "Wissensdatenbank").
  • Anrufprotokoll: ElevenLabs/Vapi.

Zahlungen (Stripe)

  • Eigenes Lisa-Stripe-Konto (AT, EUR, netto) - getrennt vom Konto der Mutter-Marke.
  • Konfiguration in stripe-config.json - [mode].lisa.secret_key (nicht .env); der Live-Code initialisiert dafür eine zweite Instanz stripeLisa.
  • Marken-Routing per Host: lisa.expert-Anfragen laufen aufs Lisa-Konto (MasterClass-create-intent, Abo-Checkouts, Embedded Checkout).
  • Sicherheits-Fallback: ohne gesetztes Lisa-Secret - automatisch Mutter-Konto (kein Regress).
  • Webhook-Verarbeitung ist multi-account (Signatur gegen Mutter- dann Lisa-Secret, Objekt-Retrieval konto-bewusst).

Schutz & Sicherheit

  • Cloudflare Turnstile: brand-gated nur für lisa.expert (Checkout, Kontakt, Newsletter-Signup, Trial, Partner-Bewerbung).
  • Webhook-Signaturen und interne Identifier (z. B. der Signatur-Header, Session-Namen, Secrets) wurden beim Rebrand bewusst nicht umbenannt - Umbenennen würde Signaturprüfungen brechen.
  • MasterClass-/Admin-Seiten: Zahlung bleibt bei der Mutter, nur die Seiten sind Lisa.

Wichtige nginx-Lehren (aus dem Betrieb)

  • Niemals location = /index.html { return 301 / } bei gesetzter index index.html - das loopt (die index-Direktive löst / intern zu /index.html auf). Korrekt: auf $request_uri prüfen.
  • Versions-Bump-Regex immer an Datei-Endung + Quote ankern (.style.css?v=), nie greedy über style.css - sonst korrumpiert .style.cssText im Inline-JS und bricht ganze Scripts.