Eigene Hostnames
Standardmässig erhält jede Deploio-Applikation einen generierten Hostnamen in
der deploio.app-Domain. Falls du eine eigene Domain oder Hostnamen nutzen
möchtest, kannst du 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 du eigene Hostnamen für deine Applikation einsetzen möchtest, 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. Du kannst 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ötigst du 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, deinen 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, musst du den folgenden CNAME-Eintrag bei deinem 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 beachte, 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:
Du besitzt die Domain example.org und möchtest für deine Deploio-Applikation
den Hostnamen www.example.org verwenden. Hier kann die Erstellung eines CNAME-
Eintrages wie oben beschrieben durchgeführt werden. Falls du aber den Namen
example.org als Hostnamen in deiner Applikation verwenden willst, kannst du
keinen CNAME-Eintrag erstellen und musst die Schritte ausführen, welche unter
Apex DNS-Einträge aufgeführt sind.
:::caution CNAME-Verkettung
Deploio verfolgt bei der Domain-Verifizierung die gesamte CNAME-Kette. Dein CNAME-Eintrag kann also selbst auf einen weiteren CNAME zeigen. Alle Domains in der Kette müssen unter deiner Kontrolle oder ausdrücklich vertrauenswürdig sein. Läuft eine Zwischendomain ab und wird von Dritten neu registriert, könnten diese die Verifizierung deines Hostnamens übernehmen.
Um die CNAME-Kettenauflösung zu deaktivieren, wende dich an unseren Support.
:::
Apex DNS-Einträge
Falls dein eingesetzter Hostname dem Domainnamen selbst entspricht (bspw.:
example.org) und nicht einer Subdomain davon, kannst du 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 du dies umsetzen kannst, wird in den folgenden
Abschnitten erklärt.
Verifizierung via TXT-Eintrag
Bei der Nutzung von Apex DNS-Einträgen musst du 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, musst du 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. Du kannst 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 dein DNS-Anbieter den ALIAS-Typ unterstützt, empfehlen
wir, diesen zu nutzen. Erstelle 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 dein DNS-Anbieter den ALIAS-Typ nicht unterstützen, so musst du 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 mithilfe 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 kannst du 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), kannst du auf deine Deploio-Applikation unter
https://<dein-eigener-hostname> zugreifen.