Merge pull request 'First commit to bbrkn project' (#1) from initial into main
Some checks failed
Deploy DNS Configuration / deploy (push) Failing after 6s

Reviewed-on: #1
This commit is contained in:
goodvin 2025-09-09 21:23:45 +03:00
commit cad4842290
4 changed files with 383 additions and 0 deletions

View file

@ -0,0 +1,37 @@
name: Deploy DNS Configuration
on:
push:
branches: [ main ]
paths: [ 'domains.txt' ]
jobs:
deploy:
runs-on: self-hosted # Используем self-hosted runner на шлюзе
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Validate domains file
run: |
if [ ! -f domains.txt ]; then
echo "Error: domains.txt not found"
exit 1
fi
# Проверка синтаксиса доменов
grep -v '^#' domains.txt | grep -v '^$' | while read domain; do
if ! echo "$domain" | grep -qE '^[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'; then
echo "Error: Invalid domain format: $domain"
exit 1
fi
done
- name: Generate dnsmasq configuration files
run: |
chmod +x scripts/generate-configs.sh
./scripts/generate-configs.sh
- name: Deploy to gateway
run: |
chmod +x scripts/deploy-to-gateway.sh
./scripts/deploy-to-gateway.sh

278
domains.txt Normal file
View file

@ -0,0 +1,278 @@
auth.openai.com
cdn.oaistatic.com
*oaistatic.com
ab.chatgpt.com
realtime.chatgpt.com
ws.chatgpt.com
*chatgpt.com
chatgpt.com
*byspotify.com
*pscdn.co
*scdn.co
*spoti.fi
*spotify-everywhere.com
*spotify.com
*spotify.design
*spotifycdn.com
*spotifycdn.net
*spotifycharts.com
*spotifycodes.com
*spotifyforbrands.com
*spotifyjobs.com
*spotify.link
*audio-ak-spotify-com.akamaized.net
*audio4-ak-spotify-com.akamaized.net
*cdn-spotify-experiments.conductrics.com
*heads-ak-spotify-com.akamaized.net
*heads4-ak-spotify-com.akamaized.net
*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
*.fast.com
*hetzner.com
*.ntc.party
*ntc.party
*spotify.com
*scdn.co
*spotifycdn.com
*spotilocal.com
*spotifycdn.net
*pscdn.co
*tospotify.com
googlevideo.com
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
admin.telegram.org
akamai.steamstatic.com
api.telegram.org
api.themoviedb.org
api.twitter.com
app.telegram.org
artifacts.elastic.co
a.telegram.org
aurora-1.web.telegram.org
aurora.web.telegram.org
autoconfig.telegram.org
.autodesk.com
.autodesk.ru
autodiscover.telegram.org
bbs.telegram.org
beta.telegram.org
blog.telegram.org
booktracker.org
bt1.t-ru.org
bt2.rutracker.cc
bt2.t-ru.org
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
cname.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
_domainkey.desktop.telegram.org
download.dell.com
download.freebsd.org
download.telegram.org
doxajournal.ru
duckduckgo.com
dw.com
dyn.telegram.org
echo.msk.ru
e-lactancia.org
email.telegram.org
en.telegram.org
flibusta.is
flora-1.web.telegram.org
forum.telegram.org
forum.xda-developers.com
git.FreeBSD.org
googleapis.com
.googlevideo.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
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
.rutracker.cc
rutracker.cc
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
store.telegram.org
support.dell.com
tayga.info
tfile1.cc
thepiratebay.se
ton.local.twitter.com
torrent4me.com
tr2.tor2me.info
tr2.tor4me.info
tr2.torrent4me.com
tracker.coppersurfer.tk
tracker.cyberia.is
tracker.internetwarriors.net
tracker.leechers-paradise.org
tracker.opentrackr.org
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
www.autodesk.ru
www.bbc.com
www.bitdefender.com
www.canva.com
www.currenttime.tv
www.dellcdn.com
www.dell.com
www.desktop.telegram.org
www.dw.com
www.grepular.com
www.instagram.com
www.intel.com
www.linkedin.com
www.me.telegram.org
www.openvswitch.org
www.sketchup.com
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
.ytimg.com
ytimg.com
zona.media

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)"