# VeilGate > Apache-2.0 deception reverse proxy for bot, scanner, and LLM-agent defense. VeilGate scores requests, challenges ambiguous traffic with proof-of-work, and routes hostile automation into believable tarpits. ## Primary URLs - [Website](https://veilgate.dev/) - Product overview and operator positioning. - [Documentation](https://veilgate.dev/docs/README.md) - Technical docs for setup, architecture, configuration, operations, and reference material. - [Glossary](https://veilgate.dev/glossary) - Definitions for VeilGate terms. - [Community rules](https://veilgate.dev/rules) - MIT-licensed detection rules overview. - [GitHub repository](https://github.com/C0oki3s/veilgate) - Apache-2.0 core source. - [Browser client](https://github.com/C0oki3s/veilgate-client) - Automatic browser PoW solving SDK. - [Node client](https://github.com/C0oki3s/veilgate-node) - Node.js SDK for automatic PoW solving and verifier credentials. - [Community rules repository](https://github.com/C0oki3s/veilgate-rules) - MIT-licensed YAML rules. ## Documentation Map - [Getting Started](https://veilgate.dev/docs/getting-started/README.md) - This guide gets VeilGate running locally, then shows how to verify scoring, metrics, challenge behavior, and tarpit behavior. - [VeilGate Docs](https://veilgate.dev/docs/README.md) - This directory keeps the technical documentation needed to run, operate, and contribute to VeilGate. - [VeilGate Documentation](https://veilgate.dev/docs/index.md) - VeilGate is a deception reverse proxy. It receives HTTP traffic, calculates a request score, and then selects one of four decisions: real, observe, challenge, or tarpit. - [Architecture](https://veilgate.dev/docs/architecture/README.md) - VeilGate is a reverse proxy with a scoring layer and a deception backend. - [How VeilGate Processes a Request](https://veilgate.dev/docs/architecture/request-processing.md) - This page describes the runtime flow implemented by cmd/veilgate and internal/proxy. It is similar in purpose to NGINX request processing documentation, but the phases are VeilGate specific: resolve client identity, scor - [Configuration Reference](https://veilgate.dev/docs/config/README.md) - VeilGate has two configuration surfaces: - [capture:](https://veilgate.dev/docs/config/capture.md) - File: /etc/veilgate/veilgate.yaml Section: capture: Reload: restart required. - [challenge:](https://veilgate.dev/docs/config/challenge.md) - File: /etc/veilgate/veilgate.yaml Section: challenge: Reload: restart required. - [detector:](https://veilgate.dev/docs/config/detector.md) - File: /etc/veilgate/veilgate.yaml Section: detector: Reload: restart required. The detector's rule logic (UA substrings, header tiers, timing, toolchain, injection markers) lives in rules/detector.yaml. This page documen - [metrics:](https://veilgate.dev/docs/config/metrics.md) - File: /etc/veilgate/veilgate.yaml Section: metrics: Reload: restart required. - [How Configuration Is Resolved](https://veilgate.dev/docs/config/overrides.md) - This page explains where each VeilGate setting comes from at runtime and which changes require a restart. It follows the same directive oriented style used by the module docs: source, default behavior, code path, and ope - [persist:](https://veilgate.dev/docs/config/persist.md) - File: /etc/veilgate/veilgate.yaml Section: persist: Reload: restart required. - [tarpit:](https://veilgate.dev/docs/config/tarpit.md) - File: /etc/veilgate/veilgate.yaml Section: tarpit: Reload: restart required. - [telemetry:](https://veilgate.dev/docs/config/telemetry.md) - File: /etc/veilgate/veilgate.yaml Section: telemetry: Reload: restart required. - [tls:](https://veilgate.dev/docs/config/tls.md) - File: /etc/veilgate/veilgate.yaml Section: tls: Reload: restart required. - [Top-level keys](https://veilgate.dev/docs/config/top-level.md) - File: /etc/veilgate/veilgate.yaml Reload: restart required (sudo systemctl restart veilgate). - [upload_policies:](https://veilgate.dev/docs/config/upload-policies.md) - File: /etc/veilgate/veilgate.yaml Reload: restart required (sudo systemctl restart veilgate). - [verifiers:](https://veilgate.dev/docs/config/verifiers.md) - File: /etc/veilgate/veilgate.yaml Section: verifiers: Reload: restart required for the block itself; client secrets hot reload on file mtime change. - [Rules Directory Reference](https://veilgate.dev/docs/config/rules/README.md) - This directory documents every YAML file under rules dir. Rule files control detector scoring, TLS labels, tarpit content, challenge presentation, ML settings, dashboard layout, and miner managed learned candidates. - [veilgate-rules](https://veilgate.dev/docs/community-rules-README.md) - Community maintained detection rules for VeilGate, the open source deception reverse proxy. - [rules/challenge.yaml](https://veilgate.dev/docs/config/rules/challenge.md) - File: /.veilgate/rules/challenge.yaml Reload: hot reload ( 500 ms). Presentation layer for the proof of work challenge. The runtime secret + difficulty + TTL are in the proxy config under challenge:; this file controls h - [Rule Customization Guide](https://veilgate.dev/docs/config/rules/customization.md) - The veilgate rules customization guide explains how to customize VeilGate rule files safely. It follows the documentation pattern from DOCSskill.md: directive style fields, code paths, operational notes, and validation c - [rules/dashboard.yaml](https://veilgate.dev/docs/config/rules/dashboard.md) - Syntax: dashboard configuration Default: embedded dashboard.yaml Context: rules dir - [rules/detector.yaml](https://veilgate.dev/docs/config/rules/detector.md) - File: /.veilgate/rules/detector.yaml Reload: hot reload via fsnotify ( 500 ms debounce). The rule definitions for every signal in the rule based scorer. Top level thresholds and trust lists live in detector: on the proxy - [rules/fake_data.yaml](https://veilgate.dev/docs/config/rules/fake-data.md) - Syntax: fake profile data pools Default: embedded fake data.yaml Context: rules dir - [rules/injection_strategy.yaml](https://veilgate.dev/docs/config/rules/injection-strategy.md) - File: /.veilgate/rules/injection strategy.yaml Reload: hot reload ( 500 ms). Two part config: the route table that maps tarpit bound requests to response templates, and the injector knobs that pick how many prompt inject - [rules/ip_reputation.yaml](https://veilgate.dev/docs/config/rules/ip-reputation.md) - File: /.veilgate/rules/ip reputation.yaml Reload: hot reload ( 500 ms). Three things in one file: CIDR based IP categorisation, fleet rotation detection thresholds, and User Agent rotation thresholds. - [rules/learned.yaml and rules/learned/](https://veilgate.dev/docs/config/rules/learned.md) - Syntax: learned rule candidate file (flat) or per feature directory Default: candidates: [] Context: ML miner workflow, community rules distribution - [rules/ml.yaml](https://veilgate.dev/docs/config/rules/ml.md) - File: /.veilgate/rules/ml.yaml Reload: hot reload (changes apply within 500 ms). Hyperparameters for the online ML signal: Naive Bayes + Isolation Forest. Also configures path redaction and the rule mining loop. See mode - [rules/payloads.yaml](https://veilgate.dev/docs/config/rules/payloads.md) - File: /.veilgate/rules/payloads.yaml Reload: hot reload ( 500 ms). Tarpit payload library. Each tarpit response gets a small set of these payloads woven into it. The goal is to make an attacker's LLM consume tokens on fa - [rules/signals.yaml](https://veilgate.dev/docs/config/rules/signals.md) - File: