pihole
diff --git a/apps/pihole/run_docker.sh b/apps/pihole/run_docker.sh
new file mode 100644
index 0000000..de9409a
--- /dev/null
+++ b/apps/pihole/run_docker.sh
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+# https://github.com/pi-hole/docker-pi-hole/blob/master/README.md
+
+# Note: ServerIP should be replaced with your external ip.
+docker run -d \
+    --name pihole \
+    -p 53:53/tcp -p 53:53/udp \
+    -p 80:80 \
+    -p 443:443 \
+    -e TZ="America/Chicago" \
+    -v "$(pwd)/etc-pihole/:/etc/pihole/" \
+    -v "$(pwd)/etc-dnsmasq.d/:/etc/dnsmasq.d/" \
+    --restart=unless-stopped \
+    --hostname pi.hole \
+    -e VIRTUAL_HOST="pi.hole" \
+    -e PROXY_LOCATION="pi.hole" \
+    -e ServerIP="127.0.0.1" \
+    pihole/pihole:latest
+
+#    --dns=127.0.0.1 --dns=1.1.1.1 \
+
+printf 'Starting up pihole container '
+for i in $(seq 1 20); do
+    if [ "$(docker inspect -f "{{.State.Health.Status}}" pihole)" == "healthy" ] ; then
+        printf ' OK'
+        echo -e "\n$(docker logs pihole 2> /dev/null | grep 'password:') for your pi-hole: https://${IP}/admin/"
+        exit 0
+    else
+        sleep 3
+        printf '.'
+    fi
+
+    if [ $i -eq 20 ] ; then
+        echo -e "\nTimed out waiting for Pi-hole start, consult check your container logs for more info (\`docker logs pihole\`)"
+        exit 1
+    fi
+done;