{"adoption": {"forks": 51, "observed_at": "2026-08-28T04:05:35.273012+00:00", "stars": 1779}, "canonical_url": "https://ross.abutalabs.com/products/adguardhome-sync", "card": {"archived": false, "artifact_type": "cli-tool", "description": "🛡️ Synchronize AdGuard Home config to replicas", "domain": ["networking", "self-hosted", "privacy"], "enriched": true, "function": ["configuration-management", "deployment", "cli", "http-client", "scheduling"], "health_score": 99, "homepage": null, "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["bakito/adguardhome-sync"], "name": "bakito/adguardhome-sync", "platform": ["windows", "go", "cli", "self-hosted"], "pushed_at": "2026-08-24T05:49:29+00:00", "repo": "bakito/adguardhome-sync", "stars": 1779, "tags": ["adguard-home", "dns", "ad-blocking", "config-sync", "replication", "ha-setup", "devops", "automation", "linux", "macos", "docker"], "topics": ["adguardhome", "sync", "replication"], "urls": [], "use_cases": ["keep multiple adguard home instances in sync", "set up redundant dns filtering with adguard home replicas", "replicate adguard home filters and rewrites to a second server", "automatically configure new adguard home instances", "run adguard home high availability across my network", "sync adguard home config on a schedule"], "what_it_is": "A Go tool that synchronizes AdGuard Home configuration from an origin instance to one or more replica instances. It supports scheduled syncs via cron, automatic setup of new replicas, and selective syncing of filters, rewrites, clients, DNS, and DHCP settings.", "when_to_avoid": ["you use Pi-hole or another DNS solution instead of AdGuard Home", "you only have a single AdGuard Home instance", "you need bidirectional sync with conflict resolution rather than origin-to-replica push"], "when_to_choose": ["you run AdGuard Home on multiple machines and want identical configs", "you need scheduled, automated replication of filters, rewrites, and client settings", "you want automatic setup of fresh replica instances"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/adguardhome-sync", "repo": "bakito/adguardhome-sync", "role": "main", "score": 96}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.273012+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:24:38.713916+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fc1214b867b1b1b139139324125d79a6e206e5c03b9ee6af94c0c8cfef927f84", "fetched_at": "2026-08-28T04:05:35.273012+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bakito/adguardhome-sync"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 90}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1985, "days_push": 9, "days_rel": 70, "gap_med": 11.5, "n_releases_24m": 21}, "score": 96, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}