2017-05-14 00:03:24 +02:00
|
|
|
#!/bin/bash -ex
|
2017-01-08 17:42:39 +01:00
|
|
|
mkdir -p /etc/pihole/
|
2018-01-31 17:07:55 +01:00
|
|
|
mkdir -p /var/run/pihole
|
2018-08-05 20:14:00 +02:00
|
|
|
# Production tags with valid web footers
|
|
|
|
export CORE_TAG='v4.0'
|
|
|
|
export WEB_TAG='v4.0'
|
|
|
|
# Only use for pre-production / testing
|
|
|
|
export USE_CUSTOM_BRANCHES=false
|
2017-01-08 17:42:39 +01:00
|
|
|
|
2018-08-05 20:14:00 +02:00
|
|
|
if [[ $USE_CUSTOM_BRANCHES == true ]] ; then
|
2018-01-27 04:14:30 +01:00
|
|
|
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
|
2018-01-26 22:46:17 +01:00
|
|
|
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-07-01 00:16:16 +02:00
|
|
|
curl https://raw.githubusercontent.com/pi-hole/pi-hole/${CORE_TAG}/automated%20install/basic-install.sh > "$PIHOLE_INSTALL"
|
2017-01-08 17:42:39 +01:00
|
|
|
PH_TEST=true . "${PIHOLE_INSTALL}"
|
|
|
|
|
2018-07-01 00:16:16 +02:00
|
|
|
# Preseed variables to assist with using --unattended install
|
|
|
|
{
|
|
|
|
echo "PIHOLE_INTERFACE=eth0"
|
|
|
|
echo "IPV4_ADDRESS=0.0.0.0"
|
|
|
|
echo "IPV6_ADDRESS=0:0:0:0:0:0"
|
|
|
|
echo "PIHOLE_DNS_1=8.8.8.8"
|
|
|
|
echo "PIHOLE_DNS_2=8.8.4.4"
|
|
|
|
echo "QUERY_LOGGING=true"
|
|
|
|
echo "INSTALL_WEB_SERVER=true"
|
|
|
|
echo "INSTALL_WEB_INTERFACE=true"
|
|
|
|
echo "LIGHTTPD_ENABLED=true"
|
|
|
|
}>> "${setupVars}"
|
|
|
|
source $setupVars
|
|
|
|
|
2017-01-08 17:42:39 +01:00
|
|
|
export USER=pihole
|
2018-07-01 00:16:16 +02:00
|
|
|
distro_check
|
|
|
|
|
|
|
|
# fix permission denied to resolvconf post-inst /etc/resolv.conf moby/moby issue #1297
|
|
|
|
apt-get -y install debconf-utils && echo resolvconf resolvconf/linkify-resolvconf boolean false | debconf-set-selections
|
|
|
|
|
2018-10-21 22:08:23 +02:00
|
|
|
# fix error AUDIT: Allow login in non-init namespaces
|
|
|
|
# Credit to https://github.com/sequenceiq/docker-pam/blob/master/ubuntu-14.04/Dockerfile
|
|
|
|
apt-get -y build-dep pam &&
|
|
|
|
export CONFIGURE_OPTS=--disable-audit && cd /tmp && apt-get -b source pam && dpkg -i libpam-doc*.deb libpam-modules*.deb libpam-runtime*.deb libpam0g*.deb
|
|
|
|
|
2018-07-01 00:16:16 +02:00
|
|
|
# Tried this - unattended causes starting services during a build, should probably PR a flag to shut that off and switch to that
|
|
|
|
#bash -ex "./${PIHOLE_INSTALL}" --unattended
|
|
|
|
install_dependent_packages INSTALLER_DEPS[@]
|
|
|
|
install_dependent_packages PIHOLE_DEPS[@]
|
|
|
|
install_dependent_packages PIHOLE_WEB_DEPS[@]
|
|
|
|
# IPv6 support for nc openbsd better than traditional
|
|
|
|
apt-get install -y --force-yes netcat-openbsd
|
2017-01-31 06:58:48 +01:00
|
|
|
|
2017-03-04 06:13:11 +01:00
|
|
|
piholeGitUrl="${piholeGitUrl}"
|
|
|
|
webInterfaceGitUrl="${webInterfaceGitUrl}"
|
|
|
|
webInterfaceDir="${webInterfaceDir}"
|
2017-01-31 06:58:48 +01:00
|
|
|
git clone "${piholeGitUrl}" "${PI_HOLE_LOCAL_REPO}"
|
|
|
|
git clone "${webInterfaceGitUrl}" "${webInterfaceDir}"
|
2017-01-08 17:42:39 +01:00
|
|
|
|
2017-11-14 03:41:49 +01:00
|
|
|
tmpLog="/tmp/pihole-install.log"
|
|
|
|
installLogLoc="${installLogLoc}"
|
2018-08-03 05:49:55 +02:00
|
|
|
installPihole 2>&1 | tee "${tmpLog}"
|
2018-01-30 20:36:57 +01:00
|
|
|
mv "${tmpLog}" /
|
|
|
|
|
2018-08-05 20:14:00 +02:00
|
|
|
if [[ $USE_CUSTOM_BRANCHES == true ]] ; then
|
2018-07-01 00:16:16 +02:00
|
|
|
ln -s /bin/true /usr/local/bin/service
|
2018-08-02 02:00:39 +02:00
|
|
|
echo "$CORE_TAG" | tee /etc/pihole/ftlbranch
|
|
|
|
echo y | bash -x pihole checkout core $CORE_TAG
|
|
|
|
echo y | bash -x pihole checkout web $CORE_TAG
|
2018-07-01 00:16:16 +02:00
|
|
|
unlink /usr/local/bin/service
|
2018-01-30 20:36:57 +01:00
|
|
|
else
|
|
|
|
# Reset to our tags so version numbers get detected correctly
|
|
|
|
pushd "${PI_HOLE_LOCAL_REPO}"; git reset --hard "${CORE_TAG}"; popd;
|
|
|
|
pushd "${webInterfaceDir}"; git reset --hard "${WEB_TAG}"; popd;
|
|
|
|
fi
|
|
|
|
|
2017-01-18 05:49:42 +01:00
|
|
|
sed -i 's/readonly //g' /opt/pihole/webpage.sh
|
2018-01-01 18:18:29 +01:00
|
|
|
|
|
|
|
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
|
|
|
|
|
2017-11-20 06:15:44 +01:00
|
|
|
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
|
2017-05-14 00:03:24 +02:00
|
|
|
echo 'Docker install successful'
|