diff --git a/Dockerfile b/Dockerfile index d981eef..7042e28 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,17 @@ FROM fholzer/nginx-brotli:latest RUN rm -rf /usr/share/nginx/html/* +COPY ./ipsets /usr/share/nginx/html/ipsets COPY ./lists /usr/share/nginx/html/lists +COPY ./scripts /usr/share/nginx/html/scripts + COPY nginx.conf /etc/nginx/conf.d/default.conf +RUN find /usr/share/nginx/html/lists -name "*.txt" -exec sed -i 's/#.*//g; /^$/d' {} + + +RUN dos2unix /usr/share/nginx/html/scripts/*.sh && \ + chmod +x /usr/share/nginx/html/scripts/*.sh EXPOSE 80 + +ENTRYPOINT ["/usr/share/nginx/html/scripts/entrypoint.sh"] CMD ["-g", "daemon off;"] diff --git a/lists/akamai.txt b/ipsets/akamai.txt similarity index 100% rename from lists/akamai.txt rename to ipsets/akamai.txt diff --git a/lists/cloudflare.txt b/ipsets/cloudflare.txt similarity index 100% rename from lists/cloudflare.txt rename to ipsets/cloudflare.txt diff --git a/lists/7tv.txt b/lists/7tv.txt new file mode 100644 index 0000000..e8ebf57 --- /dev/null +++ b/lists/7tv.txt @@ -0,0 +1 @@ +7tv.app diff --git a/lists/anime-365.txt b/lists/anime-365.txt new file mode 100644 index 0000000..ae7ccd1 --- /dev/null +++ b/lists/anime-365.txt @@ -0,0 +1,3 @@ +anime-365.ru +b-cdn.ru +b-cdn.net diff --git a/lists/facebook.txt b/lists/facebook.txt new file mode 100644 index 0000000..ea7432d --- /dev/null +++ b/lists/facebook.txt @@ -0,0 +1,4 @@ +facebook.com +fbsbx.com +fb.com +fbcdn.net diff --git a/lists/gemini.txt b/lists/gemini.txt new file mode 100644 index 0000000..05e01ec --- /dev/null +++ b/lists/gemini.txt @@ -0,0 +1 @@ +gemini.google.com diff --git a/lists/grok.txt b/lists/grok.txt new file mode 100644 index 0000000..36867b4 --- /dev/null +++ b/lists/grok.txt @@ -0,0 +1,2 @@ +grok.com +x.ai diff --git a/lists/instagram.txt b/lists/instagram.txt new file mode 100644 index 0000000..e9f0ed2 --- /dev/null +++ b/lists/instagram.txt @@ -0,0 +1,2 @@ +instagram.com +cdninstagram.com diff --git a/lists/ntc.txt b/lists/ntc.txt new file mode 100644 index 0000000..f699561 --- /dev/null +++ b/lists/ntc.txt @@ -0,0 +1 @@ +ntc.party diff --git a/lists/openai.txt b/lists/openai.txt new file mode 100644 index 0000000..e1679b8 --- /dev/null +++ b/lists/openai.txt @@ -0,0 +1,6 @@ +chatgpt.com +openai.com +oaistatic.com +sora.com +auth0.com +oaiusercontent.com diff --git a/lists/rutor.txt b/lists/rutor.txt new file mode 100644 index 0000000..612da68 --- /dev/null +++ b/lists/rutor.txt @@ -0,0 +1 @@ +rutor.info diff --git a/lists/shikimori.txt b/lists/shikimori.txt new file mode 100644 index 0000000..c4ec9b6 --- /dev/null +++ b/lists/shikimori.txt @@ -0,0 +1,2 @@ +shikimori.one +shikimori.io diff --git a/lists/spotify.txt b/lists/spotify.txt new file mode 100644 index 0000000..243335c --- /dev/null +++ b/lists/spotify.txt @@ -0,0 +1,3 @@ +spotify.com +spotifycdn.com +scdn.co diff --git a/lists/telegram.txt b/lists/telegram.txt new file mode 100644 index 0000000..d66a6a1 --- /dev/null +++ b/lists/telegram.txt @@ -0,0 +1,7 @@ +telegram.org +telegram.dog +telegram.me +telegram.space +telesco.pe +tg.dev +t.me diff --git a/lists/twitch.txt b/lists/twitch.txt new file mode 100644 index 0000000..d8fd1ad --- /dev/null +++ b/lists/twitch.txt @@ -0,0 +1,2 @@ +usher.ttvnw.net +gql.twitch.tv diff --git a/nginx.conf b/nginx.conf index 2385a34..0f85582 100644 --- a/nginx.conf +++ b/nginx.conf @@ -2,12 +2,17 @@ server { listen 80; root /usr/share/nginx/html; - location / { - autoindex on; - try_files $uri $uri/ @lists; + default_type text/plain; + + location /ipsets/ { + try_files $uri $uri.txt =404; } - location @lists { - try_files /lists$uri.txt =404; + location /lists/ { + try_files $uri $uri.txt =404; + } + + location /users/ { + try_files $uri $uri.txt =404; } } diff --git a/scripts/all.sh b/scripts/all.sh new file mode 100644 index 0000000..fefec9a --- /dev/null +++ b/scripts/all.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +SOURCE_DIR="/usr/share/nginx/html/lists" +OUTPUT_FILE="$SOURCE_DIR/all.txt" +TEMP_FILE=$(mktemp) + +find "$SOURCE_DIR" -maxdepth 1 -name "*.txt" ! -name "all.txt" -exec awk 1 {} + > "$TEMP_FILE" + +sed 's/#.*//g' "$TEMP_FILE" | sed 's/\r//' | grep -v '^$' | sort -u > "$OUTPUT_FILE" + +# Cleanup +rm "$TEMP_FILE" diff --git a/scripts/entrypoint.sh b/scripts/entrypoint.sh new file mode 100644 index 0000000..8d6dbfe --- /dev/null +++ b/scripts/entrypoint.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +SCRIPT_DIR="/usr/share/nginx/html/scripts" + +for f in "$SCRIPT_DIR"/*.sh; do + if [ "$f" = "$SCRIPT_DIR/entrypoint.sh" ]; then + continue + fi + + if [ -x "$f" ]; then + echo "=> Executing $f" + "$f" + else + echo "=> Skipping $f (not executable)" + fi +done + +exec nginx "$@"