renovator3000 58307b9416 Merge pull request 'chore(deps): update actions/checkout action to v4' (#2) from renovate/actions-checkout-4.x into main | 1 yıl önce | |
---|---|---|
.github | 1 yıl önce | |
.dockerignore | 2 yıl önce | |
.gitignore | 3 yıl önce | |
Dockerfile | 2 yıl önce | |
Pi-hole-grafana-dashboard.json | 2 yıl önce | |
README.md | 1 yıl önce | |
main.py | 2 yıl önce | |
pihole.py | 1 yıl önce | |
renovate.json | 1 yıl önce | |
requirements.txt | 2 yıl önce |
Based slightly on my other project, speedtest-to-influxdb. This project leverages the Pi-Hole API to gather data about your PiHole instance and store it inside of InfluxDB for your future projects. An example dashoard can be found here.
This project is automatically built through GitHub actions and published to DockerHub.
The InfluxDB connection settings can be configured as followed:
INFLUX_DB_URL=http://192.168.xxx.xxx:8086
INFLUX_DB_ORG=<your org name>
INFLUX_DB_TOKEN=<token>
INFLUX_DB_BUCKET=pihole
The PiHole settings can be configured as followed:
PIHOLE_URL=http://192.168.xxx.xxx
PIHOLE_INTERVAL=15
Interval in secondsOptionally you can also configure the following:
PIHOLE_AUTHENTICATION=<token>
LOG_LEVEL=DEBUG
APP_MODE=Totals
The Pi-Hole API requires you to be authenticated. This can be achieved by supplying the PIHOLE_AUTHENTICATION
environment variable with the token from the API settings page of the admin interface.
This does mean that your token is stored in plaintext as an environment variable and as such as malicious actor could find it and access your PiHole instance. You are advised to use this at your own risk.
The APP_MODE
changes the way the script works.
There are three modes available to choose from:
APP_MODE=Totals
This is the default modeAPP_MODE=Live
APP_MODE=Raw
The default mode is Totals
which will only send the daily totals of the PiHole instance, as displayed in the GUI. Another mode is Live
which will send a summary of the Pi-hole queries of the last PIHOLE_INTERVAL
seconds. The last mode is Raw
which will send the raw data of the Pi-hole queries.
docker run -d --name pihole-to-influx \
-e 'INFLUX_DB_URL'='<influxdb url>' \
-e 'INFLUX_DB_ORG'='<influxdb org>' \
-e 'INFLUX_DB_TOKEN'='<influxdb token>' \
-e 'INFLUX_DB_BUCKET'='pihole' \
-e 'PIHOLE_INTERVAL'='1800' \
-e 'PIHOLE_URL'='192.168.xxx.xxx' \
chriscn/pihole-to-influxdb
version: '3'
services:
pihole-to-influxdb:
image: chriscn/pihole-to-influxdb
container_name: pihole-to-influxdb
environment:
- "INFLUX_DB_URL=http://192.168.xxx.xxx:8086"
- "INFLUX_DB_ORG=myOrg"
- "INFLUX_DB_TOKEN=<token>"
- "INFLUX_DB_BUCKET=pihole"
- "PIHOLE_URL=http://192.168.xxx.xxx"
- "PIHOLE_INTERVAL=15"
- "PIHOLE_AUTHENTICATION=<token>"
- "LOG_LEVEL=DEBUG"
- "APP_MODE=Totals"