"use client"; import { HelpCode, HelpStep } from "@/components/help-button"; /** * Der Inhalt der Kurzhilfe auf der Domain-Seite. * * Verdichtet aus dem README-Abschnitt „Hinter einem Reverse Proxy“. Bewusst * nur die Schritte, die diese Anwendung betreffen — wie man im eigenen Proxy * einen Eintrag anlegt, steht in dessen Handbuch besser. */ export function DomainHilfe({ baseUrlHostname }: { baseUrlHostname: string }) { const beispiel = baseUrlHostname || "qr.example.com"; return (

Eine Domain hier zu registrieren genügt nicht — sie muss den Browser auch hierher führen. Dazu gehören drei Dinge außerhalb dieser Anwendung: ein DNS-Eintrag, ein Eintrag im Reverse Proxy und ein Zertifikat.

    Beim Anbieter der Domain einen A-Record (bei IPv6 zusätzlich AAAA) auf die öffentliche Adresse des Reverse Proxy setzen. Ein CNAME auf einen bestehenden Namen tut es auch.

    Steht der Name nur im internen DNS oder ist er nur über VPN erreichbar, funktionieren gedruckte Codes{" "} auch nur dort. Für Aushänge, Flyer und Verpackungen muss er öffentlich auflösbar sein.

    Für die Domain einen eigenen Eintrag anlegen, der auf diese Anwendung zeigt — Ziel ist der Docker-Host auf Port{" "} 3000, oder im selben Docker-Netz der Servicename{" "} app.

    Diese drei Kopfzeilen muss der Proxy mitschicken. Nginx Proxy Manager, Traefik und Caddy tun das von sich aus; ein blankes nginx braucht sie im Serverblock:

    {`proxy_set_header Host $host; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;`}

    Ohne X-Forwarded-Host{" "} landet jeder Aufruf unter der Standard-Domain, und Kurz-URLs der Zweitdomain werden nicht gefunden.

    HTTPS erledigt der Proxy. Im Nginx Proxy Manager ist das der Reiter{" "} SSL mit Force SSL; Traefik und Caddy holen das Zertifikat selbst, sobald der DNS-Eintrag steht.

    Ohne gültiges Zertifikat brechen viele Scanner-Apps den Aufruf ohne Erklärung ab — der Code sieht dann für die Nutzer schlicht kaputt aus.

    Über Domain registrieren den Hostnamen eintragen — genau so, wie er im Browser steht, ohne{" "} https:// und ohne Pfad:

    {beispiel}

    Die Weiterleitung prüft den Hostnamen gegen diese Liste. Ein unbekannter Name endet mit 404 — über eine gefälschte Kopfzeile lässt sich also keine fremde Domain ansprechen.

    Eine frisch registrierte Domain gehört noch niemandem. Erst über{" "} Gruppen zuteilen können Mitglieder dieser Gruppe dort Codes anlegen. Die als Voreinstellung markierte Domain ist die, die beim Anlegen vorausgewählt ist.

    Von außerhalb des eigenen Netzes:

    {`curl -I https://${beispiel}/`}

    Kommt eine Antwort dieser Anwendung, stimmen DNS, Proxy und Zertifikat. Danach einen Code der zugeteilten Gruppe anlegen, die Domain auswählen und den fertigen Code einmal mit dem Handy scannen — das ist die einzige Prüfung, die wirklich zählt.

Was BASE_URL damit zu tun hat

Die Umgebungsvariable{" "} BASE_URL ist die Standard-Adresse: Sie greift bei Aufrufen über eine nicht registrierte Adresse und bestimmt, ob Kurz-URLs mit{" "} http oder{" "} https gebildet werden. Weitere Domains werden hier registriert, nicht dort eingetragen.

); }