Domains & DNS¶
Domain-Verwaltung¶
Domains auflisten¶
Domain erstellen (mit Auto-Detect)¶
POST /api/v1/domains
{
"name": "example.com",
"customer_id": 1,
"dns_provider_id": null // Optional — wird auto-detected
}
Bei der Erstellung wird automatisch der DNS-Provider via NS-Records erkannt. Wenn ein passender Provider beim Kunden hinterlegt ist, wird er automatisch zugewiesen.
DNS-Status Lifecycle¶
Domain erstellt
├── Provider zugewiesen → "managed"
├── Provider erkannt, keine Credentials → "credentials_missing"
└── Kein Provider erkannt → "manual"
↓
Background-Worker prueft alle 5 Min
↓
A-Record zeigt auf xynap IP → "verified" + status="active"
| Status | Bedeutung |
|---|---|
manual |
Kein Provider, manuelles DNS-Setup noetig |
managed |
Provider zugewiesen, DNS wird automatisch verwaltet |
credentials_missing |
Provider erkannt, aber keine API-Credentials |
pending_verification |
DNS wird geprueft |
verified |
DNS korrekt, Domain aktiv |
error |
DNS-Fehler |
DNS-Instructions abrufen¶
Zeigt welche DNS-Records gesetzt werden muessen und prueft live den Status:
{
"domain": "example.com",
"dns_status": "manual",
"detected_provider": "hetzner",
"required_records": [
{"type": "A", "name": "@", "content": "46.4.96.105", "status": "ok"},
{"type": "AAAA", "name": "@", "content": "2a01:4f8:140:829d::2", "status": "unknown"},
{"type": "A", "name": "www", "content": "46.4.96.105", "status": "missing"}
],
"verification_status": "1 von 3 Records korrekt"
}
DNS verifizieren¶
Prueft den A-Record und setzt dns_status auf verified wenn korrekt.
DNS-Records¶
# Records einer Domain
GET /api/v1/domains/{id}/records
# Record erstellen
POST /api/v1/domains/{id}/records
{"type": "A", "name": "sub", "content": "1.2.3.4", "ttl": 3600}
# Record aktualisieren
PUT /api/v1/domains/{id}/records/{record_id}
{"content": "5.6.7.8"}
# Record loeschen (nur nicht-managed)
DELETE /api/v1/domains/{id}/records/{record_id}
DNS-Provider¶
Provider-Typen¶
| Typ | API-Adapter | Credentials |
|---|---|---|
hetzner |
Ja | api_token |
ionos |
Ja | prefix, secret |
cloudflare |
Erkennung | - |
inwx |
Erkennung | - |
manual |
Nein | - |
Provider CRUD¶
# Provider auflisten
GET /api/v1/dns-providers?customer_id=1
# Provider erstellen
POST /api/v1/dns-providers
{
"customer_id": 1,
"name": "Hetzner Hauptaccount",
"type": "hetzner",
"credentials": {"api_token": "xxx"},
"is_default": true
}
# Verbindung testen
POST /api/v1/dns-providers/{id}/test
# Zonen abrufen
GET /api/v1/dns-providers/{id}/zones
Auto-Detect¶
Die Platform erkennt 10 DNS-Provider anhand der Nameserver:
Hetzner, IONOS, Cloudflare, INWX, Strato, Netcup, GoDaddy, Namecheap, OVH, Gandi
Bei Erkennung eines unterstuetzten Providers (Hetzner/IONOS) und vorhandenen Credentials
wird die Domain automatisch als managed markiert.