mirror of
https://github.com/skoelle/dyndns-updater.git
synced 2026-09-17 16:10:25 +00:00
Initial scaffold: SPEC, PLAN, app modules, Dockerfile, compose, CI workflow
This commit is contained in:
@@ -0,0 +1,5 @@
|
|||||||
|
.env
|
||||||
|
data/
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
.venv/
|
||||||
@@ -1,2 +1,29 @@
|
|||||||
# dyndns-updater
|
# dyndns-updater
|
||||||
Cloudflare + FreeDNS DynDNS-Updater fuer FritzBox (TR-064) auf docker-host-pve
|
|
||||||
|
Kleiner Docker-Container, der Cloudflare-A-Records (DNS-only) und eine bestehende
|
||||||
|
FreeDNS-Update-URL mit der aktuellen öffentlichen IPv4-Adresse aktuell hält.
|
||||||
|
|
||||||
|
Details siehe [SPEC.md](SPEC.md) (Architektur/Design) und [PLAN.md](PLAN.md)
|
||||||
|
(Umsetzungs-Tasks).
|
||||||
|
|
||||||
|
## Kurzüberblick
|
||||||
|
|
||||||
|
- IP wird ausschließlich über die FritzBox TR-064-Schnittstelle ermittelt (nicht aus
|
||||||
|
Webhook-Parametern übernommen)
|
||||||
|
- Trigger: Container-Start, `GET /webhook/update` (kein Auth, rein intern),
|
||||||
|
Fallback-Polling alle 15 Minuten
|
||||||
|
- DNS-Update (Cloudflare + FreeDNS) nur bei tatsächlicher IP-Änderung
|
||||||
|
- Healthcheck-Heartbeat bei jedem Poll-Zyklus, unabhängig von einer IP-Änderung
|
||||||
|
|
||||||
|
## Quickstart
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
vim .env # Werte eintragen
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
Wird automatisch per GitHub Actions nach `ghcr.io/skoelle/dyndns-updater` gebaut
|
||||||
|
(siehe `.github/workflows/build-and-push.yml`).
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
flask==3.0.3
|
||||||
|
requests==2.32.3
|
||||||
|
fritzconnection==1.14.0
|
||||||
|
APScheduler==3.10.4
|
||||||
Reference in New Issue
Block a user