{"id":13587719,"url":"https://github.com/klutchell/balena-pihole","last_synced_at":"2025-05-16T00:07:38.049Z","repository":{"id":34484208,"uuid":"115736320","full_name":"klutchell/balena-pihole","owner":"klutchell","description":"Pi-hole is a Linux network-level advertisement and Internet tracker blocking application.","archived":false,"fork":false,"pushed_at":"2025-05-05T23:36:24.000Z","size":718,"stargazers_count":304,"open_issues_count":5,"forks_count":101,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-10T04:43:24.317Z","etag":null,"topics":["balena-pihole","balenacloud","padd","pi-hole"],"latest_commit_sha":null,"homepage":"https://pi-hole.net","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/klutchell.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,"zenodo":null}},"created_at":"2017-12-29T16:11:18.000Z","updated_at":"2025-05-05T23:36:28.000Z","dependencies_parsed_at":"2024-01-29T02:46:09.548Z","dependency_job_id":"8d740096-8bdc-47e1-825d-7265f4408c2d","html_url":"https://github.com/klutchell/balena-pihole","commit_stats":{"total_commits":533,"total_committers":16,"mean_commits":33.3125,"dds":0.3414634146341463,"last_synced_commit":"be18398afd89b37fbbdc3841da06a9670fae2dc8"},"previous_names":[],"tags_count":211,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klutchell%2Fbalena-pihole","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klutchell%2Fbalena-pihole/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klutchell%2Fbalena-pihole/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/klutchell%2Fbalena-pihole/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/klutchell","download_url":"https://codeload.github.com/klutchell/balena-pihole/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442854,"owners_count":22071878,"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":["balena-pihole","balenacloud","padd","pi-hole"],"created_at":"2024-08-01T15:06:19.889Z","updated_at":"2025-05-16T00:07:33.039Z","avatar_url":"https://github.com/klutchell.png","language":"Dockerfile","funding_links":[],"categories":["Shell"],"sub_categories":[],"readme":"# balena-pihole\n\nIf you're looking for a way to quickly and easily get up and running with a\n[Pi-hole](https://pi-hole.net/) device for your home network, this is the\nproject for you.\n\nThis project is a [balenaCloud](https://www.balena.io/cloud) stack with the\nfollowing services:\n\n- [Pi-hole](https://pi-hole.net/)\n- [PADD](https://github.com/pi-hole/PADD)\n- [Unbound](https://unbound.net)\n\nbalenaCloud is a free service to remotely manage and update your Raspberry Pi\nthrough an online dashboard interface, as well as providing remote access to the\nPi-hole web interface without any additional configuration.\n\n## Hardware required\n\n- Raspberry Pi 2/3/4 (Note: this project will not work with the Pi Zero),\n  balenaFin, or NanoPi Neo Air\n- 16GB Micro-SD Card (we recommend Sandisk Extreme Pro SD cards)\n- Display (any Raspberry Pi display will work for this project)\n- Micro-USB cable\n- Power supply\n- Case (optional)\n\n## Getting Started\n\nYou can one-click-deploy this project to balena using the button below:\n\n[![deploy button](https://balena.io/deploy.svg)](https://dashboard.balena-cloud.com/deploy?repoUrl=https://github.com/klutchell/balena-pihole\u0026defaultDeviceType=raspberrypi3)\n\n## Manual Deployment\n\nAlternatively, deployment can be carried out by manually creating a\n[balenaCloud account](https://dashboard.balena-cloud.com) and application,\nflashing a device, downloading the project and pushing it via the\n[balena CLI](https://github.com/balena-io/balena-cli).\n\n### Device Variables\n\nDevice Variables apply to all services within the application, and can be\napplied fleet-wide to apply to multiple devices. If you used the\none-click-deploy method, the default environment variables will already be added\nfor you to customize as needed.\n\n| Name                             | Default           | Purpose                                                                                                                                                            |\n| -------------------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |\n| `TZ`                             | `UTC`             | The timezone in your location. Find a [list of all timezone values here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).                            |\n| `FTLCONF_webserver_api_password` | `balena`          | Password for accessing the web-based interface of Pi-hole - you won’t be able to access the admin panel without defining a password here.                          |\n| `FTLCONF_dns_upstreams`          | `1.1.1.1;1.0.0.1` | Tell Pi-hole where to forward DNS requests that aren’t blocked. We’re using Cloudflare by default but you can specify your own using IPs delimited by semi-colons. |\n| `SET_HOSTNAME`                   | `pihole`          | Set a custom device hostname on application start.                                                                                                                 |\n\nAdditional supported environment variables can be found\n[here](https://github.com/pi-hole/docker-pi-hole#environment-variables).\n\n## Usage\n\n### Pi-hole\n\nCheck out our blog post on how to deploy network-wide ad-blocking with Pi-hole:\n\n\u003chttps://www.balena.io/blog/deploy-network-wide-ad-blocking-with-pi-hole-and-a-raspberry-pi/\u003e\n\nOnce your device joins the fleet you'll need to allow some time for it to\ndownload the application and download blocklists.\n\nWhen it's done you should be able to access the access the app at\n\u003chttp://pihole.local\u003e with a default password of `balena`.\n\nOn your router or DHCP server assign a static IP reservation (if possible) to\nyour Pi-hole device, and set your clients DNS to the same IP address.\n\nDocumentation for Pi-hole can be found at \u003chttps://docs.pi-hole.net/\u003e\n\n### PADD\n\nNote that this project uses the\n[fbcp block](https://github.com/balenablocks/fbcp).\n\nThe PiTFT LCD screens\n[from Adafruit (and others)](https://www.adafruit.com/?q=pitft) are supported.\n\nIn order to use these displays you're required to add additional configuration\nby setting the `FBCP_DISPLAY` variable within the dashboard. This variable\nshould be set to one of the values below:\n\n- `adafruit-hx8357d-pitft`\n- `adafruit-ili9341-pitft`\n- `freeplaytech-waveshare32b`\n- `waveshare35b-ili9486`\n- `tontec-mz61581`\n- `waveshare-st7789vw-hat`\n- `waveshare-st7735s-hat`\n- `kedei-v63-mpi3501`\n- `dtoverlay` (requires `BALENA_HOST_CONFIG_dtoverlay` to be set)\n\n#### Configuring HDMI and TFT display sizes\n\nThe following\n[Device Configuration](https://www.balena.io/docs/learn/manage/configuration/#configuration-variables)\nvariables might be required for proper scaling and resolutions:\n\n| Name                                  | Value              |\n| ------------------------------------- | ------------------ |\n| BALENA_HOST_CONFIG_hdmi_cvt           | 480 320 60 1 0 0 0 |\n| BALENA_HOST_CONFIG_hdmi_force_hotplug | 1                  |\n| BALENA_HOST_CONFIG_hdmi_group         | 2                  |\n| BALENA_HOST_CONFIG_hdmi_mode          | 87                 |\n| BALENA_HOST_CONFIG_rotate_screen      | 1                  |\n\n#### FONTFACE and FONTSIZE\n\nUse the environment variables `FONTFACE` and `FONTSIZE` to control the PADD text\nsize on your display.\n\nValid font faces are:\n\n- VGA (sizes 8x8, 8x14, 8x16, 16x28 and 16x32)\n- Terminus (sizes 6x12, 8x14, 8x16, 10x20, 12x24, 14x28 and 16x32)\n- TerminusBold (sizes 8x14, 8x16, 10x20, 12x24, 14x28 and 16x32)\n- TerminusBoldVGA (sizes 8x14 and 8x16)\n- Fixed (sizes 8x13, 8x14, 8x15, 8x16 and 8x18)\n\nFrom:\n\u003chttps://manpages.debian.org/bullseye/console-setup/console-setup.5.en.html\u003e\n\n### Unbound\n\nThis project includes an Unbound service providing recursive DNS, but it is not\nused by default.\n\nRead more about the reasons for using a recursive DNS with Pi-hole here:\n\n\u003chttps://docs.pi-hole.net/guides/unbound/\u003e\n\nSet the following environment variable in your balenaCloud Dashboard to tell\nPi-hole to forward DNS requests that aren’t blocked to the local Unbound DNS\nresolver service.\n\n- `FTLCONF_dns_upstreams`: `127.0.0.1#5053;127.0.0.1#5053`\n\n**Note:** For security and footprint reasons, the Unbound container does not\nallow shell or terminal access via SSH or the balenaCloud console.\n\nAdvanced users can change the Unbound configuration by editing\n[`unbound.conf`](./unbound/etc/unbound/unbound.conf) or\n[`a-records.conf`](./unbound/etc/unbound/custom.conf.d/a-records.conf) before\npushing the app to balenaCloud.\n\n### Tailscale\n\nIncluded is a Tailscale service in order to\n[access your Pi-hole from anywhere](https://tailscale.com/kb/1114/pi-hole/).\n\n## Help\n\nIf you're having trouble getting the project running, submit an issue or post on\nthe forums at \u003chttps://forums.balena.io\u003e.\n\n## Contributing\n\nPlease open an issue or submit a pull request with any features, fixes, or\nchanges.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklutchell%2Fbalena-pihole","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fklutchell%2Fbalena-pihole","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fklutchell%2Fbalena-pihole/lists"}