Remove a lot of TG domainsm, rewrite scripts
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 2m15s
All checks were successful
Deploy DNS Configuration / deploy (push) Successful in 2m15s
This commit is contained in:
parent
72bbdc2457
commit
5f0e287b98
5 changed files with 61 additions and 139 deletions
|
|
@ -13,8 +13,8 @@ jobs:
|
||||||
INPUT_FILE: domains.txt
|
INPUT_FILE: domains.txt
|
||||||
|
|
||||||
# Временные конфиги (куда пишутся generate-configs.sh)
|
# Временные конфиги (куда пишутся generate-configs.sh)
|
||||||
IPSET_CONF: 91-ipset-bbrkn.conf
|
IPSET_CONF: /tmp/91-ipset-bbrkn.conf
|
||||||
RESOLVE_CONF: 92-resolve-bbrkn.conf
|
RESOLVE_CONF: /tmp/92-resolve-bbrkn.conf
|
||||||
|
|
||||||
# DNS-сервер для резолвинга
|
# DNS-сервер для резолвинга
|
||||||
DNS_SERVER: 8.8.8.8
|
DNS_SERVER: 8.8.8.8
|
||||||
|
|
|
||||||
77
Makefile
77
Makefile
|
|
@ -1,46 +1,47 @@
|
||||||
# ==========================
|
# ===============================
|
||||||
# Makefile для проекта BBRKN
|
# Makefile для управления dnsmasq-конфигами
|
||||||
# ==========================
|
# ===============================
|
||||||
|
|
||||||
DOMAINS := domains.txt
|
# --- Переменные окружения (с дефолтами для локального запуска) ---
|
||||||
GEN_SCRIPT := ./scripts/generate-configs.sh
|
IPSET_CONF ?= /tmp/91-ipset-bbrkn.conf
|
||||||
DEPLOY_SCRIPT := ./scripts/deploy-to-gateway.sh
|
RESOLVE_CONF ?= /tmp/92-resolve-bbrkn.conf
|
||||||
|
CHROME_SERVER ?= http://10.100.1.2:3000
|
||||||
|
DOMAINS_FILE ?= domains.txt
|
||||||
|
|
||||||
IPSET_CONF := 91-ipset-bbrkn.conf
|
# Экспортируем переменные, чтобы они были доступны внутри shell-скриптов
|
||||||
RESOLVE_CONF := 92-resolve-bbrkn.conf
|
export IPSET_CONF RESOLVE_CONF CHROME_SERVER DOMAINS_FILE
|
||||||
|
|
||||||
# Генерация конфигов
|
# --- Основные цели ---
|
||||||
generate:
|
.PHONY: all clean check generate deploy
|
||||||
@echo ">>> Генерация конфигурационных файлов из $(DOMAINS)"
|
|
||||||
$(GEN_SCRIPT)
|
|
||||||
|
|
||||||
# Тестовый прогон (генерация + просмотр кусков файлов, но без деплоя)
|
all: generate deploy
|
||||||
test: generate
|
@echo "✅ Конфиги успешно сгенерированы и задеплоены"
|
||||||
@echo ">>> Тестовый прогон (без деплоя)"
|
|
||||||
@echo "--- IPSET CONFIG ($(IPSET_CONF)) ---"
|
|
||||||
@head -n 10 $(IPSET_CONF) || true
|
|
||||||
@echo "... (всего $$(wc -l < $(IPSET_CONF)) строк)"
|
|
||||||
@echo
|
|
||||||
@echo "--- RESOLVE CONFIG ($(RESOLVE_CONF)) ---"
|
|
||||||
@head -n 10 $(RESOLVE_CONF) || true
|
|
||||||
@echo "... (всего $$(wc -l < $(RESOLVE_CONF)) строк)"
|
|
||||||
|
|
||||||
# Проверка: только сводка из generate-configs.sh
|
|
||||||
check:
|
|
||||||
@echo ">>> Проверка списка доменов (без генерации файлов)"
|
|
||||||
$(GEN_SCRIPT) --dry-run
|
|
||||||
|
|
||||||
# Деплой на шлюз (Pi-hole)
|
|
||||||
deploy: generate
|
|
||||||
@echo ">>> Деплой на шлюз"
|
|
||||||
$(DEPLOY_SCRIPT)
|
|
||||||
|
|
||||||
# Полный цикл: генерация + деплой
|
|
||||||
all: deploy
|
|
||||||
|
|
||||||
# Уборка временных файлов
|
|
||||||
clean:
|
clean:
|
||||||
@echo ">>> Удаление временных файлов"
|
@echo "🧹 Очистка временных файлов"
|
||||||
@rm -f $(IPSET_CONF) $(RESOLVE_CONF)
|
@rm -f $(IPSET_CONF) $(RESOLVE_CONF)
|
||||||
|
|
||||||
.PHONY: generate test check deploy all clean
|
check:
|
||||||
|
@echo "🔍 Проверка файла доменов ($(DOMAINS_FILE))"
|
||||||
|
@if [ ! -f "$(DOMAINS_FILE)" ]; then \
|
||||||
|
echo "Ошибка: файл $(DOMAINS_FILE) не найден"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@grep -v '^#' $(DOMAINS_FILE) | grep -v '^$$' | while read domain; do \
|
||||||
|
if ! echo "$$domain" | grep -qE '^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$$'; then \
|
||||||
|
echo "Ошибка: Неверный формат домена: $$domain"; \
|
||||||
|
exit 1; \
|
||||||
|
fi \
|
||||||
|
done
|
||||||
|
@echo "✔ Файл доменов прошёл проверку"
|
||||||
|
|
||||||
|
generate:
|
||||||
|
@echo "⚙ Генерация dnsmasq-конфигов"
|
||||||
|
@chmod +x scripts/generate-configs.sh
|
||||||
|
@./scripts/generate-configs.sh
|
||||||
|
|
||||||
|
deploy:
|
||||||
|
@echo "🚀 Деплой конфигов в систему"
|
||||||
|
@chmod +x scripts/deploy-to-gateway.sh
|
||||||
|
@./scripts/deploy-to-gateway.sh
|
||||||
|
|
||||||
|
|
|
||||||
85
domains.txt
85
domains.txt
|
|
@ -29,8 +29,6 @@ spotify.com.edgesuite.net
|
||||||
spotify.map.fastly.net
|
spotify.map.fastly.net
|
||||||
spotify.map.fastlylb.net
|
spotify.map.fastlylb.net
|
||||||
netify.ai
|
netify.ai
|
||||||
public-family.api.account.microsoft.com
|
|
||||||
family.microsoft.com
|
|
||||||
router-switch.com
|
router-switch.com
|
||||||
fast.com
|
fast.com
|
||||||
hetzner.com
|
hetzner.com
|
||||||
|
|
@ -46,24 +44,13 @@ youtubei.googleapis.com
|
||||||
ytimg.com
|
ytimg.com
|
||||||
yt3.ggpht.com
|
yt3.ggpht.com
|
||||||
yt4.ggpht.com
|
yt4.ggpht.com
|
||||||
youtube.com
|
|
||||||
youtubeembeddedplayer.googleapis.com
|
|
||||||
ytimg.l.google.com
|
ytimg.l.google.com
|
||||||
jnn-pa.googleapis.com
|
|
||||||
youtube-nocookie.com
|
|
||||||
youtube-ui.l.google.com
|
|
||||||
yt-video-upload.l.google.com
|
|
||||||
wide-youtube.l.google.com
|
|
||||||
1337x.to
|
1337x.to
|
||||||
akamai.steamstatic.com
|
akamai.steamstatic.com
|
||||||
api.telegram.org
|
api.telegram.org
|
||||||
api.themoviedb.org
|
api.themoviedb.org
|
||||||
api.twitter.com
|
api.twitter.com
|
||||||
app.telegram.org
|
|
||||||
artifacts.elastic.co
|
artifacts.elastic.co
|
||||||
a.telegram.org
|
|
||||||
autoconfig.telegram.org
|
|
||||||
autodiscover.telegram.org
|
|
||||||
booktracker.org
|
booktracker.org
|
||||||
bt1.t-ru.org
|
bt1.t-ru.org
|
||||||
bt2.rutracker.cc
|
bt2.rutracker.cc
|
||||||
|
|
@ -72,99 +59,56 @@ bt3.rutracker.cc
|
||||||
bt3.t-ru.org
|
bt3.t-ru.org
|
||||||
bt4.rutracker.cc
|
bt4.rutracker.cc
|
||||||
bt4.t-ru.org
|
bt4.t-ru.org
|
||||||
b.telegram.org
|
|
||||||
bt.rutracker.cc
|
bt.rutracker.cc
|
||||||
bt.t-ru.org
|
bt.t-ru.org
|
||||||
canva.com
|
canva.com
|
||||||
cdn-client.medium.com
|
cdn-client.medium.com
|
||||||
cdn.cookielaw.org
|
cdn.cookielaw.org
|
||||||
cdn.telegram.org
|
|
||||||
cloud.ibm.com
|
cloud.ibm.com
|
||||||
cloud.telegram.org
|
|
||||||
core.telegram.org
|
|
||||||
cpanel.telegram.org
|
|
||||||
cp.telegram.org
|
|
||||||
c.telegram.org
|
|
||||||
currenttime.tv
|
currenttime.tv
|
||||||
dellcdn.com
|
dellcdn.com
|
||||||
dell.com
|
dell.com
|
||||||
demo.telegram.org
|
|
||||||
desktop.telegram.org
|
|
||||||
de.telegram.org
|
|
||||||
dnm.telegram.org
|
|
||||||
desktop.telegram.org
|
|
||||||
download.dell.com
|
download.dell.com
|
||||||
download.freebsd.org
|
download.freebsd.org
|
||||||
download.telegram.org
|
|
||||||
doxajournal.ru
|
doxajournal.ru
|
||||||
duckduckgo.com
|
duckduckgo.com
|
||||||
dw.com
|
dw.com
|
||||||
dyn.telegram.org
|
|
||||||
echo.msk.ru
|
echo.msk.ru
|
||||||
en.telegram.org
|
|
||||||
flibusta.is
|
flibusta.is
|
||||||
flora-1.web.telegram.org
|
|
||||||
forum.telegram.org
|
|
||||||
forum.xda-developers.com
|
forum.xda-developers.com
|
||||||
git.FreeBSD.org
|
git.FreeBSD.org
|
||||||
googleapis.com
|
googleapis.com
|
||||||
googlevideo.com
|
googlevideo.com
|
||||||
go.telegram.org
|
|
||||||
graph.instagram.com
|
graph.instagram.com
|
||||||
gvt1.com
|
gvt1.com
|
||||||
hdclub.org
|
hdclub.org
|
||||||
help.telegram.org
|
|
||||||
hide.me
|
hide.me
|
||||||
home.telegram.org
|
|
||||||
i.dell.com
|
i.dell.com
|
||||||
id.trimble.com
|
id.trimble.com
|
||||||
images.telegram.org
|
|
||||||
image.tmdb.org
|
image.tmdb.org
|
||||||
img.telegram.org
|
|
||||||
inbound.telegram.org
|
|
||||||
info.telegram.org
|
|
||||||
infra-cdn.elastic.co
|
infra-cdn.elastic.co
|
||||||
ipic.su
|
ipic.su
|
||||||
ip.telegram.org
|
|
||||||
ipv6.telegram.org
|
|
||||||
i.ytimg.com
|
i.ytimg.com
|
||||||
kinogo.by
|
kinogo.by
|
||||||
kinozal.me
|
kinozal.me
|
||||||
kinozal.tv
|
kinozal.tv
|
||||||
linkedin.com
|
linkedin.com
|
||||||
linuxserver.io
|
linuxserver.io
|
||||||
liveupdate.telegram.org
|
|
||||||
login.sketchup.co
|
login.sketchup.co
|
||||||
login.telegram.org
|
|
||||||
lostfilm.tv
|
lostfilm.tv
|
||||||
mdm.telegram.org
|
|
||||||
media.telegram.org
|
|
||||||
medium.com
|
medium.com
|
||||||
meduza.io
|
meduza.io
|
||||||
miped.ru
|
miped.ru
|
||||||
ml.telegram.org
|
|
||||||
mobile.telegram.org
|
|
||||||
mods.linuxserver.io
|
mods.linuxserver.io
|
||||||
mongo.telegram.org
|
|
||||||
m.telegram.org
|
|
||||||
mysql.telegram.org
|
|
||||||
newstudio.tv
|
newstudio.tv
|
||||||
nnm-club.me
|
nnm-club.me
|
||||||
nnmclub.to
|
nnmclub.to
|
||||||
nyaa.si
|
nyaa.si
|
||||||
office.telegram.org
|
|
||||||
old.telegram.org
|
|
||||||
openvswitch.org
|
openvswitch.org
|
||||||
outlook.telegram.org
|
|
||||||
pbs.twimg.com
|
pbs.twimg.com
|
||||||
pluto-1.web.telegram.org
|
|
||||||
pluto.web.telegram.org
|
|
||||||
poligon.media
|
poligon.media
|
||||||
pop3.telegram.org
|
|
||||||
pornhub.com
|
pornhub.com
|
||||||
portal.telegram.org
|
|
||||||
rarbg.to
|
rarbg.to
|
||||||
remote.telegram.org
|
|
||||||
ru.linkedin.com
|
ru.linkedin.com
|
||||||
rutor.info
|
rutor.info
|
||||||
rutor.rg
|
rutor.rg
|
||||||
|
|
@ -173,20 +117,11 @@ rutracker.org
|
||||||
rutrk.org
|
rutrk.org
|
||||||
scontent-hel3-1.cdninstagram.com
|
scontent-hel3-1.cdninstagram.com
|
||||||
seasonvar.ru
|
seasonvar.ru
|
||||||
secure.telegram.org
|
|
||||||
server1.telegram.org
|
|
||||||
server.telegram.org
|
|
||||||
shop.telegram.org
|
|
||||||
sip.telegram.org
|
|
||||||
sketchup.com
|
sketchup.com
|
||||||
snap.licdn.com
|
snap.licdn.com
|
||||||
sonic-net.github.io
|
sonic-net.github.io
|
||||||
ssl.telegram.org
|
|
||||||
sslvpn.telegram.org
|
|
||||||
stage.telegram.org
|
|
||||||
static.cdninstagram.com
|
static.cdninstagram.com
|
||||||
static.rutracker.cc
|
static.rutracker.cc
|
||||||
static.telegram.org
|
|
||||||
static.t-ru.org
|
static.t-ru.org
|
||||||
steamstatic.com
|
steamstatic.com
|
||||||
store.akamai.steamstatic.com
|
store.akamai.steamstatic.com
|
||||||
|
|
@ -209,22 +144,7 @@ tracker.pirateparty.gr
|
||||||
t-ru.org
|
t-ru.org
|
||||||
tvrain.ru
|
tvrain.ru
|
||||||
twitter.com
|
twitter.com
|
||||||
upload.telegram.org
|
|
||||||
venus-1.web.telegram.org
|
|
||||||
venus.web.telegram.org
|
|
||||||
vesta-1.web.telegram.org
|
|
||||||
vesta.web.telegram.org
|
|
||||||
video.google.com
|
video.google.com
|
||||||
vpn.telegram.org
|
|
||||||
wap.telegram.org
|
|
||||||
webdisk.telegram.org
|
|
||||||
webmail.telegram.org
|
|
||||||
web.telegram.org
|
|
||||||
whm.telegram.org
|
|
||||||
wiki.telegram.org
|
|
||||||
wp.telegram.org
|
|
||||||
ww1.telegram.org
|
|
||||||
www1.telegram.org
|
|
||||||
www1.thepiratebay3.to
|
www1.thepiratebay3.to
|
||||||
www2.telegram.org
|
www2.telegram.org
|
||||||
www.autodesk.com
|
www.autodesk.com
|
||||||
|
|
@ -248,11 +168,6 @@ www.svoboda.org
|
||||||
www.torproject.org
|
www.torproject.org
|
||||||
www.youtube.com
|
www.youtube.com
|
||||||
xda-developers.com
|
xda-developers.com
|
||||||
youtu.be
|
|
||||||
youtube.com
|
|
||||||
youtubeeducation.com
|
|
||||||
youtubekids.com
|
|
||||||
youtube-nocookie.com
|
|
||||||
youtube-ui.l.google.com
|
youtube-ui.l.google.com
|
||||||
yt3.ggpht.com
|
yt3.ggpht.com
|
||||||
yt.be
|
yt.be
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,33 @@
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# ==============================
|
# ==============================
|
||||||
# Конфигурация через переменные
|
# Конфигурация через переменные окружения
|
||||||
# ==============================
|
# ==============================
|
||||||
TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}"
|
TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}"
|
||||||
IPSET_CONF="${IPSET_CONF:-91-ipset-bbrkn.conf}"
|
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-bbrkn.conf}"
|
||||||
RESOLVE_CONF="${RESOLVE_CONF:-92-resolve-bbrkn.conf}"
|
RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
|
||||||
|
|
||||||
DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}"
|
DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}"
|
||||||
|
|
||||||
echo "Deploying configuration files to $TARGET_DIR"
|
echo "Deploying configuration files to $TARGET_DIR"
|
||||||
|
|
||||||
# Бэкап существующих файлов
|
# Проверка существования сгенерированных файлов
|
||||||
if [ -f "$TARGET_DIR/$IPSET_CONF" ]; then
|
if [ ! -f "$IPSET_CONF" ] || [ ! -f "$RESOLVE_CONF" ]; then
|
||||||
cp "$TARGET_DIR/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF.backup.$(date +%Y%m%d-%H%M%S)"
|
echo "Error: one or both config files not found!"
|
||||||
|
exit 1
|
||||||
fi
|
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)"
|
# Бэкап существующих файлов
|
||||||
|
if [ -f "$TARGET_DIR/$(basename "$IPSET_CONF")" ]; then
|
||||||
|
cp "$TARGET_DIR/$(basename "$IPSET_CONF")" "$TARGET_DIR/$(basename "$IPSET_CONF").backup.$(date +%Y%m%d-%H%M%S)"
|
||||||
|
fi
|
||||||
|
if [ -f "$TARGET_DIR/$(basename "$RESOLVE_CONF")" ]; then
|
||||||
|
cp "$TARGET_DIR/$(basename "$RESOLVE_CONF")" "$TARGET_DIR/$(basename "$RESOLVE_CONF").backup.$(date +%Y%m%d-%H%M%S)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Копирование новых файлов
|
# Копирование новых файлов
|
||||||
cp "/tmp/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF"
|
cp "$IPSET_CONF" "$TARGET_DIR/"
|
||||||
cp "/tmp/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF"
|
cp "$RESOLVE_CONF" "$TARGET_DIR/"
|
||||||
|
|
||||||
# Перезапуск контейнера
|
# Перезапуск контейнера
|
||||||
echo "Restarting $DOCKER_CONTAINER container..."
|
echo "Restarting $DOCKER_CONTAINER container..."
|
||||||
|
|
@ -35,5 +41,5 @@ if ! docker ps | grep -q "$DOCKER_CONTAINER"; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Deployment completed successfully"
|
echo "Deployment completed successfully"
|
||||||
DOMAIN_COUNT=$(grep -c '^ipset=' "$TARGET_DIR/$IPSET_CONF" || echo "0")
|
DOMAIN_COUNT=$(grep -c '^ipset=' "$TARGET_DIR/$(basename "$IPSET_CONF")" || echo "0")
|
||||||
echo "Applied configuration for $DOMAIN_COUNT domains"
|
echo "Applied configuration for $DOMAIN_COUNT domains"
|
||||||
|
|
|
||||||
|
|
@ -2,14 +2,14 @@
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
# ==============================
|
# ==============================
|
||||||
# Конфигурация через переменные
|
# Конфигурация через переменные окружения
|
||||||
# ==============================
|
# ==============================
|
||||||
INPUT_FILE="${INPUT_FILE:-domains.txt}"
|
INPUT_FILE="${DOMAINS_FILE:-domains.txt}"
|
||||||
|
|
||||||
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-bbrkn.conf}"
|
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-bbrkn.conf}"
|
||||||
RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
|
RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
|
||||||
|
|
||||||
API_URL="${API_URL:-http://10.100.1.2:3000/domains?domain=}"
|
API_URL="${CHROME_SERVER:-http://127.0.0.1:3000}/domains?domain="
|
||||||
DNS_SERVER="${DNS_SERVER:-8.8.8.8}"
|
DNS_SERVER="${DNS_SERVER:-8.8.8.8}"
|
||||||
|
|
||||||
DRY_RUN=false
|
DRY_RUN=false
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue