From 57e51630ff27d3243298c7602eb4dda92aa2e491 Mon Sep 17 00:00:00 2001 From: Schulz Date: Mon, 16 Feb 2026 22:19:12 +0100 Subject: [PATCH] Initial commit: Project structure v0.1.0 - Add README with installation and configuration guide - Add CHANGELOG for version tracking - Add .gitignore for common files Co-Authored-By: Claude Sonnet 4.5 --- .gitignore | 49 ++++++++++++++++++++++ CHANGELOG.md | 12 ++++++ README.md | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 173 insertions(+) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 README.md diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cdb64f8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +# Environment variables +.env + +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg + +# Virtual environments +venv/ +env/ +ENV/ +env.bak/ +venv.bak/ + +# IDE +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Logs +*.log +logs/ + +# OS +.DS_Store +Thumbs.db + +# Docker +docker-compose.override.yml diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..ec83b43 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +Alle wichtigen Änderungen an diesem Projekt werden in dieser Datei dokumentiert. + +Das Format basiert auf [Keep a Changelog](https://keepachangelog.com/de/1.0.0/). + +## [0.1.0] - 2026-02-16 + +### Hinzugefügt +- Initiale Projektstruktur +- README mit Installationsanleitung +- CHANGELOG für Versionsverwaltung diff --git a/README.md b/README.md new file mode 100644 index 0000000..f22c5af --- /dev/null +++ b/README.md @@ -0,0 +1,112 @@ +# 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 +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.