Add dual Pi-hole high availability setup guide, deployment notes, and disk optimization docs. Update NPM + Pi-hole sync script and docs. Add UniFi DNS firewall troubleshooting and networking scripts CONTEXT. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.1 KiB
3.1 KiB
Pi-hole Disk Optimization - 2026-02-06
Problem
Primary Pi-hole (npm-pihole at 10.10.0.16) had critical disk space issues:
- Root filesystem: 91% full (27GB used of 31GB)
- Pi-hole data: 3.6GB total
pihole-FTL.db: 2.8GB (query log database)gravity.db: 460MB (blocklist database)gravity.db.v5.backup: 114MB (old v5 backup)
- Query retention: 91 days (default)
- Total queries stored: 26.4 million
Actions Taken
1. Removed Old Backup Database
rm /home/cal/container-data/pihole/etc-pihole/gravity.db.v5.backup
Space freed: 114MB
2. Cleaned Up Docker Resources
docker system prune -af --volumes
Space freed: 4.3GB
- Removed unused images (old Pi-hole versions, Jellyfin, Foundry, etc.)
- Removed stopped containers
- Removed unused networks
3. Reduced Query Log Retention
echo "database.maxDBdays=7.0" >> /etc/pihole/pihole-FTL.conf
docker compose restart
Configuration: Changed from 91 days to 7 days Future savings: Database will automatically maintain ~7 days of logs instead of 91
Results
| Metric | Before | After | Improvement |
|---|---|---|---|
| Disk Usage | 91% (27GB/31GB) | 73% (22GB/31GB) | -18% |
| Free Space | 2.8GB | 8.2GB | +5.4GB |
| Total Freed | - | 4.3GB | - |
Ongoing Maintenance
Automatic Cleanup
Pi-hole will now automatically:
- Delete queries older than 7 days
- Maintain FTL database size around ~300-500MB (instead of 2.8GB)
- Keep the most recent week of query logs for troubleshooting
Manual Cleanup (if needed)
# Flush Pi-hole logs
docker exec pihole pihole -f
# Check disk usage
df -h /
du -sh /home/cal/container-data/pihole/etc-pihole/*
# Clean unused Docker resources
docker system prune -af --volumes
# Check query count
docker exec pihole pihole-FTL sqlite3 /etc/pihole/pihole-FTL.db 'SELECT COUNT(*) FROM queries;'
Monitoring Recommendations
Set up disk space alerts when usage exceeds 85%:
# Add to cron (daily check)
0 8 * * * df -h / | awk '$5+0 > 85 {print "Warning: Disk usage at " $5 " on npm-pihole"}' | mail -s "Disk Alert" admin@example.com
Check Pi-hole database size monthly:
du -h /home/cal/container-data/pihole/etc-pihole/pihole-FTL.db
Configuration File
/etc/pihole/pihole-FTL.conf:
database.maxDBdays=7.0 # Keep queries for 7 days only
Prevention Tips
- Regular Docker cleanup: Run
docker system prunemonthly - Monitor disk usage: Check
df -hweekly - Review query retention: 7 days is sufficient for most troubleshooting
- Consider disabling query logging if not needed:
pihole logging off - Archive old logs before major upgrades (like v5→v6)
Space Budget Estimates
With 7-day retention:
- Pi-hole FTL database: ~300-500MB (vs 2.8GB before)
- Gravity database: ~460MB (36 blocklists)
- Docker images: ~2-3GB (active containers only)
- System overhead: ~20GB
- Recommended free space: 5GB+ for headroom
Current allocation is healthy at 73% with 8.2GB free.