Eigene Hostnames
Standardmässig erhält jede deplo.io Applikation einen generierten Hostname in
der deploio.app
Domain. Falls Sie eine eigene Domain oder Hostname 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 Domain Besitzes
- eine DNS Auflösung der Hostnamen muss zur deplo.io 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 Hostnamens
Der einfachste und empfohlene Weg Ihren eigenen Hostname auf die deplo.io
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 Hostname 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 deplo.io Infrastruktur sicherstellen.
Beachten Sie, dass die Erstellung eines CNAME Eintrages nur möglich ist falls es sich bei dem konfigurierten Hostname 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 deplo.io Applikation
den Hostname 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 Hostname 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.
Apex DNS Einträge
Falls ihr eingesetzer Hostname dem Domain Name 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 deplo.io 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 angzeigt wird. Der Eintrag wird dabei zur
Verifizierung des Domain Besitzes genutzt. Um Beispielsweise die Verifizierung
des Domain Besitzes für den Hostname 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
Deplo.io wird diesen Eintrag periodisch abfragen und den Wert des Eintrags mit
dem erwarteten Wert vergleichen. Sobald der Hostname verifiziert ist, kann er in
der deplo.io Applikation genutzt werden. Sie können alle verifizierten und nicht
verifizierten Hostnames 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 Domain Besitzes muss der gewünschte Hostname auch auf die deplo.io 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 der 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 Mac OS 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 deplo.io Applikation unter
https://<ihr-eigener-hostname>
zugreifen.