docker-pi-hole/install.sh

73 lines
2.5 KiB
Bash
Raw Normal View History

#!/bin/bash -ex
2017-01-08 17:42:39 +01:00
mkdir -p /etc/pihole/
2018-01-10 17:05:27 +01:00
export CORE_TAG='v3.2.1'
2018-01-05 06:51:30 +01:00
export WEB_TAG='v3.2.1'
2018-01-08 15:46:30 +01:00
export FTL_TAG='v2.13.2'
2018-01-27 06:58:47 +01:00
export USE_DEVELOPMENT_BRANCHES=true
2017-01-08 17:42:39 +01:00
2018-01-27 04:14:30 +01:00
if [[ $USE_DEVELOPMENT_BRANCHES == true ]] ; then
# install from custom hash or branch
CORE_TAG='development'
fi
2017-01-08 17:42:39 +01:00
# Make pihole scripts fail searching for `systemctl`,
# which fails pretty miserably in docker compared to `service`
# For more info see docker/docker issue #7459
which systemctl && mv "$(which systemctl)" /bin/no_systemctl
2017-01-08 17:42:39 +01:00
# debconf-apt-progress seems to hang so get rid of it too
2018-01-27 04:10:56 +01:00
which debconf-apt-progress && mv "$(which debconf-apt-progress)" /bin/no_debconf-apt-progress
2017-01-08 17:42:39 +01:00
# Get the install functions
2018-01-27 04:14:30 +01:00
wget -O "$PIHOLE_INSTALL" https://raw.githubusercontent.com/pi-hole/pi-hole/${CORE_TAG}/automated%20install/basic-install.sh
2017-01-08 17:42:39 +01:00
PH_TEST=true . "${PIHOLE_INSTALL}"
# Run only what we need from installer
export USER=pihole
if [[ "$TAG" == 'debian' ]] ; then
distro_check
2017-01-08 17:42:39 +01:00
install_dependent_packages INSTALLER_DEPS[@]
install_dependent_packages PIHOLE_DEPS[@]
install_dependent_packages PIHOLE_WEB_DEPS[@]
sed -i "/sleep 2/ d" /etc/init.d/dnsmasq # SLOW
# IPv6 support for nc openbsd better than traditional
apt-get install -y --force-yes netcat-openbsd
2017-01-08 17:42:39 +01:00
fi
piholeGitUrl="${piholeGitUrl}"
webInterfaceGitUrl="${webInterfaceGitUrl}"
webInterfaceDir="${webInterfaceDir}"
git clone "${piholeGitUrl}" "${PI_HOLE_LOCAL_REPO}"
git clone "${webInterfaceGitUrl}" "${webInterfaceDir}"
if [[ $USE_DEVELOPMENT_BRANCHES == true ]] ; then
pushd "${PI_HOLE_LOCAL_REPO}"; git checkout development; popd;
pushd "${webInterfaceDir}"; git checkout devel; popd;
else
pushd "${PI_HOLE_LOCAL_REPO}";
git reset --hard "${CORE_TAG}";
popd;
pushd "${webInterfaceDir}"; git reset --hard "${WEB_TAG}"; popd;
fi
2017-01-08 17:42:39 +01:00
export PIHOLE_INTERFACE=eth0
export IPV4_ADDRESS=0.0.0.0
export IPV6_ADDRESS=0:0:0:0:0:0
export PIHOLE_DNS_1=8.8.8.8
export PIHOLE_DNS_2=8.8.4.4
export QUERY_LOGGING=true
tmpLog="/tmp/pihole-install.log"
installLogLoc="${installLogLoc}"
2017-01-08 17:42:39 +01:00
installPihole | tee "${tmpLog}"
sed -i 's/readonly //g' /opt/pihole/webpage.sh
sed -i $'s/helpFunc() {/unsupportedFunc() {\\\n echo "Function not supported in Docker images"\\\n exit 0\\\n}\\\n\\\nhelpFunc() {/g' /usr/local/bin/pihole
# Replace references to `updatePiholeFunc` with new `unsupportedFunc`
sed -i $'s/updatePiholeFunc;;/unsupportedFunc;;/g' /usr/local/bin/pihole
mv "${tmpLog}" /
touch /.piholeFirstBoot
2017-01-08 17:42:39 +01:00
# Fix dnsmasq in docker
grep -q '^user=root' || echo -e '\nuser=root' >> /etc/dnsmasq.conf
echo 'Docker install successful'