# DNS mit DigitalOcean setzen

Einmal ein DigitalOcean-API-Token verbinden. MainPath schreibt A- und CNAME-Einträge in deine Domains.

> Source: https://www.mainpath.ai/de/docs/dns-digitalocean/

Wenn die DNS-Zone deiner Domain in einem [DigitalOcean](https://www.digitalocean.com/)-Konto liegt, musst du die Einträge nicht mehr von Hand abtippen. Du hinterlegst ein API-Token unter **Anbindungen**; sobald ein Projekt Domains hat, schreibt MainPath die Einträge in die passende Domain.

Manuelles DNS bleibt möglich. Siehe [DNS-Eintrag konfigurieren]({{< relref "domain-how-to" >}}).

## API-Token bei DigitalOcean

MainPath spricht die **DigitalOcean-Domains-API** (`api.digitalocean.com/v2/domains`) an.

1. Melde dich im [DigitalOcean Control Panel](https://cloud.digitalocean.com/) an und öffne **API**.
2. Lege ein **Personal Access Token** mit Lese- und Schreibrechten für Domains an.
3. Das Token kopieren. Es wird nur einmal angezeigt.

Die Domain muss DigitalOcean-Nameserver nutzen (`ns1.digitalocean.com`, `ns2.digitalocean.com`, `ns3.digitalocean.com`).

## Anbindung in MainPath

1. Öffne **Anbindungen** und **Anbindung hinzufügen**.
2. Wähle unter **DNS** die Kachel **DigitalOcean**.
3. Füge das API-Token ein und speichere. MainPath prüft, ob das Token gültig ist und welche Domains es sieht.

Mehrere DigitalOcean-Zugänge in einer Organisation sind möglich. Gehört eine Domain zu mehreren Zonen, nimmt MainPath die treffendste.

## Was gesetzt wird

MainPath übernimmt dieselben Hosts, die du unter **Domains** siehst.

- Einträge werden nur gesetzt, wenn schon eine echte Server-Adresse da ist.
- Bestehende Einträge desselben Namens und Typs werden aktualisiert, nicht die ganze Zone ersetzt.
- Änderungen kommen schnell an.

```mermaid
flowchart LR
  org["DigitalOcean-Anbindung"]
  domains["Domains in MainPath"]
  zone["DigitalOcean-Domain"]
  server["Dein Server"]
  org --> zone
  domains -->|"A / CNAME"| zone
  zone --> server
```

Nach dem Speichern eines Projekts versucht MainPath, fehlende oder abweichende Einträge anzugleichen. Den Prüfstatus siehst du in der Domain-Übersicht.

## SSL über DNS-01 (optional)

Erreicht Let's Encrypt den Server nicht (kein öffentliches HTTP/443, Firewall, interne IP), öffne die Details dieser Anbindung und hake die betroffenen Domains an. MainPath schreibt dann den TXT-Eintrag `_acme-challenge` in diese Zone. Ohne Haken bleibt die bisherige TLS-Prüfung (ALPN) über den Server.

## Fehlersuche

- **Token ungültig**: Ein Personal Access Token mit Lese- und Schreibrechten für Domains anlegen. Ein Token nur mit Leserechten reicht nicht.
- **Kein Eintrag bei DigitalOcean**: Die Domain liegt nicht in diesem Konto oder nutzt andere Nameserver.
- **Zone sichtbar, Domain nicht erreichbar**: Die Domain existiert bei DigitalOcean, aber die Nameserver zeigen woanders hin. Nameserver beim Registrar auf DigitalOcean (`ns1.digitalocean.com`, `ns2.digitalocean.com`, `ns3.digitalocean.com`) umstellen.
- **Status in MainPath noch rot**: DNS braucht oft ein paar Minuten, oder der Server hat noch keine bekannte Adresse.

## Siehe auch

- [Domain-Setup]({{< relref "domain" >}})
- [DNS-Eintrag konfigurieren]({{< relref "domain-how-to" >}})
- [Anbindungen]({{< relref "connections" >}})

