# verifyngo ## Docs - [verifyngo](https://verifyngo.mintlify.app/introduction.md): Learn what verifyngo does, how the CAPTCHA challenge flow works, and what you need to configure to protect your web service from bots. - [verifyngo quickstart: Docker setup and config guide](https://verifyngo.mintlify.app/quickstart.md): Run verifyngo as a reverse-proxy bot filter in front of your web service using Docker and a config.json file. No changes to your app are required. - [Core configuration fields for verifyngo's config.json file](https://verifyngo.mintlify.app/configuration/core.md): Configure listen address, upstream URL, cookie settings, trusted proxies, whitelist, default action, and path bypass rules in config.json. - [CAPTCHA provider configuration for verifyngo (config.json)](https://verifyngo.mintlify.app/configuration/captcha-providers.md): Set up Cap (self-hosted), Cloudflare Turnstile, or hCaptcha as your CAPTCHA provider. Configure multiple providers so visitors can switch between them. - [Traffic rules: allow, challenge, or deny incoming requests](https://verifyngo.mintlify.app/configuration/rules.md): Define rules in config.json, a plain-text file, or a YAML policy to allow, challenge, or deny traffic based on path, user agent, or IP address. - [Define advanced traffic rules with a YAML policy file](https://verifyngo.mintlify.app/configuration/policy.md): Use a YAML policy file to define named network groups from ASNs, CIDRs, or remote URLs and write flexible, expressive per-rule conditions. - [Progressive challenge mode: trust first, challenge later](https://verifyngo.mintlify.app/configuration/progressive.md): Enable progressive mode to let new visitors browse freely for a configurable number of requests before a CAPTCHA challenge appears. - [Persist ban and walk-away state across process restarts](https://verifyngo.mintlify.app/configuration/persistence.md): Configure verifyngo to store ban lists and walk-away counters in memory, a JSON file, or Redis so state survives restarts and scales across instances. - [Customise the verifyngo challenge page look and feel](https://verifyngo.mintlify.app/configuration/branding.md): Change the logo, colours, font, and the text shown on the CAPTCHA challenge page so it matches your website brand and feels familiar. - [Run verifyngo in Docker with docker run or Docker Compose](https://verifyngo.mintlify.app/guides/docker.md): Run verifyngo in Docker using docker run or Docker Compose. Covers config file mounting, persistent state storage, and static file serving. - [Put verifyngo behind a reverse proxy: Nginx, Caddy, Traefik](https://verifyngo.mintlify.app/guides/reverse-proxy.md): Set up Nginx, Caddy, or Traefik to send all traffic to verifyngo first, so bot filtering runs before requests reach your upstream app. - [Filter traffic by ASN with whois or GeoLite2 lookups](https://verifyngo.mintlify.app/guides/asn-lookup.md): Use RADb whois lookups or a MaxMind GeoLite2 ASN database to expand ASN numbers into IP prefixes that policy rules can match against. - [Report abusive IPs to AbuseIPDB automatically with verifyngo](https://verifyngo.mintlify.app/guides/abuseipdb.md): Set up verifyngo to report IP addresses to AbuseIPDB automatically once they reach a configurable ban count, with a 15-minute cooldown. - [verifyngo config.json: all fields, types, and defaults](https://verifyngo.mintlify.app/reference/config-options.md): Every field accepted by verifyngo's config.json, with types, default values, and plain-English descriptions of what each setting does. - [Troubleshooting verifyngo: fix common setup problems](https://verifyngo.mintlify.app/reference/troubleshooting.md): Step-by-step fixes for common verifyngo problems including wrong IP detection, CAPTCHA verification failures, rules not reloading, and ban issues.