aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md66
1 files changed, 66 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..b06b0c2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,66 @@
+# Unbound Ads Generator
+
+A tool to generate Unbound DNS server configuration for blocking advertising domains.
+
+## Overview
+
+This program fetches lists of advertising domains from multiple sources and generates a configuration file for the Unbound DNS server to block these domains. It supports multiple input formats and automatically deduplicates domains.
+
+## Usage
+
+```bash
+unbound-ads-generator <url-list> <output-file>
+```
+
+Where:
+- `url-list` is a URL pointing to a text file containing a list of URLs (one per line) that provide domain lists
+- `output-file` is the path where the Unbound configuration will be written
+
+### Input Format
+
+The URL list file should contain URLs (one per line) pointing to domain lists. Lines starting with # are treated as comments.
+
+Example URL list file:
+```
+# Ad blocking lists
+https://raw.githubusercontent.com/PolishFiltersTeam/KADhosts/master/KADhosts.txt
+https://raw.githubusercontent.com/FadeMind/hosts.extras/master/add.Spam/hosts
+```
+
+The domain lists can be in either of these formats:
+```
+# IP and domain format
+0.0.0.0 advertising.example.com
+
+# Plain domain format
+advertising.example.com
+```
+
+### Output Format
+
+The program generates Unbound configuration in this format:
+```
+local-zone: "advertising.example.com" refuse
+local-zone: "another-ad.example.com" refuse
+```
+
+## Features
+
+- Supports multiple domain list formats
+- Automatically deduplicates domains
+- Case-insensitive domain matching
+- Progress logging
+- Comment handling
+- Basic domain validation
+
+## Building
+
+```bash
+go build
+```
+
+## Testing
+
+```bash
+go test -v
+```