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
|
||||
|
||||
# Временные конфиги (куда пишутся generate-configs.sh)
|
||||
IPSET_CONF: 91-ipset-bbrkn.conf
|
||||
RESOLVE_CONF: 92-resolve-bbrkn.conf
|
||||
IPSET_CONF: /tmp/91-ipset-bbrkn.conf
|
||||
RESOLVE_CONF: /tmp/92-resolve-bbrkn.conf
|
||||
|
||||
# DNS-сервер для резолвинга
|
||||
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
|
||||
DEPLOY_SCRIPT := ./scripts/deploy-to-gateway.sh
|
||||
# --- Переменные окружения (с дефолтами для локального запуска) ---
|
||||
IPSET_CONF ?= /tmp/91-ipset-bbrkn.conf
|
||||
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
|
||||
RESOLVE_CONF := 92-resolve-bbrkn.conf
|
||||
# Экспортируем переменные, чтобы они были доступны внутри shell-скриптов
|
||||
export IPSET_CONF RESOLVE_CONF CHROME_SERVER DOMAINS_FILE
|
||||
|
||||
# Генерация конфигов
|
||||
generate:
|
||||
@echo ">>> Генерация конфигурационных файлов из $(DOMAINS)"
|
||||
$(GEN_SCRIPT)
|
||||
# --- Основные цели ---
|
||||
.PHONY: all clean check generate deploy
|
||||
|
||||
# Тестовый прогон (генерация + просмотр кусков файлов, но без деплоя)
|
||||
test: generate
|
||||
@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)) строк)"
|
||||
all: generate deploy
|
||||
@echo "✅ Конфиги успешно сгенерированы и задеплоены"
|
||||
|
||||
# Проверка: только сводка из generate-configs.sh
|
||||
check:
|
||||
@echo ">>> Проверка списка доменов (без генерации файлов)"
|
||||
$(GEN_SCRIPT) --dry-run
|
||||
|
||||
# Деплой на шлюз (Pi-hole)
|
||||
deploy: generate
|
||||
@echo ">>> Деплой на шлюз"
|
||||
$(DEPLOY_SCRIPT)
|
||||
|
||||
# Полный цикл: генерация + деплой
|
||||
all: deploy
|
||||
|
||||
# Уборка временных файлов
|
||||
clean:
|
||||
@echo ">>> Удаление временных файлов"
|
||||
@echo "🧹 Очистка временных файлов"
|
||||
@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.fastlylb.net
|
||||
netify.ai
|
||||
public-family.api.account.microsoft.com
|
||||
family.microsoft.com
|
||||
router-switch.com
|
||||
fast.com
|
||||
hetzner.com
|
||||
|
|
@ -46,24 +44,13 @@ youtubei.googleapis.com
|
|||
ytimg.com
|
||||
yt3.ggpht.com
|
||||
yt4.ggpht.com
|
||||
youtube.com
|
||||
youtubeembeddedplayer.googleapis.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
|
||||
akamai.steamstatic.com
|
||||
api.telegram.org
|
||||
api.themoviedb.org
|
||||
api.twitter.com
|
||||
app.telegram.org
|
||||
artifacts.elastic.co
|
||||
a.telegram.org
|
||||
autoconfig.telegram.org
|
||||
autodiscover.telegram.org
|
||||
booktracker.org
|
||||
bt1.t-ru.org
|
||||
bt2.rutracker.cc
|
||||
|
|
@ -72,99 +59,56 @@ bt3.rutracker.cc
|
|||
bt3.t-ru.org
|
||||
bt4.rutracker.cc
|
||||
bt4.t-ru.org
|
||||
b.telegram.org
|
||||
bt.rutracker.cc
|
||||
bt.t-ru.org
|
||||
canva.com
|
||||
cdn-client.medium.com
|
||||
cdn.cookielaw.org
|
||||
cdn.telegram.org
|
||||
cloud.ibm.com
|
||||
cloud.telegram.org
|
||||
core.telegram.org
|
||||
cpanel.telegram.org
|
||||
cp.telegram.org
|
||||
c.telegram.org
|
||||
currenttime.tv
|
||||
dellcdn.com
|
||||
dell.com
|
||||
demo.telegram.org
|
||||
desktop.telegram.org
|
||||
de.telegram.org
|
||||
dnm.telegram.org
|
||||
desktop.telegram.org
|
||||
download.dell.com
|
||||
download.freebsd.org
|
||||
download.telegram.org
|
||||
doxajournal.ru
|
||||
duckduckgo.com
|
||||
dw.com
|
||||
dyn.telegram.org
|
||||
echo.msk.ru
|
||||
en.telegram.org
|
||||
flibusta.is
|
||||
flora-1.web.telegram.org
|
||||
forum.telegram.org
|
||||
forum.xda-developers.com
|
||||
git.FreeBSD.org
|
||||
googleapis.com
|
||||
googlevideo.com
|
||||
go.telegram.org
|
||||
graph.instagram.com
|
||||
gvt1.com
|
||||
hdclub.org
|
||||
help.telegram.org
|
||||
hide.me
|
||||
home.telegram.org
|
||||
i.dell.com
|
||||
id.trimble.com
|
||||
images.telegram.org
|
||||
image.tmdb.org
|
||||
img.telegram.org
|
||||
inbound.telegram.org
|
||||
info.telegram.org
|
||||
infra-cdn.elastic.co
|
||||
ipic.su
|
||||
ip.telegram.org
|
||||
ipv6.telegram.org
|
||||
i.ytimg.com
|
||||
kinogo.by
|
||||
kinozal.me
|
||||
kinozal.tv
|
||||
linkedin.com
|
||||
linuxserver.io
|
||||
liveupdate.telegram.org
|
||||
login.sketchup.co
|
||||
login.telegram.org
|
||||
lostfilm.tv
|
||||
mdm.telegram.org
|
||||
media.telegram.org
|
||||
medium.com
|
||||
meduza.io
|
||||
miped.ru
|
||||
ml.telegram.org
|
||||
mobile.telegram.org
|
||||
mods.linuxserver.io
|
||||
mongo.telegram.org
|
||||
m.telegram.org
|
||||
mysql.telegram.org
|
||||
newstudio.tv
|
||||
nnm-club.me
|
||||
nnmclub.to
|
||||
nyaa.si
|
||||
office.telegram.org
|
||||
old.telegram.org
|
||||
openvswitch.org
|
||||
outlook.telegram.org
|
||||
pbs.twimg.com
|
||||
pluto-1.web.telegram.org
|
||||
pluto.web.telegram.org
|
||||
poligon.media
|
||||
pop3.telegram.org
|
||||
pornhub.com
|
||||
portal.telegram.org
|
||||
rarbg.to
|
||||
remote.telegram.org
|
||||
ru.linkedin.com
|
||||
rutor.info
|
||||
rutor.rg
|
||||
|
|
@ -173,20 +117,11 @@ rutracker.org
|
|||
rutrk.org
|
||||
scontent-hel3-1.cdninstagram.com
|
||||
seasonvar.ru
|
||||
secure.telegram.org
|
||||
server1.telegram.org
|
||||
server.telegram.org
|
||||
shop.telegram.org
|
||||
sip.telegram.org
|
||||
sketchup.com
|
||||
snap.licdn.com
|
||||
sonic-net.github.io
|
||||
ssl.telegram.org
|
||||
sslvpn.telegram.org
|
||||
stage.telegram.org
|
||||
static.cdninstagram.com
|
||||
static.rutracker.cc
|
||||
static.telegram.org
|
||||
static.t-ru.org
|
||||
steamstatic.com
|
||||
store.akamai.steamstatic.com
|
||||
|
|
@ -209,22 +144,7 @@ tracker.pirateparty.gr
|
|||
t-ru.org
|
||||
tvrain.ru
|
||||
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
|
||||
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
|
||||
www2.telegram.org
|
||||
www.autodesk.com
|
||||
|
|
@ -248,11 +168,6 @@ www.svoboda.org
|
|||
www.torproject.org
|
||||
www.youtube.com
|
||||
xda-developers.com
|
||||
youtu.be
|
||||
youtube.com
|
||||
youtubeeducation.com
|
||||
youtubekids.com
|
||||
youtube-nocookie.com
|
||||
youtube-ui.l.google.com
|
||||
yt3.ggpht.com
|
||||
yt.be
|
||||
|
|
|
|||
|
|
@ -2,27 +2,33 @@
|
|||
set -euo pipefail
|
||||
|
||||
# ==============================
|
||||
# Конфигурация через переменные
|
||||
# Конфигурация через переменные окружения
|
||||
# ==============================
|
||||
TARGET_DIR="${TARGET_DIR:-/opt/appdata/pihole/etc/dnsmasq.d}"
|
||||
IPSET_CONF="${IPSET_CONF:-91-ipset-bbrkn.conf}"
|
||||
RESOLVE_CONF="${RESOLVE_CONF:-92-resolve-bbrkn.conf}"
|
||||
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-bbrkn.conf}"
|
||||
RESOLVE_CONF="${RESOLVE_CONF:-/tmp/92-resolve-bbrkn.conf}"
|
||||
|
||||
DOCKER_CONTAINER="${DOCKER_CONTAINER:-pihole}"
|
||||
|
||||
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)"
|
||||
# Проверка существования сгенерированных файлов
|
||||
if [ ! -f "$IPSET_CONF" ] || [ ! -f "$RESOLVE_CONF" ]; then
|
||||
echo "Error: one or both config files not found!"
|
||||
exit 1
|
||||
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
|
||||
|
||||
# Копирование новых файлов
|
||||
cp "/tmp/$IPSET_CONF" "$TARGET_DIR/$IPSET_CONF"
|
||||
cp "/tmp/$RESOLVE_CONF" "$TARGET_DIR/$RESOLVE_CONF"
|
||||
cp "$IPSET_CONF" "$TARGET_DIR/"
|
||||
cp "$RESOLVE_CONF" "$TARGET_DIR/"
|
||||
|
||||
# Перезапуск контейнера
|
||||
echo "Restarting $DOCKER_CONTAINER container..."
|
||||
|
|
@ -35,5 +41,5 @@ if ! docker ps | grep -q "$DOCKER_CONTAINER"; then
|
|||
fi
|
||||
|
||||
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"
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@
|
|||
set -euo pipefail
|
||||
|
||||
# ==============================
|
||||
# Конфигурация через переменные
|
||||
# Конфигурация через переменные окружения
|
||||
# ==============================
|
||||
INPUT_FILE="${INPUT_FILE:-domains.txt}"
|
||||
INPUT_FILE="${DOMAINS_FILE:-domains.txt}"
|
||||
|
||||
IPSET_CONF="${IPSET_CONF:-/tmp/91-ipset-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}"
|
||||
|
||||
DRY_RUN=false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue