homepage-blocky-widget/README.md

48 lines
1.6 KiB
Markdown
Raw Permalink Normal View History

# homepage-blocky-widget
A [Blocky](https://0xerr0r.github.io/blocky/) service widget for the
[Homepage](https://gethomepage.dev) dashboard.
Blocky is a DNS ad-blocker and resolver. This widget shows live stats pulled
from Blocky's Prometheus `/metrics` endpoint.
## Preview
```
┌─────────────────────────────────────────┐
│ Pi DNS │
│ DNS ad-blocker │
│ │
│ Status Enabled │
│ Blocked Domains 84,242 │
│ Total Queries 333 │
│ Cache Hit Rate 10.5% │
└─────────────────────────────────────────┘
```
## Requirements
- Blocky with `ports.http` configured (default: 4000)
- Prometheus metrics enabled in Blocky config:
```yaml
prometheus:
enable: true
path: /metrics
```
## Installation
See [INSTALL.md](INSTALL.md).
## Why a custom widget?
Blocky has no REST endpoint for query statistics — only `/api/blocking/status`
(toggle state) and `/metrics` (Prometheus text format). This widget includes a
small proxy handler that fetches and parses the metrics endpoint, returning the
relevant values as JSON to the React component.
There is an open feature request at the official Homepage repo:
https://github.com/gethomepage/homepage/discussions/2732
Once it reaches the required 20 upvotes, this widget can be submitted upstream.