35 lines
828 B
Bash
35 lines
828 B
Bash
#!/usr/bin/env sh
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
ADGUARD_ADMIN_USERNAME=${ADGUARD_ADMIN_USERNAME:-admin}
|
|
|
|
mkdir -p /etc/adguard
|
|
touch /etc/adguard/config.yaml
|
|
|
|
if [ -f /etc/adguard/config.yaml.default ]; then
|
|
cp /etc/adguard/config.yaml.default /etc/adguard/config.yaml
|
|
fi
|
|
|
|
password="$(htpasswd -B -C 10 -n -b "$ADGUARD_ADMIN_USERNAME" "$ADGUARD_ADMIN_PASSWORD" | cut -d ':' -f2-)"
|
|
yq eval -i ".users = [{\"name\": \"$ADGUARD_ADMIN_USERNAME\", \"password\": \"$password\"}]" /etc/adguard/config.yaml
|
|
|
|
LOG_PIPE="$(mktemp -u)"
|
|
mkfifo "$LOG_PIPE"
|
|
|
|
(
|
|
while IFS= read -r line; do
|
|
if echo "$line" | grep -qEi "\[(WARN|ERROR|FATAL)\]"; then
|
|
echo "$line" >&2
|
|
else
|
|
echo "$line"
|
|
fi
|
|
done < "$LOG_PIPE"
|
|
) &
|
|
|
|
exec AdGuardHome \
|
|
-c /etc/adguard/config.yaml \
|
|
-w /var/lib/adguard \
|
|
"$@" > "$LOG_PIPE" 2>&1
|