https://github.com/circa10a/ai-troller
A web server tarpit that slowly streams dumb data to pollute AI training bots
https://github.com/circa10a/ai-troller
ai-training caddy caddy-examples crack tarpit tarpitting
Last synced: 3 months ago
JSON representation
A web server tarpit that slowly streams dumb data to pollute AI training bots
- Host: GitHub
- URL: https://github.com/circa10a/ai-troller
- Owner: circa10a
- License: mit
- Created: 2025-03-10T18:49:54.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2025-03-11T00:36:34.000Z (3 months ago)
- Last Synced: 2025-03-11T01:23:48.862Z (3 months ago)
- Topics: ai-training, caddy, caddy-examples, crack, tarpit, tarpitting
- Homepage:
- Size: 11.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# ai-troller
A web server tarpit that slowly streams dumb data to pollute AI training bots. Based on [caddy-defender](https://github.com/JasonLovesDoggo/caddy-defender)


## Usage
The docker image is built with a script of an [It's Always Sunny in Philadelphia episode](https://www.imdb.com/title/tt0818015/), where the gang gets addicted to crack. This episode script is streamed to the client via http at a slow pace at `http://localhost:8080`
```console
docker run --rm -p 8080:8080 circa10a/ai-troller
```## Configuration options
| Environment Variable | Default Value | Description |
|-----------------------------|----------------------|--------------------------------------------------------|
| `TROLL_CONTENT` | `file:///crack.txt` | Path to the content file used in tarpit configuration. |
| `TROLL_TIMEOUT` | `30s` | Timeout duration for tarpit connections. |
| `TROLL_BYTES_PER_SECOND` | `24` | Rate limit for how many bytes can be sent per second. |
| `TROLL_RESPONSE_CODE` | `200` | The HTTP response code to return. |## Customize content
Should you not enjoy the script of the crack addiction episode, you can provide your own content via the `TROLL_CONTENT` environment variable.
### Local file content
Mount `./file.txt` into the container:
```console
docker run --rm \
-p 8080:8080 \
-e TROLL_CONTENT=file:///file.txt \
-v ./file.txt:/file.txt \
circa10a/ai-troller
```### Content from remote file over HTTP
Use `https://google.com/robots.txt` as the content to stream to clients:
```console
docker run --rm \
-p 8080:8080 \
-e TROLL_CONTENT=https://google.com/robots.txt \
circa10a/ai-troller
```