Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zeuxisoo/my-dns-pi
A set of service included secure Pi-hole, monitoring, and download services
https://github.com/zeuxisoo/my-dns-pi
aria2 coredns dns-over-https dns-over-tls dns-server dnscrypt-proxy docker docker-compose grafana pihole prometheus raspberry-pi
Last synced: about 2 months ago
JSON representation
A set of service included secure Pi-hole, monitoring, and download services
- Host: GitHub
- URL: https://github.com/zeuxisoo/my-dns-pi
- Owner: zeuxisoo
- Created: 2020-09-11T13:36:55.000Z (over 4 years ago)
- Default Branch: 1.x
- Last Pushed: 2024-03-13T07:11:30.000Z (11 months ago)
- Last Synced: 2024-04-08T18:29:07.413Z (10 months ago)
- Topics: aria2, coredns, dns-over-https, dns-over-tls, dns-server, dnscrypt-proxy, docker, docker-compose, grafana, pihole, prometheus, raspberry-pi
- Language: Makefile
- Homepage:
- Size: 117 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# My DNS Pi
A docker-compose file to provide a set of service included a secure Pi-hole, monitoring, and download services
## Usage
1. Clone the project to local
```
git clone https://github.com/zeuxisoo/my-dns-pi.git
```2. Enter to the project directory
```
cd my-dns-pi
```3. Edit the docker variable in `.env` file
```
vim .env
```If you want to find the current user id
```
id username
```4. Change service related data permission
```
sudo chown -Rf 65534:65534 etc/dnscrypt-proxy/config
sudo chown -Rf 65534:65534 etc/prometheus/data
sudo chown -Rf 65534:65534 etc/alert-manager/data
sudo chown -Rf 472:472 etc/grafana/data
```6. Setup config file for AlertManager
Create the config file
```
cp etc/alert-manager/conf/config.yml.example etc/alert-manager/conf/config.yml
```Edit the config file content
```
vim etc/alert-manager/conf/config.yml
```6. Setup config file for DoT domain in Caddy server
Create the config file
```
cp etc/caddy/sites/dot.domain.conf.example etc/caddy/sites/your.domain.conf
```Edit the config file content
```
vim etc/caddy/sites/your.domain.conf
```7. Setup TLS certification path in CoreDNS config file
Create the config file
```
cp etc/coredns/Corefile.example etc/coredns/Corefile
```Edit the config file content
```
vim etc/coredns/Corefile
```8. Create docker networks
```
sudo docker network create caddy-net --subnet=172.28.240.0/24
sudo docker network create pihole-net --subnet=172.28.241.0/24
sudo docker network create monitor-net --subnet=172.28.242.0/24
```9. Start the docker
```
sudo docker-compose up -d
```10. If you don't set the pi dns in router or local network settings. You can hardcode your domain in local `hosts` file the like
Edit the `hosts` file
```
sudo vim /etc/hosts
```Add the `pi.hole` domain to pi ip address
```
192.168.XXX.XXX pi.hole
```12. Open the browser access the `https://pi.hole/`
13. Login and add the following address to `Local DNS Records`
| Domain | Pi IP Address | Description |
|-----------------|-----------------| ------------ |
| monitor.hole | 192.168.XXX.XXX | Monitorix |
| prometheus.hole | 192.168.XXX.XXX | Prometheus |
| alert.hole | 192.168.XXX.XXX | AlertManager |
| grafana.hole | 192.168.XXX.XXX | Granfana |
| aria2.hole | 192.168.XXX.XXX | Aria2 |
| file.hole | 192.168.XXX.XXX | FileManager |## Other
Reload caddy server when add or edit or delete config
sudo make caddy-reload
Remove the docker dangling image
sudo docker images -f dangling=true
sudo docker image pruneRemove all docker images
sudo docker rmi $(sudo docker images -a -q)