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