Zum Hauptinhalt springen

Eigene Hostnames

Standardmässig erhält jede Deploio-Applikation einen generierten Hostnamen in der deploio.app-Domain. Falls Sie eine eigene Domain oder Hostnamen nutzen wollen, können Sie das --hosts-Flag von nctl nutzen.

--hosts=HOSTS,...    Host names where the application can be accessed. If empty,
the application will just be accessible on a generated
host name on the deploio.app domain.

$ nctl create app go-example --hosts=custom.host.example.com

Falls die Applikation bereits besteht, können mittels nctl update app eigene Host- oder Domainnames gesetzt werden:

$ nctl update app go-example --hosts=custom.host.example.com,other.custom.host.example.com

Konfiguration

Sobald Sie eigene Hostnamen für Ihre Applikation einsetzen wollen, müssen 2 zusätzliche Schritte ausgeführt werden:

  • Verifizierung des Domainbesitzes
  • eine DNS-Auflösung der Hostnamen muss zur Deploio-Infrastruktur führen

Um dies zu erreichen, erstellt nctl automatisch eine TXT RECORD- und eine DNS TARGET-Spalte in der Ausgabe des Befehls, sobald der erste Build und das erste Release erfolgreich erstellt wurden. Sie können die beiden Einträge auch nachträglich mit der --dns-Option anzeigen lassen:

$ nctl get app test-app --dns

NAME TXT RECORD DNS TARGET
go-example deploio-site-verification=go-example-nine-46e4146 go-example.46e4146.deploio.app

Abhängig von der Art des verwendeten eigenen Hostnamens benötigen Sie entweder nur den Wert der DNS TARGET-Spalte oder aber die Werte von beiden Spalten, um die oben erwähnten Schritte durchzuführen.

Erstellung von CNAME-Einträgen für eigene Hostnamen

Der einfachste und empfohlene Weg, Ihren eigenen Hostnamen auf die Deploio-Infrastruktur auflösbar zu machen, besteht in der Nutzung eines CNAME-Eintrages. Der erstellte Eintrag sollte auf den Wert auflösen, welcher in der Spalte DNS TARGET zu sehen ist.

Um beispielsweise den Hostnamen custom.host.example.org in obiger Applikation go-example zu nutzen, müssen Sie den folgenden CNAME-Eintrag bei ihrem DNS- Provider erstellen:

custom.host.example.org   CNAME   go-example.46e4146.deploio.app

Nach erfolgreicher Propagierung des Eintrags (dies kann etwas Zeit benötigen) wird dieser gleichzeitig den Besitz der Domain verifizieren, sowie ebenfalls die korrekte DNS-Auflösung zur Deploio-Infrastruktur sicherstellen.

Bitte beachten Sie, dass die Erstellung eines CNAME-Eintrages nur möglich ist, falls es sich bei dem konfigurierten Hostnamen nicht auch gleichzeitig um den Namen der Domain selbst handelt (ein sogenannter DNS Apex-Eintrag).

Ein Beispiel dazu: Sie besitzen die Domain example.org und möchten für Ihre Deploio-Applikation den Hostnamen www.example.org verwenden. Hier kann die Erstellung eines CNAME- Eintrages wie oben beschrieben durchgeführt werden. Falls Sie aber den Namen example.org als Hostnamen in Ihrer Applikation verwenden wollen, können Sie keinen CNAME-Eintrag erstellen und müssen die Schritte ausführen, welche unter Apex DNS-Einträge aufgeführt sind.

CNAME-Verkettung

Deploio verfolgt bei der Domain-Verifizierung die gesamte CNAME-Kette. Ihr CNAME-Eintrag kann also selbst auf einen weiteren CNAME zeigen. Alle Domains in der Kette müssen unter Ihrer Kontrolle oder ausdrücklich vertrauenswürdig sein. Läuft eine Zwischendomain ab und wird von Dritten neu registriert, könnten diese die Verifizierung Ihres Hostnamens übernehmen.

Um die CNAME-Kettenauflösung zu deaktivieren, wenden Sie sich an unseren Support.

Apex DNS-Einträge

Falls Ihr eingesetzter Hostname dem Domainnamen selbst entspricht (bspw.: example.org) und nicht einer Subdomain davon, können Sie keinen CNAME wie oben beschrieben erstellen. CNAME-Einträge können nicht für sogenannte "Apex DNS- Einträge" genutzt werden. In diesem Fall muss die Verifizierung der Domain und die DNS-Auflösung auf die Deploio-Infrastruktur mittels 2 verschiedenen DNS- Einträgen umgesetzt werden. Wie Sie dies umsetzen können, wird in den folgenden Abschnitten erklärt.

Verifizierung via TXT-Eintrag

Bei der Nutzung von Apex DNS-Einträgen müssen Sie einen TXT-Eintrag anlegen, welcher auf den Wert auflöst, welcher in der TXT RECORD-Spalte der nctl Ausgabe angezeigt wird. Der Eintrag wird dabei zur Verifizierung des Domainbesitzes genutzt. Um beispielsweise die Verifizierung des Domainbesitzes für den Hostnamen example.org in der oben genannten go-example Applikation durchzuführen, müssen Sie den folgenden TXT- Eintrag erstellen:

example.org   TXT   deploio-site-verification=go-example-nine-46e4146

Deploio wird diesen Eintrag periodisch abfragen und den Wert des Eintrags mit dem erwarteten Wert vergleichen. Sobald der Hostname verifiziert ist, kann er in der Deploio-Applikation genutzt werden. Sie können alle verifizierten und nicht verifizierten Hostnamen mit der Hilfe von nctl anzeigen lassen:

$ nctl get apps

NAME HOSTS UNVERIFIED_HOSTS
go-example go-example.46e4146.test.deploio.app example.org

DNS-Auflösung des Hostnamens konfigurieren

Neben der Verifizierung des Domainbesitzes muss der gewünschte Hostname auch auf die Deploio-Infrastruktur auflösbar sein. Es gibt verschiedene Wege, dies umzusetzen. Wir erklären diese in den folgenden Abschnitten.

DNS Alias-Eintrag

Einige DNS-Anbieter bieten die Nutzung von sogenannten ALIAS-Einträgen an. Diese verhalten sich ähnlich wie CNAME-Einträge, erscheinen aber bei DNS-Abfragen als Einträge des Typs A. Falls Ihr DNS-Anbieter den ALIAS-Typ unterstützt, empfehlen wir, diesen zu nutzen. Erstellen Sie dazu einfach einen DNS ALIAS-Eintrag, welcher auf den Wert auflöst, welcher in der DNS TARGET-Spalte der nctl Ausgabe angezeigt wird. Bei Nutzung der oben gezeigten go-example Applikation sollte der entsprechende ALIAS-Eintrag wie folgt aussehen:

example.org   ALIAS   go-example.46e4146.deploio.app

DNS A-Eintrag

Sollte Ihr DNS-Anbieter den ALIAS-Typ nicht unterstützen, so müssen Sie DNS- Einträge des Typs A nutzen. Um diese anzulegen, muss zuerst die IP-Adresse, auf welche der DNS TARGET-Wert der nctl-Ausgabe zeigt, aufgelöst werden. Auf Linux- oder macOS-Systemen kann dies mit Hilfe des host- (oder eines äquivalenten) Befehls umgesetzt werden:

$ host test-app.edcd8e7.deploio.app

test-app.edcd8e7.deploio.app is an alias for deploio.296dc8b.ingressnginx.nineapis.ch.
deploio.296dc8b.ingressnginx.nineapis.ch has address 178.209.59.205

Anhand der obigen Ausgabe können Sie nun einen DNS A Eintrag mit dem folgenden Inhalt anlegen:

example.org   A   178.209.59.205

Sobald der DNS-Eintrag vollständig propagiert wurde (dies kann einen Moment dauern), können Sie auf Ihre Deploio-Applikation unter https://<ihr-eigener-hostname> zugreifen.