# 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. ### Required environment variables > Vars and descriptions replicated from the [official pihole container](https://github.com/pi-hole/docker-pi-hole/): | Docker Environment Var | Description| | --- | --- | | `ServerIP: `
| **--net=host mode requires** Set to your server's LAN IP, used by web block modes and lighttpd bind address | `TZ: `
| 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: `
| http://pi.hole/admin password. Run `docker logs pihole \| grep random` to find your random pass. | `REV_SERVER: <"true"\|"false">`
| Enable DNS conditional forwarding for device name resolution | `REV_SERVER_DOMAIN: `
| If conditional forwarding is enabled, set the domain of the local network router | `REV_SERVER_TARGET: `
| If conditional forwarding is enabled, set the IP of the local network router | `REV_SERVER_CIDR: `
| If conditional forwarding is enabled, set the reverse DNS zone (e.g. `192.168.0.0/24`) Example `.env` file in the same directory as your `docker-compose.yaml` file: ``` ServerIP=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 ``` ### Using Portainer stacks? 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.