{"id":15148362,"url":"https://github.com/fabioassuncao/wirehole","last_synced_at":"2025-04-07T02:47:33.561Z","repository":{"id":213792956,"uuid":"734941676","full_name":"fabioassuncao/wirehole","owner":"fabioassuncao","description":"WireHole is a docker-compose project that combines WireGuard, Pi-Hole, and Unbound to facilitate the deployment and management of a full or split-tunnel VPN. This setup not only provides a VPN with ad-blocking via Pi-Hole but also enhances DNS privacy and caching through Unbound.","archived":false,"fork":false,"pushed_at":"2023-12-27T22:36:43.000Z","size":249,"stargazers_count":4,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-13T07:48:07.895Z","etag":null,"topics":["adblocker","dns","docker","homelab","pi-hole","vpn","wireguard"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fabioassuncao.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-23T05:14:48.000Z","updated_at":"2025-01-25T17:05:37.000Z","dependencies_parsed_at":"2023-12-23T06:50:33.076Z","dependency_job_id":"95602f3d-04f1-4824-80ca-fe8e786c0015","html_url":"https://github.com/fabioassuncao/wirehole","commit_stats":{"total_commits":5,"total_committers":1,"mean_commits":5.0,"dds":0.0,"last_synced_commit":"2435fc26b72320ffe96a44cfc726775f111c097b"},"previous_names":["fabioassuncao/wirehole"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabioassuncao%2Fwirehole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabioassuncao%2Fwirehole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabioassuncao%2Fwirehole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fabioassuncao%2Fwirehole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fabioassuncao","download_url":"https://codeload.github.com/fabioassuncao/wirehole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247584061,"owners_count":20962071,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["adblocker","dns","docker","homelab","pi-hole","vpn","wireguard"],"created_at":"2024-09-26T13:03:20.107Z","updated_at":"2025-04-07T02:47:33.546Z","avatar_url":"https://github.com/fabioassuncao.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# WireHole VPN/DNS\n\nWireHole is a docker-compose project that combines WireGuard, Pi-Hole, and Unbound to facilitate the deployment and management of a full or split-tunnel VPN. This setup not only provides a VPN with ad-blocking via Pi-Hole but also enhances DNS privacy and caching through Unbound.\n\n![image](assets/images/schema.png)\n\n## Quickstart\n\nBefore you begin, ensure that Docker is installed on your system.\nTo get started with WireHole, follow these steps:\n\n```bash\n#!/bin/bash\n\n# WireHole Setup Script\n\n# Clone the WireHole repository from GitHub\ngit clone https://github.com/fabioassuncao/wirehole.git\n\n# Change directory to the cloned repository\ncd wirehole\n\n# Update the .env file with your configuration\ncp .env.example .env\nnano .env  # Or use any text editor of your choice to edit the .env file\n\n# Replace the public IP placeholder in the .env\nsed -i \"s/REPLACE_ME_WITH_YOUR_PUBLIC_IP/$(curl -s ifconfig.me)/g\" .env\n\n# Start the Docker containers\ndocker compose up\n```\n\nRemember to set secure passwords for  `WG_PASSWORD`, and `PIHOLE_PASSWORD` in your `.env` file.\n\n\n## Configuration\n\nThe `.env` file contains a set of environment variables crucial for configuring the WireHole services within the Docker containers. Below is a detailed explanation of each variable:\n\n### General Settings\n\nUpdate the `.env` file.\n\n- `WG_HOST` is your public ip or domain.\n- `WG_PASSWORD` is wireguard UI password.\n- `PIHOLE_PASSWORD` pihole UI password.\n\n### WireGuard Settings\n\n- After the `docker compose up` or deploy, open your browser and go to \u003chttp://YOUR_PUBLIC_IP:51821/\u003e\n- Login with your password, which is in the `.env`\n- Create new connection keys/QR codes...\n\n![image](assets/images/screenshot.png)\n\n### Pi-hole Settings\n\n- Connect to VPN with created client QR code or conf file and then go to this address on your browser \u003chttp://10.2.0.100/admin\u003e\n- Login with your password, which is in the `.env`\n\n### Recommended Configuration / Split Tunnel\n\nFor a split-tunnel VPN, configure your WireGuard client `AllowedIps` to `10.3.0.0/24`, which will route only the web panel and DNS traffic through the VPN.\n\n\n###### Acknowledgements\n\nCredit to LinuxServer.io for their maintenance of the Wireguard image and other contributions to the project.\n\n## Contributing\n\n1. Fork this repository!\n2. Create your feature from the **develop** branch: git checkout -b feature/my-new-feature\n3. Write and comment your code\n4. Commit your changes: `git commit -am 'Add some feature'`\n5. Push the branch: `git push origin feature/my-new-feature`\n6. Make a pull request to the branch **develop**\n\n## Credits\n\n* [Fábio Assunção](https://github.com/fabioassuncao)\n* [All Contributors](../../contributors)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabioassuncao%2Fwirehole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffabioassuncao%2Fwirehole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffabioassuncao%2Fwirehole/lists"}