First commit to bbrkn project #1
4 changed files with 383 additions and 0 deletions
37
.forgejo/workflows/deploy.yaml
Normal file
37
.forgejo/workflows/deploy.yaml
Normal 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
278
domains.txt
Normal 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
|
||||||
40
scripts/deploy-to-gateway.sh
Normal file
40
scripts/deploy-to-gateway.sh
Normal 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"
|
||||||
28
scripts/generate-configs.sh
Normal file
28
scripts/generate-configs.sh
Normal 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)"
|
||||||
Loading…
Add table
Add a link
Reference in a new issue