> ## Documentation Index
> Fetch the complete documentation index at: https://verifyngo.chocolatemoo53.com/llms.txt
> Use this file to discover all available pages before exploring further.

# verifyngo — bot protection for your web service

> verifyngo is a reverse-proxy bot filter. Drop it in front of any web service to block bots and abusive traffic without changing your app.

verifyngo is a reverse-proxy bot filter written in Go. It sits in front of your web service and intercepts every incoming request before it reaches your app. Suspicious visitors are shown a CAPTCHA challenge — powered by [Cap](https://capjs.js.org), [Cloudflare Turnstile](https://developers.cloudflare.com/turnstile/), or [hCaptcha](https://www.hcaptcha.com/) — and only let through once they solve it. You do not need to change a single line of your application code.

> [card] [Introduction](https://verifyngo.chocolatemoo53.com/introduction.md)
>
> Understand how verifyngo works, what the challenge flow looks like, and which providers and rules are available.

> [card] [Quickstart](https://verifyngo.chocolatemoo53.com/quickstart.md)
>
> Get verifyngo running in front of your service in under five minutes.

> [card] [Configuration](https://verifyngo.chocolatemoo53.com/configuration/core.md)
>
> Explore every configuration option — ports, upstreams, CAPTCHA providers, rules, and more.

> [card] [Guides](https://verifyngo.chocolatemoo53.com/guides/docker.md)
>
> Step-by-step guides for deploying verifyngo with Docker, behind nginx, and other common setups.

## Get started in three steps

Follow the steps below to go from zero to a working bot-protection layer in front of your service.

**1. Run the Docker image**

Pull and start the verifyngo container, mapping port `8080` on your host to the proxy listener inside the container.

```bash theme={null}
docker run -d \
  -p 8080:8080 \
  -v $(pwd)/config.json:/app/config.json \
  ghcr.io/verifyngo/verifyngo:latest
```

**2. Edit config.json**

Open `config.json` and set your upstream URL, choose a CAPTCHA provider, and paste in your site key and secret key.

```json theme={null}
{
  "upstream": "http://your-app:3000",
  "captcha": {
    "provider": "turnstile",
    "siteKey": "YOUR_SITE_KEY",
    "secretKey": "YOUR_SECRET_KEY"
  }
}
```

**3. Point your reverse proxy at verifyngo**

Update your existing reverse proxy (nginx, Caddy, a load balancer, etc.) so it forwards traffic to verifyngo on port `8080` instead of directly to your application. verifyngo handles the rest.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.