Domain und DNS¶
Ziel¶
Diese Seite erklärt, wie eine Domain ausgewählt, gekauft und per DNS auf einen Server geleitet wird.
Die Anleitung ist allgemein verwendbar. Immohai dient als konkretes Praxisbeispiel.
Grundprinzip¶
Eine Domain ist ein lesbarer Name für einen Server oder Dienst.
DNS verbindet diesen Namen mit einer IP-Adresse.
Browser
↓
Domain oder Subdomain
↓
DNS A-Record
↓
öffentliche Server-IP
↓
Server
Für Webapps wird meistens ein A-Record verwendet.
A-Record = Domain oder Subdomain zeigt auf eine IPv4-Adresse
Beispiel:
app.example.com → 123.123.123.123
Warum Domain und DNS wichtig sind¶
Ohne Domain ist eine App nur über eine IP-Adresse erreichbar.
Eine Domain ermöglicht:
- verständliche öffentliche URLs
- getrennte Subdomains für App und Dokumentation
- HTTPS-Zertifikate mit Let's Encrypt
- spätere Erweiterung auf mehrere Apps
- saubere Trennung von Projekten und Diensten
Domain kaufen¶
Eine Domain kann bei einem Domainanbieter registriert werden.
Der Domainanbieter muss nicht derselbe Anbieter sein wie der Serveranbieter.
Beispiel:
Server: Hetzner Cloud
Domain: IONOS
DNS: IONOS
Das ist technisch vollständig in Ordnung.
Für kleine private oder professionelle Projekte reicht am Anfang normalerweise eine einzelne Hauptdomain.
Worauf beim Domainkauf zu achten ist¶
| Punkt | Bedeutung |
|---|---|
| Domainname | Sollte langfristig passen und nicht zu eng auf eine einzelne App begrenzt sein |
| Preis ab dem zweiten Jahr | Einstiegspreise sind oft stark reduziert |
| Mindestlaufzeit | Viele Anbieter verkaufen Domains mit 12 oder 24 Monaten Laufzeit |
| Zusatzprodukte | Webhosting, E-Mail oder Website-Baukasten sind oft nicht erforderlich |
| DNS-Verwaltung | Der Anbieter sollte einfache DNS-Records ermöglichen |
| Eigentümerdaten | Domaininhaber-Daten müssen korrekt sein |
Für ein Setup mit eigenem Server werden normalerweise keine zusätzlichen Webhosting-Pakete benötigt.
Empfohlene Subdomain-Struktur¶
Eine Hauptdomain reicht für mehrere Apps und Dokumentationen.
Allgemeines Schema:
example.com
www.example.com
playbook.example.com
app1.example.com
docs.app1.example.com
app2.example.com
docs.app2.example.com
Empfehlung:
| Subdomain | Zweck |
|---|---|
example.com |
optionale Hauptseite oder Weiterleitung |
www.example.com |
optionale Hauptseite oder Weiterleitung |
playbook.example.com |
allgemeines Developer Playbook |
app1.example.com |
Webapp |
docs.app1.example.com |
Projektdokumentation der Webapp |
app2.example.com |
weitere Webapp |
docs.app2.example.com |
Projektdokumentation der weiteren Webapp |
Vorteile:
- Eine Hauptdomain reicht für mehrere Apps.
- Apps und Dokumentationen bleiben klar getrennt.
- Nginx kann anhand der Subdomain zum richtigen lokalen Dienst weiterleiten.
- Neue Apps können später einfach ergänzt werden.
Typische DNS-Records¶
| Record-Typ | Zweck |
|---|---|
A |
Verweist eine Domain oder Subdomain auf eine IPv4-Adresse |
AAAA |
Verweist eine Domain oder Subdomain auf eine IPv6-Adresse |
CNAME |
Verweist eine Subdomain auf einen anderen Domainnamen |
MX |
Mailserver für eine Domain |
TXT |
Textbasierte Nachweise, z. B. SPF, DKIM oder Domain-Verifikation |
Für einfache Webapps reicht zu Beginn meistens ein A-Record.
DNS einrichten¶
Im DNS-Bereich des Domainanbieters werden die gewünschten Hosts auf die öffentliche Server-IP gesetzt.
Allgemeines Beispiel:
| Typ | Hostname | Ziel |
|---|---|---|
A |
@ |
<server-ip> |
A |
www |
<server-ip> |
A |
playbook |
<server-ip> |
A |
app1 |
<server-ip> |
A |
docs.app1 |
<server-ip> |
Bedeutung:
| Hostname | Ergebnis |
|---|---|
@ |
example.com |
www |
www.example.com |
playbook |
playbook.example.com |
app1 |
app1.example.com |
docs.app1 |
docs.app1.example.com |
DNS prüfen¶
Auf dem lokalen Rechner oder auf dem Server:
nslookup example.com
nslookup www.example.com
nslookup playbook.example.com
nslookup app1.example.com
nslookup docs.app1.example.com
Erwartung:
Address: <server-ip>
Alternativ:
dig example.com
dig playbook.example.com
dig app1.example.com
dig docs.app1.example.com
Wenn die Domain noch nicht korrekt aufgelöst wird, sollten Nginx und Certbot noch nicht eingerichtet werden.
Praxisbeispiel Immohai¶
Für Immohai und das Developer Playbook wurde folgende Domain verwendet:
ohaisoft.com
Der Server läuft bei Hetzner Cloud.
| Eigenschaft | Wert |
|---|---|
| Hetzner-Projekt | AppsOhai |
| Servername | ubuntu-4gb-nbg1-1 |
| Öffentliche IPv4-Adresse | 46.225.28.194 |
| Server-Benutzer | fober |
| Domain | ohaisoft.com |
Bei IONOS wurden für ohaisoft.com folgende DNS-Einträge gesetzt:
| Typ | Hostname | Ziel |
|---|---|---|
A |
@ |
46.225.28.194 |
A |
www |
46.225.28.194 |
A |
playbook |
46.225.28.194 |
A |
immohai |
46.225.28.194 |
A |
docs.immohai |
46.225.28.194 |
Ergebnis:
ohaisoft.com → 46.225.28.194
www.ohaisoft.com → 46.225.28.194
playbook.ohaisoft.com → 46.225.28.194
immohai.ohaisoft.com → 46.225.28.194
docs.immohai.ohaisoft.com → 46.225.28.194
Aktive öffentliche URLs:
https://playbook.ohaisoft.com
https://immohai.ohaisoft.com
https://docs.immohai.ohaisoft.com
DNS-Prüfung:
nslookup ohaisoft.com
nslookup www.ohaisoft.com
nslookup playbook.ohaisoft.com
nslookup immohai.ohaisoft.com
nslookup docs.immohai.ohaisoft.com
Erwartetes Ergebnis:
Address: 46.225.28.194
Best Practices¶
- Eine Hauptdomain wählen, die langfristig auch für weitere Apps passt.
- Subdomains konsequent für Apps und Dokumentationen verwenden.
- DNS-Änderungen immer mit
nslookupoderdigprüfen. - Keine unnötigen Hosting-, Website-Baukasten- oder Mailpakete kaufen, wenn ein eigener Server verwendet wird.
- Domains, öffentliche IPs und Ports dürfen dokumentiert werden.
- Keine Zugangsdaten, Tokens oder Private Keys dokumentieren.
Typische Fehler¶
| Fehler | Ursache | Lösung |
|---|---|---|
| Domain zeigt nicht auf den Server | A-Record fehlt oder ist falsch | DNS-Eintrag prüfen |
| Subdomain funktioniert nicht | Hostname wurde falsch eingetragen | DNS-Verwaltung prüfen |
| HTTPS-Zertifikat kann nicht erstellt werden | DNS zeigt noch nicht korrekt auf den Server | Erst DNS prüfen, dann Certbot ausführen |
| IONOS zeigt SSL-Hinweise | IONOS verwaltet nicht das SSL des eigenen Servers | HTTPS auf dem Server mit Certbot einrichten |
www funktioniert nicht |
eigener Record für www fehlt |
A-Record für www ergänzen |
Checkliste¶
- [ ] Hauptdomain festgelegt
- [ ] Domain gekauft
- [ ] DNS-Verwaltung gefunden
- [ ] öffentliche Server-IP bekannt
- [ ] A-Record für Hauptdomain gesetzt
- [ ] A-Record für App-Subdomain gesetzt
- [ ] A-Record für Doku-Subdomain gesetzt
- [ ] A-Record für Playbook-Subdomain gesetzt, falls benötigt
- [ ] optionaler A-Record für
wwwgesetzt - [ ] DNS mit
nslookupoderdiggeprüft