🛡️ Synchronize AdGuard Home config to replicas
Go to file
2021-03-31 02:28:18 +02:00
.github prepare release 2021-03-28 16:44:39 +02:00
cmd add API server to trigger sync remotely 2021-03-29 08:43:18 +02:00
pkg synch toggles 2021-03-31 02:28:18 +02:00
systemd add systemd script 2021-03-28 20:25:25 +02:00
version use external semver 2021-03-28 19:31:11 +02:00
.gitignore add API server to trigger sync remotely 2021-03-29 08:43:18 +02:00
.goreleaser.yml prepare release 2021-03-28 16:44:39 +02:00
go.mod add API server to trigger sync remotely 2021-03-29 08:43:18 +02:00
go.sum add API server to trigger sync remotely 2021-03-29 08:43:18 +02:00
LICENSE Create LICENSE 2021-03-28 10:23:34 +02:00
main.go use cobra/viper 2021-03-28 14:09:31 +02:00
Makefile use external semver 2021-03-28 19:31:11 +02:00
README.md synch toggles 2021-03-31 02:28:18 +02:00

Go Go Report Card

AdGuardHome sync

Synchronize AdGuardHome config to a replica instance.

Current sync features

  • General Settings
  • Filters
  • Rewrites
  • Services
  • Clients

Install

go get -u github.com/bakito/adguardhome-sync

Run


export ORIGIN_URL=https://192.168.1.2:3000
export ORIGIN_USERNAME=username
export ORIGIN_PASSWORD=password
export REPLICA_URL=http://192.168.1.3
export REPLICA_USERNAME=username
export REPLICA_PASSWORD=password

# run once
adguardhome-sync run

# run as daemon
adguardhome-sync run --cron "*/10 * * * *"

Config file

location: $HOME/.adguardhome-sync.yaml

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

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

# replica instance (optional, if only one)
replica:
  # url of the replica instance
  url: http://192.168.1.3
  username: username
  password: password

# replicas instances (optional, if more than one)
replicas:
  # url of the replica instance
  - url: http://192.168.1.3
    username: username
    password: password
  - url: http://192.168.1.4
    username: username
    password: password

# Configure the sync API server, disabled if api port is 0
api:
  # Port, default 8080
  port: 8080
  # if username and password are defined, basic auth is applied to the sync API 
  username: username
  password: password