Zum Inhalt

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 nslookup oder dig prü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 www gesetzt
  • [ ] DNS mit nslookup oder dig geprüft