# 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 | `` | 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 | `` | http://pi.hole/admin password. Run `docker logs pihole \| grep random` to find your random pass. | `FTLCONF_REPLY_ADDR4` | unset | `` | 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? 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.