Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fritz-dns-rebind-sync

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.

Features

  • 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 /state HTTP endpoints.

Configuration

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.bind for the HTTP listener address.
  • server.sync_interval_seconds to control background sync frequency.
  • server.sync_on_startup to run a sync immediately on startup.
  • fritz.base_url, fritz.username, and fritz.password for your FRITZ!Box.
  • state_path for the local state file.
  • providers with at least one source of DNS entries.

Run Locally

cargo run

If your configuration lives elsewhere:

CONFIG_PATH=/path/to/config.json cargo run

Docker

Build 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-sync

The container defaults to CONFIG_PATH=/data/config.json.

GitHub Container Registry

The image is available at ghcr.io/encotric/fritz-dns-rebind-sync.

License

This project is licensed under MIT License.

About

A services synchronising exceptions for the FRITZ!Box DNS rebind protection from various sources, e.g., Technitium

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages