AdGuardHome Sync

Synchronize config from one AdGuardHome instance to another.

Current sync features

  • General Settings
  • Filters
  • Rewrites
  • Services
  • Clients
  • DNS Config
  • DHCP Config

By default, all features are enabled. Single features can be disabled in the config.


go install


adguardhome-sync [command]


Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  run         Start a synchronisation from origin to replica

      --config string   config file (default is $HOME/.adguardhome-sync.yaml)
  -h, --help            help for adguardhome-sync
  -t, --toggle          Help message for toggle
  -v, --version         version for adguardhome-sync

Use "adguardhome-sync [command] --help" for more information about a command.


Simple configuration to synchronize two AdGuardHome instances. This configuration uses a NGINX reverse proxy for the frontend, therefor a simple change in the /etc/hosts file is needed.

Configuration file location: $HOME/.adguardhome-sync.yaml

# cron expression to run in daemon mode. (default; "" = runs only once)
cron: "0 * * * *"

# runs the synchronisation on startup
runOnStart: true

  # url of the origin instance
  # apiPath: define an api path if other than "/control"
  insecureSkipVerify: true # disable tls check
  username: adguard
  password: MyStrongPassword

# replica instance (optional, if only one)
  # url of the replica instance
  username: adguard
  password: MyStrongPassword
$ cat /etc/hosts localhost ns2 # == NGINX proxy # == NGINX proxy

URL List