A collection of docker containers to provide enterprise-level services for a home network all hosted from a Raspberry Pi
Thank you to Jeff Geerling for inspiration and a framework for this project in his internet-pi project
- Grafana
- Prometheus
- Power monitoring using shelly WiFi plug
- Network monitoring using Speedtest
- PiHole - Local DNS server for adblocking and internet privacy
- Homer - Dashboard for locally hosted services
- Homebridge - Third-party device support for Apple Homekit
- Wireguard - VPN server for local network access
- Raspberry Pi running RaspberryPiOS or your distro of choice
- Pi 4 4gb or better recommended if you intend to implement the full feature set
- Docker
sudo apt-get install docker
- Add user to the docker group with
sudo usermod -aG docker <username>
- Add user to the docker group with
- Docker Compose
sudo apt-get install docker-compose
- Ansible
pip3 install ansible
- Python can be installed with
sudo apt install python3
- Pip3 can be installed with
sudo apt install python3-pip
- Python can be installed with
- Optional: Portainer or Rancher for container management
- Edit
example-config.yml
to meet your requirements and copy toconfig.yml
- Change details in
example-docker-compose.yml
for your network and copy todocker-compose.yml
- Add details to
example-inventory.ini
and copy toinventory.ini
- Clone this repository and
cd network-pi
- Install Ansible requirements with
ansible-galaxy collection install -r requirements.yml
- Run the base Ansible playbook to install the framework
ansible-playbook main.yml
- Create the docker containers with
docker-compose up -d
- For Portainer and Rancher, create and deploy a new stack using the contents of
docker-compose.yml
- For Portainer and Rancher, create and deploy a new stack using the contents of
- Add DNS blocklists to PiHole avaliable at The Firebog
- Optional: add local DNS names for each local service's web UI in the PiHole UI
- Customize Homer dashboard by editing
/homer/config.yml
on the host - Add HomeBridge to Apple Homekit by using the web gui at
server-ip:8581
- Fetch VPN peer keys from
./config/wireguard
on the host
- PiHole at
server-ip:81
- Homer at
server-ip:80
- Homebridge at
server-ip:8581
- Grafana at
server-ip:3030
Since this is a pi-based project, please confirm all included docker images are compatible with arm64 systems