Your config.json is missing keys added in a newer version. The server is running with safe defaults, but migrating makes those values explicit and persistent.
Key
Action
Reason
Routing
Traffic to these domains goes through scraped proxies.
Only these IPs can connect to the proxy port. Leave blank to allow all. Supports plain IPs and CIDR notation (e.g. 10.0.0.0/8). Changes apply instantly without restart.
Takes effect immediately without restart. DEBUG logs every connection with a [CONN-xxxxx] ID — useful for diagnosing failed connections. Check container logs: docker service logs proxy-server_proxy-router
Host-facing port used in the node setup script (default 18080). Change if you remap the port in docker-compose.yml.
Scrape Sources
One URL per line. Each URL must return a plain-text list of host:port pairs. Leave blank to use the built-in list of 14 sources.
Cap applied before validation. Higher = bigger pool, longer scrape time. Default: 2000.
Session
How long a login session lasts before requiring re-authentication. Default: 5 days. Takes effect on next login.
Pool
Drop proxies slower than this threshold. Set to 0 to keep all passing proxies regardless of speed.
Fallback Proxies
Skip the proxy scraper entirely — only Manual Fallback Proxies below are used. Useful for testing fallback proxies in isolation or running a fully self-managed proxy setup.
These proxies are always kept in the pool and never evicted by health checks or scrape cycles. Use for trusted or self-hosted proxy servers. Format: host:port
Proxy Validation
One URL per line. Each scraped proxy is GET-tested against every URL here. A proxy is excluded from the pool if any URL returns 429 (rate-limited) or 403 (IP blocked). Use domain roots — no secrets or signed payloads needed. Leave blank to skip target validation.
Discord Webhook
Users
Username
Role
Created
Actions
Loading
Block List
Domains matching these patterns are rejected with a 403. Supports exact domains and *.wildcard patterns. One entry per line.
Allow List (overrides block list)
Domains here are always allowed through, even if they match a block pattern. Pre-configured with Discord and Telegram.
Block Response Code
404 makes blocks invisible to clients — they see the same response as a non-existent site.
Quick Add
Block Page
Shown to clients making plain HTTP requests to blocked domains. HTTPS clients only see the status code (no HTML possible before the TLS tunnel is established — this is a fundamental limitation of how HTTPS works).
Any 3-digit code. 469 is custom (non-standard).
Opens a preview in a new tab
Blocked Requests
Last 1000 blocked connections — refreshes automatically every 10 seconds.
Time
Source IP
Container
Source Port
Destination
Port
Protocol
No blocked requests yet.
Webshare.io Integration
Loading status…
Your Webshare API key. Found in Webshare dashboard → API. Leave blank to disable integration.
Comma-separated ISO country codes. Only proxies from these countries will be fetched.
Sync Settings
How often to refresh the proxy list from Webshare (default: 900 = 15 min). Minimum: 60s.
When a Webshare proxy fails our health checks N times in a row, it is automatically replaced via the Webshare API and a fresh proxy is added to the pool.
Number of consecutive failures before a proxy is replaced on Webshare.
Plan & Usage
Not yet synced.
Bandwidth Used
Not yet synced.
Quota
Not yet synced.
IP Authorization (password-free proxy access)
Authorize your server's egress IP so proxies work without username/password credentials.