62 lines
2.9 KiB
Markdown
62 lines
2.9 KiB
Markdown
# Pi-Hole + Unbound - 1 Container
|
|
|
|
## Description
|
|
|
|
This Docker deployment runs both Pi-Hole and Unbound in a single container.
|
|
|
|
The base image for the container is the [official Pi-Hole container](https://hub.docker.com/r/pihole/pihole), with an extra build step added to install the Unbound resolver directly into to the container based on [instructions provided directly by the Pi-Hole team](https://docs.pi-hole.net/guides/unbound/).
|
|
|
|
## Usage
|
|
|
|
First create a `.env` file to substitute variables for your deployment.
|
|
|
|
### Pi-hole environment variables
|
|
|
|
> Vars and descriptions replicated from the [official pihole container](https://github.com/pi-hole/docker-pi-hole/#environment-variables):
|
|
|
|
| Variable | Default | Value | Description |
|
|
| -------- | ------- | ----- | ---------- |
|
|
| `TZ` | UTC | `<Timezone>` | Set your [timezone](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) to make sure logs rotate at local midnight instead of at UTC midnight.
|
|
| `WEBPASSWORD` | random | `<Admin password>` | http://pi.hole/admin password. Run `docker logs pihole \| grep random` to find your random pass.
|
|
| `FTLCONF_REPLY_ADDR4` | unset | `<Host's IP>` | Set to your server's LAN IP, used by web block modes and lighttpd bind address.
|
|
| `REV_SERVER` | `false` | `<"true"\|"false">` | Enable DNS conditional forwarding for device name resolution |
|
|
| `REV_SERVER_DOMAIN` | unset | Network Domain | If conditional forwarding is enabled, set the domain of the local network router |
|
|
| `REV_SERVER_TARGET` | unset | Router's IP | If conditional forwarding is enabled, set the IP of the local network router |
|
|
| `REV_SERVER_CIDR` | unset | Reverse DNS | If conditional forwarding is enabled, set the reverse DNS zone (e.g. `192.168.0.0/24`) |
|
|
| `WEBTHEME` | `default-light` | `<"default-dark"\|"default-darker"\|"default-light"\|"default-auto"\|"lcars">`| User interface theme to use.
|
|
|
|
Example `.env` file in the same directory as your `docker-compose.yaml` file:
|
|
|
|
```
|
|
FTLCONF_REPLY_ADDR4=192.168.1.10
|
|
TZ=America/Los_Angeles
|
|
WEBPASSWORD=QWERTY123456asdfASDF
|
|
REV_SERVER=true
|
|
REV_SERVER_DOMAIN=local
|
|
REV_SERVER_TARGET=192.168.1.1
|
|
REV_SERVER_CIDR=192.168.0.0/16
|
|
HOSTNAME=pihole
|
|
DOMAIN_NAME=pihole.local
|
|
PIHOLE_WEBPORT=80
|
|
WEBTHEME=default-light
|
|
```
|
|
|
|
### Using Portainer stacks?
|
|
|
|
> 2022-3-11: I'm being told the advice below is not longer true in Portainer. If you're using Portainer, try it without removing the volumes declaration and see if it works.
|
|
|
|
Portainer stacks are a little weird and don't want you to declare your named volumes, so remove this block from the top of the `docker-compose.yaml` file before copy/pasting into Portainer's stack editor:
|
|
|
|
```yaml
|
|
volumes:
|
|
etc_pihole-unbound:
|
|
etc_pihole_dnsmasq-unbound:
|
|
```
|
|
|
|
### Running the stack
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
> If using Portainer, just paste the `docker-compose.yaml` contents into the stack config and add your *environment variables* directly in the UI.
|