Defaults (self_hosted)
requireDomainVerification— always false. Env and JSON cannot turn it on. You do not need DNS TXT or a well-known file.allowPrivateNetworks— false until you enable staging/VPN targets- Allow/block domain lists — empty (no extra restriction beyond blocklist)
JSON policy
{
"requireDomainVerification": false,
"allowPrivateNetworks": true,
"allowedDomains": ["*.example.com", "staging.internal"],
"blockedDomains": ["*.bank.example"]
}Environment variables
SCOUT_SECURITY_POLICY— JSON for private networks and allow/block lists.requireDomainVerificationis ignored (always off).SCOUT_REQUIRE_DOMAIN_VERIFY— ignored inself_hosted(always off)SCOUT_ALLOW_PRIVATE_NETWORKS=true|falseSCOUT_ALLOWED_DOMAINS— comma-separated,*.example.comwildcardsSCOUT_BLOCKED_DOMAINS— comma-separated blocklistSCOUT_STEALTH_RUNTIME_ENABLED=true|false— opt in/out of the dedicated stealth runtime
Stealth runtime on self-hosted
stealth: true is allowed without DNS verify in self_hosted. The runtime uses profile chromium-stealth-init-v2 (full Chromium, automation flags stripped, fingerprint init script). Pair with solve_captcha: true so Cloudflare JS / Turnstile checkbox on your own site can complete. Check GET /health → stealth_runtime before enabling in production. If you disable the runtime via SCOUT_STEALTH_RUNTIME_ENABLED=false, Scout returns a clear infrastructure error instead of silently downgrading. Abuse protection
Even with relaxed domain rules, the annual license is required and heartbeats are tied to your Macrocontent account. Revoke compromised keys from the console.