Zum Hauptinhalt springen

Eigene Domain — Custom Domain für dein Tenant-Portal

[domain] [admin] [branding]

Statt <dein-tenant>.licensio.io kannst du dein Lizenz-Portal unter einer eigenen Domain laufen lassen, z.B. portal.deinedomain.de. SSL-Zertifikat wird automatisch via Vercel ausgestellt.

Für wen

Admins (Tenants), die ihren Kunden eine White-Label-Erfahrung bieten wollen — kein "licensio.io" in der URL.

Voraussetzungen

  • Du musst Inhaber:in der Domain sein (DNS-Konfiguration im Domain-Provider).
  • Du brauchst Zugriff auf die DNS-Einstellungen deines Domain-Providers (Strato, IONOS, GoDaddy, Cloudflare, Namecheap, All-Inkl etc.).

Schritt für Schritt

1. Im Admin: Domain eintragen

Einstellungen → Domain → Subdomain (z.B. portal.deinedomain.de) eingeben → Domain hinzufügen.

Der Admin generiert einen TXT-Record-Token (z.B. licensio-verify=abc123...).

2. DNS-Einträge setzen

Bei deinem Domain-Provider zwei Einträge anlegen:

CNAME-Record:

  • Name/Host: portal (oder die Subdomain die du gewählt hast)
  • Wert/Ziel: cname.vercel-dns.com

TXT-Record (zur Verifikation):

  • Name/Host: _licensio.portal (mit Unterstrich!)
  • Wert: licensio-verify=<dein-token> (kommt aus dem Admin)

Anbieter-spezifische Anleitungen sind im Admin als ausklappbare Sektion verfügbar (Strato, IONOS, Cloudflare, GoDaddy, Namecheap, All-Inkl).

3. DNS-Verifikation

DNS-Änderungen brauchen 5–60 Minuten. Im Admin → Verifikation prüfen klicken. Bei Erfolg:

  • Domain wird als verifiziert markiert
  • licensio fügt sie automatisch zu Vercel hinzu
  • SSL-Zertifikat wird ausgestellt (~1–2 Min)

4. Live testen

Öffne https://portal.deinedomain.de/login. Sollte dein Tenant-Portal mit deinem Branding zeigen.

5. Widget-Code anpassen (optional)

Falls du das Widget auf deiner Webseite einbettest und es jetzt von der Custom-Domain laden willst:

<script
src="https://portal.deinedomain.de/widget.js"
data-tenant="<dein-tenant>"
data-custom-domain="portal.deinedomain.de">
</script>

Im Admin Widget-Tab wird der Embed-Code automatisch mit Custom-Domain generiert sobald die Domain verifiziert ist.

Wie es technisch läuft

  • Portal-Middleware erkennt anhand des Hosts ob ein Aufruf zu einer Custom-Domain gehört (DB-Lookup custom_domain_verified=true).
  • Bei Match wird das richtige Tenant-Branding geladen.
  • Vercel kümmert sich um SSL-Zertifikat-Ausstellung + Renewal (Let's Encrypt).
  • DNS-Verifikation prüft TXT-Record _licensio.<domain> auf den Token.

Häufige Fragen

Kann ich meine Root-Domain deinedomain.de nehmen? Aktuell nur Subdomains (z.B. portal.deinedomain.de, lizenz.deinedomain.de). Root-Domains brauchen A-Records statt CNAME — komplexer und nicht offiziell unterstützt.

Wie lange dauert die SSL-Ausstellung? Nach erfolgreicher Verifikation 1–2 Minuten via Vercel + Let's Encrypt. Bei Cloudflare-Proxy (orange Cloud) muss der Proxy zunächst aus sein, sonst klappt die Verifikation nicht.

Was wenn der TXT-Record nicht erkannt wird?

  • DNS-Cache-Zeit abwarten (TTL)
  • Manche Provider verlangen den Hostnamen anders: _licensio.portal (mit Unterstrich) — wenn das nicht klappt, manchmal nur _licensio (ohne Subdomain) eintragen
  • Mit dig TXT _licensio.portal.deinedomain.de lokal prüfen

Kann ich mehrere Domains nutzen? Aktuell eine Custom-Domain pro Tenant. Multi-Domain wäre Phase 2.

Was passiert wenn ich die Domain entferne? Domain entfernen im Admin → Vercel-Eintrag wird gelöscht, DB-Eintrag entfernt. Kunden, die die Custom-Domain im Browser-Bookmark haben, bekommen wieder das Standard-Tenant-Subdomain (manuell anpassen).

Brauche ich ENV-Variablen im Vercel-Admin-Projekt? Ja, einmalig:

Verwandt