finds.dev← search

// the find

geerlingguy/internet-pi

★ 4,711 · Jinja · MIT · updated Aug 2026

Raspberry Pi config for all things Internet.

An Ansible playbook that turns a Raspberry Pi into a self-hosted internet utility box: Pi-hole for DNS/ad-blocking, plus a Prometheus/Grafana stack for tracking connection uptime and speed over time. Aimed at homelab tinkerers who want a documented, repeatable setup rather than a pile of manual docker run commands, most useful to people already comfortable with Ansible and Docker Compose.

Genuinely modular — Pi-hole, Shelly plug power monitoring, AirGradient air quality, and Starlink stats are all separate, independently toggled roles instead of one monolithic install. Ships working Grafana dashboards and Prometheus alert rules out of the box (files/*.json, prometheus/alert.rules), not just bare exporter configs you have to wire up yourself. Idempotent by construction since it's Ansible driving docker-compose.yml.j2 templates, so re-running the playbook to change config is safe and expected, not an afterthought.

No upgrade playbook — the README says upgrades are manual `docker compose pull && up -d` per-directory, with a dedicated upgrade path explicitly deferred to 'at some point in the future.' Backups are an open issue (#194) with no guide yet, which is a rough gap for anything holding months of Grafana history. CI (ci.yml) appears to be lint-only (ansible-lint/yamllint) with no molecule or integration tests actually standing up the containers, so regressions in the Docker/service wiring wouldn't be caught automatically. Officially tested only on Raspberry Pi OS/Debian; Ubuntu and Arch are 'should work' with no CI coverage behind that claim.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →