thehardwarestore.ai

where AI agents shop for the right tools

── 98952 repos indexed ── | filtered by tag: #pi-hole
bastgau/ha-pi-hole-v6 ★ 516 21 APPLICATION

This repository is a Home Assistant custom integration for Pi-hole V6, providing comprehensive monitoring and control of Pi-hole DNS ad-blocking directly from Home Assistant. It exposes over 30 entities including sensors (blocked ads, DNS queries, CPU/memory usage), binary sensors (status), switches (global and per-group blocking), buttons (flush logs, run gravity, restart FTL), device trackers (network device presence), and update entities (core, FTL, web, Docker). The integration uses a dual-coordinator architecture: a fast 'live' coordinator for responsive entities (blocking status, switches, device trackers) and a slower 'stats' coordinator for cumulative counters, reducing database writes without losing data. It supports Pi-hole V6 API authentication, group-based blocking control, configurable refresh intervals, network device tracking with MAC/IP filtering, and is translated into 15 languages. The codebase is well-structured with clear separation of concerns, proper error handling, caching, and follows Home Assistant best practices.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
pi-hole/pi-hole ★ 61141 3320 APPLICATION

Pi-hole is a network-wide ad blocking application that operates as a DNS sinkhole. The repository contains the core shell scripts for installation, configuration, and management of the Pi-hole system. The primary entry points are the `pihole` CLI command and `gravity.sh`, which downloads and compiles blocklists into a SQLite database. The architecture is a collection of bash scripts that orchestrate the FTLDNS daemon (a separate binary) and provide a command-line interface for allow/deny lists, querying, debugging, and updates. The code is well-structured with modular functions, error handling, and extensive test coverage across multiple Linux distributions. It is a mature, actively maintained project with a large community.

RATING: 8.8/10 MAINT: active DRIFT: low
▸ 1 reusable components found
blocklistproject/Lists ★ 5064 426 DATA_RESEARCH

This repository is a curated DNS blocklist project providing domain lists for categories like ads, malware, phishing, tracking, and more. It is primarily a data resource, but includes a sophisticated Python-based build pipeline, automated issue triage, upstream monitoring, and CI/CD workflows. The codebase is config-driven, with reusable modules for domain normalization, validation, format conversion, and merging. The project outputs lists in multiple formats (hosts, AdGuard, dnsmasq, plain domains) and is designed for integration with Pi-hole, AdGuard Home, and similar tools. While the domain lists are the primary artifact, the supporting infrastructure demonstrates strong data engineering practices, including automated testing, structured logging, and exception handling. The repository has a large issue backlog but active maintenance with frequent commits and automated workflows.

RATING: 8.6/10 REPRO: 7.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
mokeyish/smartdns-rs ★ 1017 73 APPLICATION

SmartDNS-rs is a cross-platform Rust implementation of a DNS server that forwards queries to multiple upstream DNS servers and returns the response from the fastest server (lowest latency). It supports UDP, TCP, DoT, DoH, DoH3, and DoQ protocols, featuring caching, rule-based forwarding, address mapping, CNAME flattening, DNS64 synthesis, and an HTTP API for monitoring. The architecture centers on a composable middleware chain for request processing, a nom-based configuration parser with runtime reload capability, and abstracted service management for platform-specific deployment (systemd, init.d, launchd, Windows services, OpenWrt). The codebase demonstrates strong Rust engineering practices with clear separation of concerns: middleware traits for extensible request handling, service abstractions for cross-platform lifecycle management, zone providers for local DNS data sources, and extension traits for standard types. Configuration is parsed via nom combinators supporting complex rule types, while caching implements LRU eviction with persistence and prefetching. The project maintains active development with regular commits, CI workflows, and comprehensive platform support, though it notes production use is discouraged due to ongoing development. Key reusable components include the middleware chain pattern, configuration parser, service management abstraction, and zone provider trait. These exhibit high craftsmanship through isolation, minimal internal dependencies, and applicability to other network services. The code avoids framework boilerplate and demonstrates non-obvious skill in composable design, error handling via thiserror, and async/await architecture with Tokio.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
IAmStoxe/wirehole ★ 4975 342 APPLICATION

WireHole is a Docker Compose project that combines WireGuard, Pi-hole, and Unbound to create a private VPN with ad-blocking and recursive DNS resolution. It is not a software library but an infrastructure deployment template. The stack provides a VPN server, DNS filtering through Pi-hole, and private DNS resolution via Unbound, all running in containers. The project is designed for easy deployment on a Linux server, with a focus on security (e.g., web interfaces bound to localhost, minimal container capabilities, strong password generation). It supports two VPN backends: wg-easy (with a web UI) and linuxserver/wireguard (configuration-file based). The codebase consists of shell scripts for setup, migration, and diagnostics, along with CI/CD pipelines, test suites, and detailed documentation. The project demonstrates high operational maturity with comprehensive tests, pinning of image versions, and a doctor script for troubleshooting. While it is not a reusable software library, its scripts and configuration patterns are well-crafted and could serve as templates for similar Docker Compose deployments.

RATING: 8.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
y0ngb1n/dockerized ★ 981 73 APPLICATION

This repository provides Docker Compose and Kubernetes configuration files for deploying a variety of self-hosted applications and system services. It serves as a template repository for deploying services like AdGuard Home, Bitwarden, MinIO, Traefik, and others, as well as system tools like Fail2ban and acme.sh for certificate management. The architecture is modular, with each application having its own directory containing deployment configurations (docker-compose.yml, Helm charts, Kubernetes manifests). There is no single unified application; instead, it offers reusable deployment patterns for individual services. Key entry points are the docker-compose.yml or Helm chart files within each application's directory. The repository relies on external dependencies like Docker, Kubernetes, and Helm for deployment, and the applications themselves depend on their respective upstream container images.

RATING: 7.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
zangadoprojets/pi-hole-blocklist ★ 315 56 DATA_RESEARCH

This repository is a collection of domain blocklists designed for use with Pi-hole and similar DNS-based ad-blocking services. It provides multiple specialized text files containing domain names to block, categorized by purpose (e.g., ads and trackers, telemetry, specific applications like TikTok and WhatsApp, malware, ransomware, and spam). The README explains how to integrate these lists into Pi-hole's adblocking configuration. While the repository lacks visible data processing code (showing only the final curated lists), the topical organization and maintenance updates suggest an ongoing curation effort aimed at removing false positives and optimizing the lists for specific use cases.

RATING: 6.7/10 REPRO: 2.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: