dyndns-docker/README.md

113 lines
2.3 KiB
Markdown

# DynDNS Docker für Hetzner DNS
Ein Docker-basiertes Dynamic DNS System für die Hetzner DNS Console.
## Features
- Automatische Erkennung von IP-Änderungen
- Integration mit Hetzner DNS API
- Konfigurierbare Check-Intervalle
- Docker-Container für einfaches Deployment
- Umgebungsvariablen für sichere Konfiguration
## Voraussetzungen
- Docker und Docker Compose
- Hetzner DNS API Token
- Domain bei Hetzner DNS verwaltet
## Installation
### 1. Repository klonen
```bash
git clone <repository-url>
cd dyndns-docker
```
### 2. Konfiguration
Kopieren Sie die Beispiel-Konfigurationsdatei und passen Sie sie an:
```bash
cp .env.example .env
```
Bearbeiten Sie die `.env` Datei mit Ihren Daten:
```env
HETZNER_API_TOKEN=your_api_token_here
DOMAIN=example.com
RECORD_NAME=home
RECORD_TYPE=A
CHECK_INTERVAL=300
```
### 3. Container starten
```bash
docker-compose up -d
```
## Konfiguration
### Umgebungsvariablen
| Variable | Beschreibung | Beispiel |
|----------|-------------|----------|
| `HETZNER_API_TOKEN` | Hetzner DNS API Token | `abc123...` |
| `ZONE_ID` | Hetzner DNS Zone ID (optional, wird automatisch ermittelt) | `xyz789...` |
| `DOMAIN` | Domain-Name | `example.com` |
| `RECORD_NAME` | DNS Record Name | `home` oder `@` für Root |
| `RECORD_TYPE` | DNS Record Typ | `A` (IPv4) oder `AAAA` (IPv6) |
| `CHECK_INTERVAL` | Prüfintervall in Sekunden | `300` (5 Minuten) |
| `LOG_LEVEL` | Log-Level | `INFO`, `DEBUG`, `WARNING` |
## Verwendung
### Container Status prüfen
```bash
docker-compose ps
```
### Logs anzeigen
```bash
docker-compose logs -f
```
### Container neu starten
```bash
docker-compose restart
```
### Container stoppen
```bash
docker-compose down
```
## Hetzner DNS API Token erstellen
1. Melden Sie sich im [Hetzner DNS Console](https://dns.hetzner.com/) an
2. Gehen Sie zu "API Tokens"
3. Erstellen Sie einen neuen API Token mit Lese- und Schreibrechten
4. Kopieren Sie den Token in Ihre `.env` Datei
## Versioning
Dieses Projekt folgt einer vereinfachten Versionierungsstruktur:
- **0.1**: Große Änderungen (neue Features, Breaking Changes)
- **0.0.1**: Kleine Änderungen (Bugfixes, kleinere Verbesserungen)
- **1.x**: Major Releases (nur nach Anweisung)
## Lizenz
MIT License
## Support
Bei Fragen oder Problemen erstellen Sie bitte ein Issue im Repository.