iamstoxe/wirehole

WireHole is a combination of WireGuard, Pi-hole, and Unbound in a docker-compose project with the intent of enabling users to quickly and easily create a...

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 55 minutes ago
Added to GitGenius on September 13th, 2026
Created on September 3rd, 2020
Open Issues & Pull Requests: 62 (+0)
GitHub issues: Enabled
Number of forks: 343
Total Stargazers: 4,967 (+0)
Total Subscribers: 67 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 7.4 days
Mean response time: 158.9 days
90th percentile: 550.5 days
Tracked items: 4

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 7
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 684 days
Stale 30+ days: 7
Stale 90+ days: 7

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

WireHole is a docker-compose project that combines WireGuard, Pi-hole, and Unbound to create a personally managed VPN with integrated ad blocking and private DNS resolution.

The tool solves the problem of deploying a private VPN with DNS-level filtering and privacy. It works by routing device traffic through your own server running WireGuard, where Pi-hole blocks advertisement and tracker domains before passing remaining DNS queries to Unbound. Unbound then queries authoritative name servers directly rather than relying on public DNS providers, and validates responses using DNSSEC. This approach gives you control over your own infrastructure while filtering ads and improving DNS privacy across all connected devices.

WireHole suits anyone who wants to run their own VPN infrastructure without relying on third-party VPN providers. It works well for users with a Linux server available, whether that is a Raspberry Pi, home server, or rented hosting. The project supports both full-tunnel and split-tunnel configurations, allowing flexibility in how traffic is routed. The setup requires a dedicated Linux machine as the server; Docker Desktop on Mac or Windows cannot host it due to kernel requirements, and WSL2 on Windows does not work as a production server because it cannot expose UDP ports to other devices. The README does not compare WireHole to alternative VPN or DNS solutions.

The project underwent a significant rewrite that changed its internal layout, requiring users upgrading from older versions to follow a migration script rather than simply restarting. The documentation provides structured guidance organized into setup, configuration, and operational sections, with a quick-start path for new users and reference material for later customization. The tool includes testing capabilities to verify that all components work correctly and provides troubleshooting guidance for common issues.