Scripts and tools for Raspberry Pi devices in a home-lab environment.
Disclaimer: The setup scripts in this repo do not provide adequate security or privacy guarantees for public deployments. They are designed for LAN/home-lab hosts only. Use at your own risk.
Provisioning is driven by Ansible — see ansible/README for inventory setup and the playbook bootstrap order.
| Group | Host | IP | Role |
|---|---|---|---|
| ns | kleo | 192.168.1.2 | DNS (Pi-Hole / Unbound / Traefik) |
| mon | millie | 192.168.1.16 | Monitoring (Zabbix + PostgreSQL) |
UCTRONICS Pi Rack Pro for Raspberry Pi 4B, 19" 1U Rack Mount, Support for 4 2.5" SSDs, Secure Shutdown, 0.96" Color Display for Raspberry Pi Guide for display configuration: https://github.com/UCTRONICS/SKU_RM0004
RPi Compute Module 4 IoT Router Board Mini
Note: Requires a custom adapter for the rack mount
Check ns/README for more setup info
Overview:
- Pi-Hole - ad-blocker + cache
- Handle client DNS requests
- Delegate requests to the local Unbound installation
- Unbound - a secure recursive DNS server
- Listen only for queries from the local Pi-Hole installation
- Listen for both UDP and TCP requests
- Verify DNSSEC signatures, discarding BOGUS domains
- Traefik - reverse proxy
- HTTP→HTTPS redirect for all routed hosts
- Hostname-based routing to Pi-Hole, Portainer, and the Traefik dashboard
- TLS termination
Links:
TODO: Pi-VPN (not yet implemented in this repo)
Check mon/README for more setup info
Overview:
- Zabbix Server - central monitoring process
- Polls data from agents and evaluates triggers
- Sends notifications on events
- Zabbix Web - admin UI on Nginx
- PostgreSQL - backing store (ARM64 image)
- Zabbix Agent 2 - deployed to monitored hosts via
ansible/bullseye-zabbix-agent2-playbook.yml
