Doku: README auf Deutsch übersetzt

This commit is contained in:
Gemini Agent
2025-12-04 05:25:49 +00:00
parent 27b7187f3a
commit 573f387d84

View File

@@ -1,47 +1,47 @@
# CoreDNS NetBox Sync # CoreDNS NetBox Sync
This container automates the generation of DNS zone files for CoreDNS (or BIND) by synchronizing data from [NetBox](https://github.com/netbox-community/netbox). It fetches IPAM data (active IPs with DNS names) and DNS Plugin records. Dieser Container automatisiert die Generierung von DNS-Zonendateien für CoreDNS (oder BIND), indem er Daten aus [NetBox](https://github.com/netbox-community/netbox) synchronisiert. Er ruft IPAM-Daten (aktive IPs mit DNS-Namen) und DNS-Plugin-Einträge ab.
## Features ## Funktionen
* **Automated Synchronization:** Periodically fetches data from NetBox (Default: 10 minutes). * **Automatische Synchronisation:** Ruft periodisch Daten von NetBox ab (Standard: alle 10 Minuten).
* **Fail-Safe Operation:** If NetBox is unreachable or returns errors, the existing zone files are preserved to prevent `NXDOMAIN` issues. * **Ausfallsicherer Betrieb:** Wenn NetBox nicht erreichbar ist oder Fehler zurückgibt, werden die bestehenden Zonendateien beibehalten, um `NXDOMAIN`-Probleme zu vermeiden.
* **Dual Zone Support:** Generates both Forward and Reverse (PTR) zones. * **Dual-Zone-Unterstützung:** Generiert sowohl Forward- als auch Reverse-(PTR)-Zonen.
* **Intelligent Fallback:** Automatically configures a fallback Nameserver if no NS records are defined in NetBox. * **Intelligenter Fallback:** Konfiguriert automatisch einen Fallback-Nameserver, falls in NetBox keine NS-Einträge definiert sind.
## Configuration ## Konfiguration
Configuration is handled entirely via environment variables. Die Konfiguration erfolgt vollständig über Umgebungsvariablen.
### Required Variables ### Erforderliche Variablen
| Variable | Description | | Variable | Beschreibung |
| :--- | :--- | | :--- | :--- |
| `NETBOX_URL` | The full URL to the NetBox instance (e.g., `http://netbox.local`). | | `NETBOX_URL` | Die vollständige URL zur NetBox-Instanz (z.B. `http://netbox.local`). |
| `NETBOX_TOKEN` | The API Token for authentication (Read-Only permissions are sufficient). | | `NETBOX_TOKEN` | Das API-Token zur Authentifizierung (Nur-Lese-Berechtigungen sind ausreichend). |
### Optional Variables ### Optionale Variablen
| Variable | Default | Description | | Variable | Standardwert | Beschreibung |
| :--- | :--- | :--- | | :--- | :--- | :--- |
| `REFRESH_INTERVAL` | `600` | Synchronization interval in seconds. | | `REFRESH_INTERVAL` | `600` | Synchronisationsintervall in Sekunden. |
| `ZONE_NAME` | `klenzel.net` | The DNS zone name to manage. | | `ZONE_NAME` | `klenzel.net` | Der Name der zu verwaltenden DNS-Zone. |
| `REVERSE_ZONE_NAME` | `172.in-addr.arpa` | The reverse lookup zone name. | | `REVERSE_ZONE_NAME` | `172.in-addr.arpa` | Der Name der Reverse-Lookup-Zone. |
| `OUTPUT_FILE_FWD` | `/zones/db.klenzel.net` | Path inside the container for the forward zone file. | | `OUTPUT_FILE_FWD` | `/zones/db.klenzel.net` | Pfad im Container für die Forward-Zonendatei. |
| `OUTPUT_FILE_REV` | `/zones/db.reverse.arpa` | Path inside the container for the reverse zone file. | | `OUTPUT_FILE_REV` | `/zones/db.reverse.arpa` | Pfad im Container für die Reverse-Zonendatei. |
| `FALLBACK_NS_HOSTNAME`| `fks-01-cl-cdns` | Hostname used for NS record if none exist in NetBox. | | `FALLBACK_NS_HOSTNAME`| `fks-01-cl-cdns` | Hostname, der als NS-Eintrag verwendet wird, falls keiner in NetBox existiert. |
| `FALLBACK_NS_IP` | `172.25.16.152` | IP address for the fallback NS glue record. | | `FALLBACK_NS_IP` | `172.25.16.152` | IP-Adresse für den Fallback-NS-Glue-Record. |
## Usage ## Verwendung
### Docker ### Docker
1. **Build the image:** 1. **Image bauen:**
```bash ```bash
docker build -t local/dns-sync . docker build -t local/dns-sync .
``` ```
2. **Run with environment variables:** 2. **Mit Umgebungsvariablen starten:**
```bash ```bash
docker run -d \ docker run -d \
--name klzDNS-worker \ --name klzDNS-worker \
@@ -49,19 +49,19 @@ Configuration is handled entirely via environment variables.
--net=container:klzDNS-coredns \ --net=container:klzDNS-coredns \
-v klzDNS-data:/zones \ -v klzDNS-data:/zones \
-e NETBOX_URL="http://172.30.242.99" \ -e NETBOX_URL="http://172.30.242.99" \
-e NETBOX_TOKEN="your-secret-token" \ -e NETBOX_TOKEN="dein-geheimes-token" \
local/dns-sync local/dns-sync
``` ```
### Using a `.env` file ### Verwendung einer `.env`-Datei
1. Create a `.env` file based on the example: 1. Erstellen Sie eine `.env`-Datei basierend auf dem Beispiel:
```bash ```bash
cp .env.example .env cp .env.example .env
# Edit .env and add your credentials # Bearbeiten Sie die .env und fügen Sie Ihre Zugangsdaten hinzu
``` ```
2. Run the container referencing the file: 2. Starten Sie den Container unter Verweis auf die Datei:
```bash ```bash
docker run -d \ docker run -d \
--name klzDNS-worker \ --name klzDNS-worker \