First commit to bbrkn project

This commit is contained in:
Kirill Kodanev 2025-09-09 21:21:38 +03:00
parent 60185625e6
commit 0e03de0178
4 changed files with 383 additions and 0 deletions

View file

@ -0,0 +1,40 @@
#!/bin/bash
set -e
# Пути к конфигурационным файлам
TARGET_DIR="/opt/appdata/pihole/etc/dnsmasq.d"
IPSET_CONF="91-ipset-bbrkn.conf"
RESOLVE_CONF="92-resolve-bbrkn.conf"
echo "Deploying configuration files to $TARGET_DIR"
# Создаем резервные копии существующих файлов
if [ -f "$TARGET_DIR/$IPSET_CONF" ]; then
cp "$TARGET_DIR/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF.backup.$(date +%Y%m%d-%H%M%S)"
fi
if [ -f "$TARGET_DIR/$RESOLVE_CONF" ]; then
cp "$TARGET_DIR/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF.backup.$(date +%Y%m%d-%H%M%S)"
fi
# Копируем новые файлы
cp "/tmp/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF"
cp "/tmp/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF"
# Перезапускаем dnsmasq через Pi-hole контейнер
echo "Restarting Pi-hole container..."
docker restart pihole
# Проверяем успешность перезапуска
sleep 5
if ! docker ps | grep -q pihole; then
echo "Error: Pi-hole container failed to start"
exit 1
fi
echo "Deployment completed successfully"
# Уведомляем о количестве обработанных доменов
DOMAIN_COUNT=$(grep -c '^ipset=' "$TARGET_DIR/$IPSET_CONF" || echo "0")
echo "Applied configuration for $DOMAIN_COUNT domains"

View file

@ -0,0 +1,28 @@
#!/bin/bash
set -e
# Читаем домены из файла, исключая комментарии и пустые строки
DOMAINS=$(grep -v '^#' domains.txt | grep -v '^$')
# Создаем временные файлы
IPSET_CONF="/tmp/91-ipset-bbrkn.conf"
RESOLVE_CONF="/tmp/92-resolve-bbrkn.conf"
# Очищаем файлы
> "$IPSET_CONF"
> "$RESOLVE_CONF"
echo "Generating configuration files..."
# Генерируем конфигурации для каждого домена
while read -r domain; do
# Добавляем в ipset конфигурацию
echo "ipset=/$domain/bbrkn" >> "$IPSET_CONF"
# Добавляем в resolve конфигурацию
echo "server=/$domain/8.8.8.8" >> "$RESOLVE_CONF"
done <<< "$DOMAINS"
echo "Configuration files generated:"
echo "- $IPSET_CONF ($(wc -l < "$IPSET_CONF") entries)"
echo "- $RESOLVE_CONF ($(wc -l < "$RESOLVE_CONF") entries)"