65 lines
2.6 KiB
Markdown
65 lines
2.6 KiB
Markdown
|
#documentation #homelab
|
||
|
## Preperation
|
||
|
- The system was entirely updated with `sudo apt update` and `sudo apt upgrade`.
|
||
|
- `docker` and `docker-compose` were installed via `apt`
|
||
|
- It was noted that `docker.service` was not running, with an error similar to
|
||
|
```
|
||
|
Error starting daemon: Error initializing network controller: error obtaining controller instance: failed to create NAT chain DOCKER: iptables failed: iptables -t nat -N DOCKER: iptables v1.8.2 (nf_tables): CHAIN_ADD failed
|
||
|
```
|
||
|
- This was resolved by running the commands below as detailed [here](https://forums.docker.com/t/failing-to-start-dockerd-failed-to-create-nat-chain-docker/78269)
|
||
|
```
|
||
|
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
|
||
|
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
|
||
|
```
|
||
|
## Deployment
|
||
|
- A `docker-compose.yml` file was created with the contents:
|
||
|
```
|
||
|
version: "3"
|
||
|
|
||
|
# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
|
||
|
services:
|
||
|
pihole:
|
||
|
container_name: pihole
|
||
|
image: pihole/pihole:latest
|
||
|
# For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
|
||
|
ports:
|
||
|
- "53:53/tcp"
|
||
|
- "53:53/udp"
|
||
|
- "67:67/udp" # Only required if you are using Pi-hole as your DHCP server
|
||
|
- "80:80/tcp"
|
||
|
environment:
|
||
|
TZ: 'America/Chicago'
|
||
|
# WEBPASSWORD: 'set a secure password here or it will be random'
|
||
|
# Volumes store your data between container upgrades
|
||
|
volumes:
|
||
|
- './etc-pihole:/etc/pihole'
|
||
|
- './etc-dnsmasq.d:/etc/dnsmasq.d'
|
||
|
# https://github.com/pi-hole/docker-pi-hole#note-on-capabilities
|
||
|
cap_add:
|
||
|
- NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
|
||
|
restart: unless-stopped
|
||
|
```
|
||
|
The time zone was updated to the correct timezone, and the docker container started with (Note: If you are not using a `docker` user, you will need to add your user to the docker group. This can be done with `sudo usermod -aG docker [user]`):
|
||
|
```
|
||
|
docker-compose -f docker-compose.yml up -d
|
||
|
```
|
||
|
You can check the status of all docker containers with `docker ps`, and get detailed logs for the pihole container with `docker logs pihole`
|
||
|
Test and see if the pihole is running by changing a system's DNS server to the pihole's IP, then going to `http://[ip]/admin/` or `http://pi.hole`
|
||
|
## Troubleshooting
|
||
|
- Restart the server:
|
||
|
```
|
||
|
sudo reboot -h now
|
||
|
```
|
||
|
- Check if the container is running:
|
||
|
```
|
||
|
docker ps
|
||
|
```
|
||
|
- Check the logs:
|
||
|
```
|
||
|
docker logs pihole
|
||
|
```
|
||
|
- See if the container is listening(grep can be omitted to check all services):
|
||
|
```
|
||
|
sudo ss -tulpn | grep 53
|
||
|
```
|