diff --git a/README.md b/README.md index 4dc5702..6bc2ba5 100644 --- a/README.md +++ b/README.md @@ -43,6 +43,7 @@ - [Docker Run](#docker-run) - [Docker Compose](#docker-compose) - [Kubernetes](#kubernetes) + - [Local (Python)](#local-python) - [Configuration](#configuration) - [config.yaml](#configuration-via-configyaml) - [Environment Variables](#configuration-via-enviromental-variables) @@ -63,6 +64,8 @@ Tip: crawl the `robots.txt` paths for additional fun It creates realistic fake web applications filled with low‑hanging fruit such as admin panels, configuration files, and exposed fake credentials to attract and identify suspicious activity. +![dashboard](img/deception-page.png) + By wasting attacker resources, Krawl helps clearly distinguish malicious behavior from legitimate crawlers. It features: @@ -77,8 +80,9 @@ It features: - **Customizable Wordlists**: Easy JSON-based configuration - **Random Error Injection**: Mimic real server behavior -![dashboard](img/deception-page.png) +You can easily expose Krawl alongside your other services to shield them from web crawlers and malicious users using a reverse proxy. For more details, see the [Reverse Proxy documentation](docs/reverse-proxy.md). +![use case](img/use-case.png) ## Krawl Dashboard @@ -160,6 +164,17 @@ docker-compose down ### Kubernetes **Krawl is also available natively on Kubernetes**. Installation can be done either [via manifest](kubernetes/README.md) or [using the helm chart](helm/README.md). +### Python + Uvicorn + +Run Krawl directly with Python (suggested version 13) and uvicorn for local development or testing: + +```bash +pip install -r requirements.txt +uvicorn app:app --host 0.0.0.0 --port 5000 --app-dir src +``` + +Access the server at `http://localhost:5000` + ## Configuration Krawl uses a **configuration hierarchy** in which **environment variables take precedence over the configuration file**. This approach is recommended for Docker deployments and quick out-of-the-box customization. diff --git a/helm/README.md b/helm/README.md index 09c2387..268ca00 100644 --- a/helm/README.md +++ b/helm/README.md @@ -14,7 +14,7 @@ A Helm chart for deploying the Krawl honeypot application on Kubernetes. ```bash helm install krawl oci://ghcr.io/blessedrebus/krawl-chart \ - --version 1.1.0 \ + --version 1.1.3 \ --namespace krawl-system \ --create-namespace \ -f values.yaml # optional @@ -169,7 +169,7 @@ kubectl get secret krawl-server -n krawl-system \ You can override individual values with `--set` without a values file: ```bash -helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 1.1.0 \ +helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 1.1.3 \ --set ingress.hosts[0].host=honeypot.example.com \ --set config.canary.token_url=https://canarytokens.com/your-token ``` @@ -177,7 +177,7 @@ helm install krawl oci://ghcr.io/blessedrebus/krawl-chart --version 1.1.0 \ ## Upgrading ```bash -helm upgrade krawl oci://ghcr.io/blessedrebus/krawl-chart --version 1.1.0 -f values.yaml +helm upgrade krawl oci://ghcr.io/blessedrebus/krawl-chart --version 1.1.3 -f values.yaml ``` ## Uninstalling diff --git a/helm/values.yaml b/helm/values.yaml index 8b4a907..3bdebd9 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -3,7 +3,7 @@ replicaCount: 1 image: repository: ghcr.io/blessedrebus/krawl pullPolicy: Always - tag: "1.1.0" + tag: "1.1.3" imagePullSecrets: [] nameOverride: "krawl" diff --git a/img/geoip_dashboard.png b/img/geoip_dashboard.png index 1c354bb..5a4f389 100644 Binary files a/img/geoip_dashboard.png and b/img/geoip_dashboard.png differ