Hi all,
I've packaged AdGuard Home for pfSense as a community package: pfSense-pkg-adguardhome (v1.1.2).
Repo: https://github.com/tmiland/pfsense-adguardhome
Design philosophy: adopt-first, not a config manager
The package wraps AdGuard Home rather than replacing it:
Existing install? It gets adopted: the package registers the pfSense service + menu, ensures boot persistence and adds the UI. A running AdGuard Home is never stopped, restarted or reconfigured, and AdGuardHome.yaml is never written — all DNS and filtering config (blocklists, clients, TLS, …) stays in AdGuard Home's own web UI, exactly as upstream intends.
Fresh system? The bundled, checksum-verified official release tarball is extracted to /opt/AdGuardHome and started once; AdGuard Home's own first-run wizard finishes setup at http://<firewall>:3000.
Because the package never touches the binary or config, it stays compatible with AdGuard Home's self-updater — upgrade AGH from its own UI anytime.
Features
Auto-install of AdGuard Home (bundled release, sha256-verified against AdGuard's published checksums)
Native integration: Services → AdGuard Home menu, service control under Status → Services (start/stop/restart), boot persistence via AdGuardHome_enable=YES (coexists safely with existing shellcmd boot entries)
Status page: service state, running vs latest version (update notice), 24h stats (queries, blocked count/share, avg response), top queried/blocked domains, top clients, recent query log with blocked rows highlighted, 60s auto-refresh
Dashboard widget: the same numbers as a small tile on the pfSense dashboard
Status monitor (own supervised service, checks every 5 min): pfSense notifications (email/Telegram — your System → Advanced → Notifications channels) when the service is down or protection is disabled; hourly reminders + recovery notice when it clears; toggle in the package settings
Theme-safe UI (works with light/dark themes, incl. prefers-color-scheme setups)
Install
CLI only — the GUI "Available Packages" tab is pinned to the official repo:
mkdir -p /usr/local/etc/pkg/repos
cat > /usr/local/etc/pkg/repos/pfsense-adguardhome.conf <<'EOF'
pfsense-adguardhome: {
url: "https://tmiland.github.io/pfsense-adguardhome/repo",
mirror_type: "none",
signature_type: "none",
enabled: yes
}
EOF
pkg update
pkg install -y -r pfsense-adguardhome pfSense-pkg-adguardhome
Then open Services → AdGuard Home. To see statistics, enter your AdGuard Home admin username/password in the package Settings (masked, stored in the pfSense config, used only to read the local API).
Uninstall
Removes only the menu/service registration and UI pages — /opt/AdGuardHome, its config and the running service stay untouched.
Requirements / notes
Built and running in production on pfSense 2.8 (FreeBSD 15, amd64) with AdGuard Home v0.107.79 — the package is ABI-specific; rebuild via pkg/build.sh for other pfSense/FreeBSD versions
AutoConfigBackup users: the config (including the API credentials) syncs off-box
Not affiliated with Netgate or AdGuard — AdGuard Home upstream: https://github.com/AdguardTeam/AdGuardHome
Feedback and issue reports welcome on GitHub. https://github.com/tmiland/pfsense-adguardhome