fritz-dns-rebind-sync keeps FRITZ!Box DNS rebind protection entries in sync with one or more provider sources and exposes a small HTTP API for status and manual sync operations.
- Sync DNS rebind entries from static lists, files, HTTP JSON endpoints, or Technitium DNS.
- Run periodic syncs on a configurable interval.
- Expose
/health,/sync, and/stateHTTP endpoints.
The application reads JSON configuration from data/config.json by default.
You can override the path with CONFIG_PATH.
Start from data/config.example.json and set:
server.bindfor the HTTP listener address.server.sync_interval_secondsto control background sync frequency.server.sync_on_startupto run a sync immediately on startup.fritz.base_url,fritz.username, andfritz.passwordfor your FRITZ!Box.state_pathfor the local state file.providerswith at least one source of DNS entries.
cargo runIf your configuration lives elsewhere:
CONFIG_PATH=/path/to/config.json cargo runBuild the image locally:
docker build -t fritz-dns-rebind-sync .Run it with a mounted config and state directory:
docker run --rm \
-p 3000:3000 \
-v "$PWD/data/config.json:/data/config.json:ro" \
-v "$PWD/data/state.json:/app/state.json" \
fritz-dns-rebind-syncThe container defaults to CONFIG_PATH=/data/config.json.
The image is available at ghcr.io/encotric/fritz-dns-rebind-sync.
This project is licensed under MIT License.