Files
ppf/config.ini.sample
Username 9b44043237
All checks were successful
CI / syntax-check (push) Successful in 3s
CI / memory-leak-check (push) Successful in 11s
add ssl_first: try SSL handshake before secondary check
When ssl_first=1 (default), proxy validation first attempts an SSL
handshake. If it fails, falls back to the configured secondary check
(head, judges, or irc). This separates SSL capability detection from
basic connectivity testing.

New config options:
- ssl_first: enable SSL-first pattern (default: 1)
- checktype: secondary check type (head, judges, irc)
2025-12-28 14:56:46 +01:00

164 lines
3.2 KiB
Plaintext

# PPF Configuration
# Copy this file to config.ini and adjust as needed.
[common]
# Comma-separated list of Tor SOCKS5 proxy addresses
tor_hosts = 127.0.0.1:9050
# Network timeouts (seconds)
timeout_connect = 10
timeout_read = 15
# Enable cProfile profiling (writes to data/profile.stats)
profiling = 0
[watchd]
# Proxy validation daemon settings
# Database file for proxy storage
database = proxies.sqlite
# SSL-first mode: try SSL handshake first, fallback to secondary check on failure
ssl_first = 1
# Secondary check type (used when ssl_first fails, or as primary when ssl_first=0)
# judges - HTTP judge servers that echo back request headers
# irc - IRC server connection test (port 6667)
# head - HTTP HEAD request test (port 80)
checktype = head
# Thread configuration
threads = 50
min_threads = 5
# Timeout for proxy test connections (seconds)
timeout = 15
# Adaptive timeout: extra time per failure (seconds)
timeout_fail_inc = 1.5
timeout_fail_max = 15
# Number of failures before proxy marked dead
max_fail = 5
# Check intervals (seconds)
checktime = 1800
perfail_checktime = 3600
# Minimum success rate to accept results (percentage)
outage_threshold = 4.0
# Batch size for database writes
submit_after = 200
# Days before removing dead proxies
stale_days = 30
# Seconds between stats reports (0 = disabled)
stats_interval = 300
# Re-test old (previously dead) proxies
oldies = 0
oldies_checktime = 43200
oldies_multi = 10
# Server list file for IRC/head checks
source_file = servers.txt
# Enable Tor circuit health monitoring
tor_safeguard = 1
# Thread scaling
scale_cooldown = 10
scale_threshold = 10.0
# Debug output
debug = 0
[ppf]
# URL harvester settings
# Database file (usually same as watchd)
database = proxies.sqlite
# Number of URL fetcher threads
threads = 3
# Timeout for URL fetches (seconds)
timeout = 15
# HTTP connection retries
http_retries = 1
# Check intervals for URLs (seconds)
checktime = 3600
perfail_checktime = 3600
# Number of failures before URL marked dead
max_fail = 5
# Only extract URLs from same domain
extract_samedomain = 0
# Max age in days for proxy list URLs
# URLs older than this that never produced proxies are skipped
list_max_age_days = 7
# Debug output
debug = 0
[scraper]
# Search engine scraper settings
# Enable scraper
enabled = 1
# Number of scraper threads
threads = 3
# Search engines: searx, duckduckgo, startpage, brave, ecosia,
# mojeek, qwant, yandex, github, gitlab, codeberg, gitea
engines = searx,duckduckgo,github
# Query mode: p=proxies, s=search, w=websites (combine: psw)
query = psw
# Max pages to fetch per query
max_pages = 5
# Rate limiting: backoff delays (seconds)
backoff_base = 30
backoff_max = 3600
fail_threshold = 2
# LibreTranslate for multilingual queries (optional)
libretranslate_enabled = 0
libretranslate_url = https://lt.mymx.me/translate
# Debug output
debug = 0
[httpd]
# Web dashboard settings
# Enable web dashboard
enabled = 1
# Listen address (use 0.0.0.0 for all interfaces)
listenip = 127.0.0.1
# Listen port
port = 8081
[worker]
# Distributed worker settings (for --worker mode)
# Proxies per work batch
batch_size = 100
# Heartbeat interval in seconds
heartbeat = 60
# Seconds before unclaimed work is released
claim_timeout = 300