
Krawl एक अनुकूलन योग्य, हल्का, क्लाउड-नेटिव वेब धोखाधड़ी सर्वर और एंटी-क्रॉलर है जो यथार्थवादी, यादृच्छिक रूप से उत्पन्न डिकॉय डेटा और एआई-जनरेटेड HTML टेम्पलेट्स का उपयोग करके आसानी से शोषण योग्य कमजोरियों वाले नकली वेब एप्लिकेशन बनाता है।
<h1 align="center">Krawl</h1>
<h3 align="center">
<a name="readme-top"></a>
<img
src="https://raw.githubusercontent.com/blessedrebus/krawl/HEAD/img/krawl-svg.svg"
height="250"
>
</h3>
<div align="center">
<p align="center">
एक आधुनिक, अनुकूलन योग्य वेब हनीपॉट सर्वर जिसे भ्रामक वेब पेजों, नकली क्रेडेंशियल्स और कैनरी टोकन के माध्यम से हमलावरों और वेब क्रॉलरों की दुर्भावनापूर्ण गतिविधि का पता लगाने और ट्रैक करने के लिए डिज़ाइन किया गया है।
</p>
<div align="center">
<a href="https://github.com/blessedrebus/krawl/blob/main/LICENSE">
<img src="https://img.shields.io/github/license/blessedrebus/krawl" alt="License">
</a>
<a href="https://github.com/blessedrebus/krawl/releases">
<img src="https://img.shields.io/github/v/release/blessedrebus/krawl" alt="Release">
</a>
</div>
<div align="center">
<a href="https://ghcr.io/blessedrebus/krawl">
<img src="https://img.shields.io/badge/ghcr.io-krawl-blue" alt="GitHub Container Registry">
</a>
<a href="https://kubernetes.io/">
<img src="https://img.shields.io/badge/kubernetes-ready-326CE5?logo=kubernetes&logoColor=white" alt="Kubernetes">
</a>
<a href="https://github.com/BlessedRebuS/Krawl/pkgs/container/krawl-chart">
<img src="https://img.shields.io/badge/helm-chart-0F1689?logo=helm&logoColor=white" alt="Helm Chart">
</a>
</div>
</div>
## विषय-सूची
- [डेमो](#demo)
- [Krawl क्या है?](#what-is-krawl)
- [Krawl डैशबोर्ड](#krawl-dashboard)
- [परिनियोजन मोड](#deployment-modes)
- [Krawl बैनलिस्ट](#krawl-banlist)
- [क्विकस्टार्ट](#quickstart)
- [Docker Run](#docker-run)
- [Docker Compose](#docker-compose)
- [Kubernetes](#kubernetes)
- [Uvicorn (Python)](#uvicorn-python)
- [कॉन्फ़िगरेशन](#configuration)
- [config.yaml](#configuration-via-configyaml)
- [पर्यावरण चर](#configuration-via-environmental-variables)
- [दुर्भावनापूर्ण IP को बैन करें](#use-krawl-to-ban-malicious-ips)
- [IP प्रतिष्ठा](#ip-reputation)
- [रिवर्स प्रॉक्सी या CDN के पीछे चलाना](#running-behind-a-reverse-proxy-or-cdn)
- [मेट्रिक्स और निगरानी](#metrics--monitoring)
- [अतिरिक्त दस्तावेज़ीकरण](#additional-documentation)
- [AI का उपयोग करके धोखा](#ai-generated-deception-pages)
- [योगदान](#contributing)
## डेमो
सुझाव: अतिरिक्त मज़े के लिए `robots.txt` पथों को क्रॉल करें
### Krawl URL: [http://demo.krawlme.com](http://demo.krawlme.com)
### डैशबोर्ड देखें [http://demo.krawlme.com/das_dashboard](http://demo.krawlme.com/das_dashboard)
## Krawl क्या है?
**Krawl** एक क्लाउड-नेटिव धोखा सर्वर है जिसे दुर्भावनापूर्ण हमलावरों, वेब क्रॉलरों और स्वचालित स्कैनरों का पता लगाने, विलंबित करने और विश्लेषण करने के लिए डिज़ाइन किया गया है।
यह संदिग्ध गतिविधि को आकर्षित करने और पहचानने के लिए एडमिन पैनल, कॉन्फ़िगरेशन फ़ाइलों और उजागर नकली क्रेडेंशियल्स जैसे आसान लक्ष्यों से भरे यथार्थवादी नकली वेब एप्लिकेशन बनाता है।

हमलावर संसाधनों को बर्बाद करके, Krawl दुर्भावनापूर्ण व्यवहार को वैध क्रॉलरों से स्पष्ट रूप से अलग करने में मदद करता है।
इसमें शामिल हैं:
- **[AI जनित धोखा पेज](https://github.com/blessedrebus/krawl/blob/main/docs/ai_generation.md)**: **हमलावरों को आपकी नकली कमजोर हमला सतह उत्पन्न करने में मदद करने दें**
- **स्पाइडर ट्रैप पेज**: [spidertrap प्रोजेक्ट](https://github.com/adhdproject/spidertrap) पर आधारित क्रॉलर संसाधनों को बर्बाद करने के लिए अनंत यादृच्छिक लिंक
- **नकली लॉगिन पेज**: WordPress, phpMyAdmin, एडमिन पैनल
- **हनीपॉट पथ**: स्कैनरों को पकड़ने के लिए robots.txt में विज्ञापित
- **नकली क्रेडेंशियल्स**: यथार्थवादी दिखने वाले उपयोगकर्ता नाम, पासवर्ड, API कुंजियाँ
- **[कैनरी टोकन](https://github.com/blessedrebus/krawl/blob/main/docs/canary-token.md) एकीकरण**: बाहरी अलर्ट ट्रिगरिंग
- **यादृच्छिक सर्वर हेडर**: सर्वर हेडर और संस्करण पर आधारित हमलों को भ्रमित करें
- **रीयल-टाइम डैशबोर्ड**: संदिग्ध गतिविधि की निगरानी करें
- **अनुकूलन योग्य वर्डलिस्ट**: आसान JSON-आधारित कॉन्फ़िगरेशन
- **यादृच्छिक त्रुटि इंजेक्शन**: वास्तविक सर्वर व्यवहार की नकल करें
आप रिवर्स प्रॉक्सी का उपयोग करके अपनी अन्य सेवाओं के साथ Krawl को आसानी से उजागर कर सकते हैं ताकि उन्हें वेब क्रॉलरों और दुर्भावनापूर्ण उपयोगकर्ताओं से बचाया जा सके। अधिक जानकारी के लिए, [रिवर्स प्रॉक्सी दस्तावेज़ीकरण](https://github.com/blessedrebus/krawl/blob/main/docs/reverse-proxy.md) देखें।

## Krawl डैशबोर्ड
Krawl एक व्यापक डैशबोर्ड प्रदान करता है, जो स्टार्टअप पर उत्पन्न एक **यादृच्छिक गुप्त पथ** पर या `KRAWL_DASHBOARD_SECRET_PATH` के माध्यम से कॉन्फ़िगर किए गए **कस्टम पथ** पर सुलभ है। यह डैशबोर्ड को आपके हनीपॉट को स्कैन करने वाले हमलावरों से छिपाकर रखता है।
डैशबोर्ड छह टैब में व्यवस्थित है:
- **अवलोकन**: हमला गतिविधि का उच्च-स्तरीय दृश्य: IP मूल स्थानों का इंटरैक्टिव मानचित्र, हाल के संदिग्ध अनुरोध, और शीर्ष IP, User-Agents, और पथ।

- **हमले**: कैप्चर किए गए क्रेडेंशियल्स, हनीपॉट ट्रिगर्स, और पता लगाए गए हमला प्रकारों (SQLi, XSS, पथ ट्रैवर्सल, आदि) का विस्तृत विवरण चार्ट और तालिकाओं के साथ।

- **खतरे**: TLSH फ़ज़ी हैश द्वारा अभियानों में समूहीकृत पेलोड, ताकि एक वेबशेल और उसके संपादित रूपांतर असंबंधित हिट के बजाय एक अभियान के रूप में पढ़े जाएँ, प्रत्येक कैप्चर की गई फ़ाइल की अनुक्रमणिका के साथ।
- **IP अंतर्दृष्टि**: चयनित IP का गहन फोरेंसिक दृश्य: भू-स्थान, ISP/ASN जानकारी, प्रतिष्ठा फ़्लैग, व्यवहार समयरेखा, हमला प्रकार वितरण, रेफरर इतिहास, कैप्चर की गई फ़ाइलें और क्रेडेंशियल्स, और पूर्ण पहुँच इतिहास।

इसके अतिरिक्त, डैशबोर्ड पासवर्ड से प्रमाणित करने के बाद, संरक्षित टैब उपलब्ध हो जाते हैं:
- **ट्रैक किए गए IP**: उन IP पतों की वॉचलिस्ट बनाए रखें जिन्हें आप समय के साथ निगरानी करना चाहते हैं।
- **IP बैनलिस्ट**: IP बैन प्रबंधित करें, पता लगाए गए हमलावरों को देखें, और बैनलिस्ट को raw या IPTables प्रारूप में निर्यात करें।
- **टाइम्ड आउट IP**: वर्तमान में टारपिट में रखे गए IP की समीक्षा करें, और जो नहीं होने चाहिए उन्हें छूट दें।
- **धोखा**: AI जनित पेज प्रबंधित करें, उन्हें निर्यात करें या नए आयात करें।
- **वेबहुक**: CloudFlare और अन्य फ़ायरवॉल को बैन अग्रेषित करें।
हेडर आइकन API दस्तावेज़, बैनलिस्ट निर्यात, और एक सेटिंग्स पैनल खोलते हैं जो चल रहे कॉन्फ़िगरेशन और मांग पर निर्धारित कार्यों को चलाने के लिए एक रखरखाव पृष्ठ दिखाता है।
अधिक जानकारी के लिए, [डैशबोर्ड दस्तावेज़ीकरण](https://github.com/blessedrebus/krawl/blob/main/docs/dashboard.md) देखें।
## परिनियोजन मोड
Krawl दो परिनियोजन मोड का समर्थन करता है, जो `config.yaml` में `mode` सेटिंग या `KRAWL_MODE` पर्यावरण चर द्वारा नियंत्रित होते हैं।
| | Standalone | Scalable |
|---|---|---|
| **डेटाबेस** | SQLite (WAL मोड) | PostgreSQL |
| **कैश** | इन-मेमोरी Python dict | Redis (मल्टी-टियर TTL) |
| **रेप्लिका** | 1 (एकल इंस्टेंस) | 1+ (क्षैतिज स्केलिंग) |
| **बाहरी निर्भरताएँ** | कोई नहीं | PostgreSQL + Redis |
| **इसके लिए सर्वोत्तम** | डेव, होमलैब्स, <500k अनुरोध | उत्पादन, HA, >500k अनुरोध |
**Standalone**: कम अनुरोध संख्या वाले विकास वातावरण या होमलैब्स के लिए आदर्श। शून्य अतिरिक्त कॉन्फ़िगरेशन की आवश्यकता, बस Krawl चलाएँ और यह काम करता है।
- बिना किसी बाहरी निर्भरता के एकल कंटेनर परिनियोजन
- कम RAM और संसाधन उपयोग
**Scalable**: उत्पादन वातावरण या उच्च-ट्रैफ़िक हनीपॉट के लिए डिज़ाइन किया गया। Helm चार्ट डिफ़ॉल्ट रूप से इस मोड पर सेट होता है।
- Redis मल्टी-टियर कैशिंग के कारण तेज़, अधिक उत्तरदायी डैशबोर्ड
- PostgreSQL के सामने हॉट-पाथ कैश के रूप में कार्य करने वाले Redis के साथ कम डिस्क I/O
- क्षैतिज स्केलिंग लोड बैलेंसर के पीछे Krawl रेप्लिकाओं की संख्या बढ़ाती है
विस्तृत कॉन्फ़िगरेशन, Docker Compose उदाहरण, Kubernetes/Helm सेटअप, और चरण-दर-चरण माइग्रेशन निर्देशों के लिए, [परिनियोजन मोड दस्तावेज़ीकरण](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) देखें।
## Krawl बैनलिस्ट
Krawl **उन हमलावरों के IP पतों की** एक नियमित रूप से अद्यतन [`banlist.txt`](https://github.com/blessedrebus/krawl/blob/main/banlist.txt) बनाए रखता है **जिन्होंने इसके हनीपॉट ट्रैप को ट्रिगर किया**। बैनलिस्ट साप्ताहिक रूप से प्रकाशित की जाती है और डाउनलोड के लिए उपलब्ध है, जिससे समुदाय Krawl का उपयोग किए बिना भी ज्ञात दुर्भावनापूर्ण अभिनेताओं को पहले से ब्लॉक करने में मदद कर सकता है।
बैनलिस्ट सीधे यहाँ से भी प्राप्त की जा सकती है:
[https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw](https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw).
### इंस्टेंस के बीच बैनलिस्ट साझा करना
Krawl इंस्टेंस अपनी बैनलिस्ट को फ़ेडरेट कर सकते हैं: प्रत्येक एक अनप्रमाणित पथ पर अपनी सूची प्रकाशित कर सकता है और अन्य इंस्टेंस (या किसी भी सादे-पाठ IP सूची) से सूचियाँ खींच सकता है।
प्राप्त IP को स्थानीय बैन निर्णयों में मिला दिया जाता है और डैशबोर्ड में दिखाया जाता है।```yaml
banlist:
# Public, unauthenticated download path for this instance's banlist.
# Supports the same ?categories= and ?fwtype= parameters as the main API.
# Empty = disabled.
export_path: "/public_banlist.txt"
# Upstream banlists to fetch and merge. Plain ".txt" lists work too.
sources:
- "https://demo.krawlme.com/das_dashboard/api/export-ips?categories=attacker&fwtype=raw"
- "https://krawl.example.com/public_banlist.txt"
refresh_interval: 3600 # seconds between fetches
```
## क्विकस्टार्ट
### Docker रन
नवीनतम इमेज के साथ Krawl को स्टैंडअलोन मोड में चलाएँ:```bash
docker run -d \
-p 5000:5000 \
-e KRAWL_DASHBOARD_SECRET_PATH="/my-secret-dashboard" \
-e KRAWL_DASHBOARD_PASSWORD="my-secret-password" \
-v krawl-data:/app/data \
--name krawl \
ghcr.io/blessedrebus/krawl:latest
```
`http://localhost:5000` पर सर्वर एक्सेस करें
### Docker Compose
दो डिप्लॉयमेंट मोड्स में से किसी एक के साथ एक `docker-compose.yaml` बनाएं।
**Standalone**: केवल Sqlite स्टोरेज के साथ Krawl सर्वर:```yaml
services:
krawl:
image: ghcr.io/blessedrebus/krawl:latest
container_name: krawl-server
ports:
- "5000:5000"
environment:
- CONFIG_LOCATION=config.yaml
# - KRAWL_DASHBOARD_PASSWORD=my-secret-password
volumes:
- ./config.yaml:/app/config.yaml:ro
- krawl-data:/app/data
restart: unless-stopped
volumes:
krawl-data:
```
**स्केलेबल**: PostgreSQL और Redis के साथ:
> [!CAUTION]
> नीचे दिया गया उदाहरण **डिफ़ॉल्ट पासवर्ड** (`krawl`/`krawl`) का उपयोग करता है। **प्रोडक्शन में डिप्लॉय करने से पहले उन्हें बदलें।**```yaml
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: krawl
POSTGRES_USER: krawl
POSTGRES_PASSWORD: krawl
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U krawl -d krawl"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
restart: unless-stopped
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
krawl:
image: ghcr.io/blessedrebus/krawl:latest
container_name: krawl-server
ports:
- "5000:5000"
environment:
- CONFIG_LOCATION=config.yaml
- KRAWL_MODE=scalable
- KRAWL_POSTGRES_HOST=postgres
- KRAWL_POSTGRES_PORT=5432
- KRAWL_POSTGRES_USER=krawl
- KRAWL_POSTGRES_PASSWORD=krawl
- KRAWL_POSTGRES_DATABASE=krawl
- KRAWL_REDIS_HOST=redis
- KRAWL_REDIS_PORT=6379
# - KRAWL_DASHBOARD_PASSWORD=my-secret-password
volumes:
- ./config.yaml:/app/config.yaml:ro
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
volumes:
postgres_data:
redis_data:
```
डिप्लॉय करने के लिए, बस चलाएँ```bash
docker compose up -d
```
Production-ready compose फ़ाइलें [`docker/`](https://github.com/blessedrebus/krawl/blob/main/docker) डायरेक्टरी में भी उपलब्ध हैं। **डेवलपमेंट** के लिए (हॉट-रीलोड के साथ सोर्स से बिल्ड), [`docker/dev/`](https://github.com/blessedrebus/krawl/blob/main/docker/dev) में compose फ़ाइलों का उपयोग करें।
दोनों मोड के बारे में अधिक जानकारी के लिए, [Deployment Modes](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) देखें।
### Kubernetes
**Krawl नेटिव रूप से Kubernetes पर भी उपलब्ध है**। इंस्टॉलेशन या तो [manifest के माध्यम से](https://github.com/blessedrebus/krawl/blob/main/kubernetes/README.md) या [Helm chart का उपयोग करके](https://github.com/blessedrebus/krawl/blob/main/helm/README.md) किया जा सकता है।
Helm chart **डिफ़ॉल्ट रूप से scalable mode** में आता है, जिसमें bundled PostgreSQL और Redis शामिल हैं:```bash
helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 2.4.0 \
-n krawl-system --create-namespace \
--set postgres.password=your-password \
--set redis.password=your-redis-password \
--set dashboardPassword=your-dashboard-password \
--set config.dashboard.secret_path=/my-secret-dashboard
```
दोनों मोड्स के लिए न्यूनतम उदाहरण मान फ़ाइलें प्रदान की गई हैं:
- [`values-minimal.yaml`](https://github.com/blessedrebus/krawl/blob/main/helm/values-minimal.yaml) ---> Scalable (डिफ़ॉल्ट)
- [`values-standalone.yaml`](https://github.com/blessedrebus/krawl/blob/main/helm/values-standalone.yaml) ---> Standalone
पूर्ण कॉन्फ़िगरेशन और माइग्रेशन निर्देशों के लिए [Deployment Modes](https://github.com/blessedrebus/krawl/blob/main/docs/deployment-modes.md) और [Chart documentation](https://github.com/blessedrebus/krawl/blob/main/helm/README.md) देखें।
### Uvicorn (Python)
स्थानीय विकास या परीक्षण के लिए Krawl को सीधे Python 3.13+ और uvicorn के साथ चलाएँ:```bash
pip install -r requirements.txt
uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src --no-server-header
```
`http://localhost:5000` पर सर्वर एक्सेस करें
## कॉन्फ़िगरेशन
Krawl एक **कॉन्फ़िगरेशन पदानुक्रम** का उपयोग करता है जिसमें **पर्यावरण चर कॉन्फ़िगरेशन फ़ाइल पर प्राथमिकता लेते हैं**। यह दृष्टिकोण Docker परिनियोजन और त्वरित आउट-ऑफ-द-बॉक्स अनुकूलन के लिए अनुशंसित है।
### config.yaml के माध्यम से कॉन्फ़िगरेशन
आप उन्नत कॉन्फ़िगरेशन के लिए [config.yaml](https://github.com/blessedrebus/krawl/blob/main/config.yaml) फ़ाइल का उपयोग कर सकते हैं, जैसे Docker Compose या Helm chart परिनियोजन।
### पर्यावरण चर के माध्यम से कॉन्फ़िगरेशन
सभी सेटिंग्स को पर्यावरण चर के रूप में प्रदान किया जा सकता है, जो `config.yaml` को ओवरराइड करते हैं।
चर का नाम `KRAWL_` के साथ-साथ सेटिंग पथ को अपरकेस में होता है, इसलिए `dashboard.password`
`KRAWL_DASHBOARD_PASSWORD` बन जाता है।
<details>
<summary><b>सर्वर और लिंक जनरेशन</b> (11 चर)</summary>
Krawl स्वयं को कैसे प्रस्तुत करता है और जनरेट किए गए पृष्ठों के भूलभुलैया को कैसे आकार देता है।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|----------------------|-------------|---------|
| `CONFIG_LOCATION` | yaml कॉन्फ़िगरेशन फ़ाइल का पथ | `config.yaml` |
| `KRAWL_PORT` | सर्वर सुनने का पोर्ट | `5000` |
| `KRAWL_DELAY` | प्रतिक्रिया विलंब मिलीसेकंड में | `100` |
| `KRAWL_SERVER_HEADER` | धोखे के लिए HTTP Server हेडर | `""` |
| `KRAWL_LINKS_LENGTH_RANGE` | लिंक लंबाई सीमा `min,max` के रूप में | `5,15` |
| `KRAWL_LINKS_PER_PAGE_RANGE` | प्रति पृष्ठ लिंक `min,max` के रूप में | `10,15` |
| `KRAWL_CHAR_SPACE` | लिंक जनरेशन के लिए उपयोग किए जाने वाले अक्षर | `abcdefgh...` |
| `KRAWL_MAX_COUNTER` | प्रारंभिक काउंटर मान | `10` |
| `KRAWL_PROBABILITY_ERROR_CODES` | त्रुटि प्रतिक्रिया संभावना (0-100%) | `0` |
| `KRAWL_INFINITE_PAGES_FOR_MALICIOUS` | दुर्भावनापूर्ण IPs को अनंत पृष्ठ प्रदान करें | `true` |
| `KRAWL_MAX_PAGES_LIMIT` | क्रॉलर के लिए अधिकतम पृष्ठ सीमा | `250` |
| `KRAWL_BAN_DURATION_SECONDS` | दर-सीमित IPs के लिए प्रतिबंध अवधि सेकंड में | `600` |
</details>
<details>
<summary><b>डैशबोर्ड, मेट्रिक्स और लॉगिंग</b> (13 चर)</summary>
डैशबोर्ड एक्सेस, कैश वार्मअप, Prometheus और लॉग स्तर।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|----------------------|-------------|---------|
| `KRAWL_DASHBOARD_SECRET_PATH` | कस्टम डैशबोर्ड पथ | स्वतः-जनित |
| `KRAWL_DASHBOARD_PASSWORD` | संरक्षित डैशबोर्ड पैनल के लिए पासवर्ड | स्वतः-जनित |
| `KRAWL_DASHBOARD_CACHE_WARMUP` | तत्काल पृष्ठ लोड के लिए हर 5 मिनट में डैशबोर्ड डेटा की पूर्व-गणना करें | `true` |
| `KRAWL_DASHBOARD_WARMUP_PAGES` | प्रति टेबल पैनल में पूर्व-वार्म करने के लिए पृष्ठों की संख्या | `10` |
| `KRAWL_DASHBOARD_WARMUP_AGGREGATION` | शून्य-क्वेरी सर्विंग के लिए पूर्ण top_paths/top_ua एकत्रीकरण की पूर्व-गणना करें | `false` |
| `KRAWL_DASHBOARD_TOP_N_MIN_COUNT` | शीर्ष पथ/उपयोगकर्ता एजेंट पैनल के लिए न्यूनतम एक्सेस गणना (अक्षम करने के लिए 1 पर सेट करें) | `5` |
| `KRAWL_DASHBOARD_BRAND_NAME` | डैशबोर्ड वर्डमार्क और शीर्षक में नाम | `Krawl` |
| `KRAWL_DASHBOARD_BRAND_URL` | वर्डमार्क कहाँ लिंक करता है (खाली इसे सादे टेक्स्ट के रूप में प्रस्तुत करता है) | Krawl का रिपॉजिटरी |
| `KRAWL_DASHBOARD_BRAND_LOGO` | GitHub मार्क के बजाय दिखाई जाने वाली छवि URL | अनसेट |
| `KRAWL_DASHBOARD_BRAND_SHOW_VERSION` | नाम के आगे संस्करण दिखाएँ | `true` |
| `KRAWL_DASHBOARD_BRAND_CONTACT` | वर्डमार्क के नीचे दिखाया गया संपर्क (पता, URL, या सादा टेक्स्ट) | अनसेट |
| `KRAWL_METRICS_ENABLED` | `/<dashboard_path>/metrics` पर Prometheus मेट्रिक्स उजागर करें | `true` |
| `KRAWL_LOG_LEVEL` | एप्लिकेशन लॉग स्तर (`DEBUG`, `INFO`, `WARNING`, `ERROR`) | `INFO` |
</details>
<details>
<summary><b>डेटाबेस, प्रतिधारण और बैकअप</b> (12 चर)</summary>
संग्रहण स्थान, डेटा कितने समय तक रखा जाता है, और डंप कार्य।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
|----------------------|-------------|---------|
| `KRAWL_DATABASE_PATH` | डेटाबेस फ़ाइल स्थान | `data/krawl.db` |
| `KRAWL_DATABASE_PERSIST_SUSPICIOUS_ONLY` | एक्सेस लॉग में केवल संदिग्ध अनुरोधों को बनाए रखें | `false` |
| `KRAWL_MAP_TILE_URL` | डैशबोर्ड मैप के लिए टाइल URL टेम्पलेट (`{z}/{x}/{y}`, वैकल्पिक `{s}`/`{r}`) | Esri dark canvas |
| `KRAWL_MAP_TILE_ATTRIBUTION` | मैप पर दिखाया गया एट्रिब्यूशन | Esri/OSM |
| `KRAWL_MAP_API_KEY` | प्रत्येक टाइल अनुरोध में क्वेरी पैरामीटर के रूप में जोड़ा गया — CARTO द्वारा आवश्यक | _(खाली)_ |
| `KRAWL_MAP_API_KEY_PARAM` | उस क्वेरी पैरामीटर का नाम (`api_key`, `apikey`, `key`) | `api_key` |
| `KRAWL_IPV6_IGNORE` | IPv6 अनुरोधों को पूरी तरह छोड़ें: अभी भी stdout पर लॉग किया जाता है, कभी बनाए नहीं रखा जाता, प्रतिबंध-जाँच या निर्यात नहीं किया जाता | `false` |
| `KRAWL_IPV6_PURGE_EXISTING` | अगले स्टार्टअप पर मौजूदा IPv6 पंक्तियों को भी हटाएँ (अपरिवर्तनीय; `KRAWL_IPV6_IGNORE` आवश्यक) | `false` |
| `KRAWL_DATABASE_RETENTION_DAYS` | डेटाबेस में डेटा बनाए रखने के दिन | `30` |
| `KRAWL_BACKUPS_PATH` | वह पथ जहाँ डेटाबेस डंप सहेजे जाते हैं | `backups` |
| `KRAWL_BACKUPS_CRON` | बैकअप कार्य शेड्यूल को नियंत्रित करने के लिए cron अभिव्यक्ति | `*/30 * * * *` |
| `KRAWL_BACKUPS_ENABLED` | db डंप कार्य सक्षम करने के लिए बूलियन | `true` |
</details>
<details>
<summary><b>ट्रैप: टारपिट, धोखा पृष्ठ और कैनरी</b> (6 चर)</summary>
ऑप्ट-इन ट्रैप और हमलावरों को दिए जाने वाले पृष्ठ।
| पर्यावरण चर | विवरण | डिफ़ॉल्ट |
```
---
[Read more](https://github.com/blessedrebus/krawl)