{"id":25452624,"url":"https://github.com/patricktulskie/dockerhole","last_synced_at":"2026-02-20T18:03:49.348Z","repository":{"id":277886651,"uuid":"932504845","full_name":"PatrickTulskie/dockerhole","owner":"PatrickTulskie","description":"A Docker setup for running Pi-hole with DNS-over-HTTPS via cloudflared, featuring persistent storage and easy configuration","archived":false,"fork":false,"pushed_at":"2025-02-14T02:43:14.000Z","size":3,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-16T19:44:32.223Z","etag":null,"topics":["cloudflared","dns","dns-over-https","docker","pihole","privacy"],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PatrickTulskie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2025-02-14T02:42:52.000Z","updated_at":"2025-02-14T17:22:23.000Z","dependencies_parsed_at":"2025-02-16T19:44:34.364Z","dependency_job_id":"6bb1d782-e7a3-4ac3-8a79-2030e496ee49","html_url":"https://github.com/PatrickTulskie/dockerhole","commit_stats":null,"previous_names":["patricktulskie/dockerhole"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickTulskie%2Fdockerhole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickTulskie%2Fdockerhole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickTulskie%2Fdockerhole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PatrickTulskie%2Fdockerhole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PatrickTulskie","download_url":"https://codeload.github.com/PatrickTulskie/dockerhole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239384781,"owners_count":19629509,"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":["cloudflared","dns","dns-over-https","docker","pihole","privacy"],"created_at":"2025-02-17T23:40:54.901Z","updated_at":"2025-11-02T06:30:33.313Z","avatar_url":"https://github.com/PatrickTulskie.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Dockerhole - Pi-hole in Docker\n\nA simple Docker setup for running Pi-hole locally with persistent storage and DNS-over-HTTPS support via cloudflared.\n\n## Setup\n\n1. Clone this repository\n2. Copy the sample environment file:\n   ```bash\n   cp sample.env .env\n   ```\n3. Edit the `.env` file and update the following values:\n   - `TZ`: Your timezone (e.g., America/Chicago, Europe/London)\n   - `WEBPASSWORD`: Choose a secure password for the Pi-hole web interface\n   - `DNS_TCP_PORT`/`DNS_UDP_PORT`: Change if port 5335 is already in use\n   - `WEB_PORT`: Change if port 8080 is already in use\n\n4. Start Pi-hole and cloudflared:\n   ```bash\n   docker-compose up -d\n   ```\n\n## Usage\n\n- Access the Pi-hole web interface at `http://localhost:8080/admin` (or your configured port)\n- To use Pi-hole as your DNS server:\n  - For individual device: Set DNS server to your machine's IP address and port 5335\n  - For testing: Use `nslookup example.com localhost:5335`\n\n### Setting Up System-wide DNS\n\n#### macOS\nYou can configure DNS settings in two ways:\n\n1. Using System Settings (GUI):\n   - Open System Settings \u003e Network\n   - Select your active network connection (e.g., Wi-Fi or Ethernet)\n   - Click \"Details...\"\n   - Go to the \"DNS\" tab\n   - Click \"+\" to add a DNS server\n   - Add `127.0.0.1:5335`\n   - Click \"OK\" to save\n\n2. Using Terminal (for specific interfaces):\n   ```bash\n   # List all network services/interfaces\n   networksetup -listallnetworkservices\n   \n   # Set DNS for Wi-Fi\n   sudo networksetup -setdnsservers \"Wi-Fi\" 127.0.0.1:5335\n   \n   # Set DNS for Ethernet\n   sudo networksetup -setdnsservers \"Ethernet\" 127.0.0.1:5335\n   ```\n\nAfter changing DNS settings, flush the DNS cache:\n```bash\nsudo killall -HUP mDNSResponder\n```\n\n#### Linux (Network Manager)\n1. Create a NetworkManager DNS configuration:\n   ```bash\n   sudo nano /etc/NetworkManager/conf.d/dns-servers.conf\n   ```\n   Add these lines:\n   ```ini\n   [global-dns-domain-*]\n   servers=127.0.0.1:5335\n   ```\n\n2. Edit your connection to use this configuration:\n   ```bash\n   sudo nmcli connection modify YOUR_CONNECTION ipv4.ignore-auto-dns yes\n   ```\n\n3. Restart NetworkManager:\n   ```bash\n   sudo systemctl restart NetworkManager\n   ```\n\nReplace YOUR_CONNECTION with your connection name (find it using `nmcli connection show`)\n\n#### Linux (systemd-resolved)\n1. Edit /etc/systemd/resolved.conf:\n   ```ini\n   [Resolve]\n   DNS=127.0.0.1:5335\n   DNSStubListener=no\n   ```\n2. Restart systemd-resolved:\n   ```bash\n   sudo systemctl restart systemd-resolved\n   ```\n\n## Features\n\n### DNS-over-HTTPS\nThe setup includes cloudflared as a DNS-over-HTTPS proxy, which automatically forwards DNS queries to Cloudflare's secure DNS servers (1.1.1.1 and 1.0.0.1). This provides:\n- Encrypted DNS queries\n- Protection against DNS spoofing\n- Better privacy for your DNS queries\n\n## Data Persistence\n\nAll Pi-hole configuration and data are stored in the `pihole-data` directory:\n- `etc-pihole/`: Contains Pi-hole configuration files\n- `etc-dnsmasq.d/`: Contains DNS configuration files\n\n## Stopping Pi-hole\n\nTo stop all containers:\n```bash\ndocker-compose down","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatricktulskie%2Fdockerhole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatricktulskie%2Fdockerhole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatricktulskie%2Fdockerhole/lists"}