miasma
Trap AI web scrapers in an endless poison pit.
1.5K
AI companies continually scrape the internet at an enormous scale, swallowing up all of its contents to use as training data for their next models. If you have a public website, they are already stealing your work.
Miasma is here to help you fight back! Spin up the server and point any malicious traffic towards it. Miasma will send poisoned training data from the poison fountain alongside multiple self-referential links. It's an endless buffet of slop for the slop machines.
Miasma is very fast and has a minimal memory footprint - you should not have to waste compute resources fending off the internet's leeches.
Please see the project's GitHub repository for more information.
Run the image with default configuration:
docker run --rm -p 9999:9999 austinweeks/miasma:latest
Run with configuration (see the configuration section for details):
docker run --rm -p 9999:9999 austinweeks/miasma:latest --link-prefix '/naughty-bots/' --max-in-flight 30
Or, run within a docker compose cluster:
services:
miasma:
image: austinweeks/miasma:latest # or a specific SemVer tag
command: ["--link-prefix", "/naughty-bots/", "--max-in-flight", "30"]
ports:
- 9999:9999
Miasma offers the ability to track scraper request counts per unique User-Agent. This can be useful for identifying which bots are hitting your site most heavily. Metrics are written to a SQLite database file and can be viewed at an endpoint of your choosing.
The following cluster configuration creates a persistent volume for the metrics database:
services:
miasma:
image: austinweeks/miasma:latest
ports:
- 9999:9999
command: [
"--metrics-endpoint", "/metrics",
"--metrics-username", "admin_username",
"--metrics-password", "admin_password",
"--metrics-db-path", "/data/miasma_metrics.db",
]
volumes:
- miasma_metrics:/data
volumes:
miasma_metrics:
Miasma can be configured via CLI flags or a config file.
| Option | Default | Description |
|---|---|---|
--config-file | Load configuration options from a file at the specified file path. YAML, TOML, and JSON formats are supported. See docs for examples. | |
--max-in-flight | 500 | Maximum number of allowable in-flight requests. Requests received when in flight is exceeded will receive a 429 response. Miasma's memory usage scales directly with the number of in-flight requests - set this to a lower value if memory usage is a concern. |
--link-prefix | / | Prefix for self-directing links. This should be the path where you host Miasma, e.g. /naughty-bots/. |
--link-count | 5 | Number of self-directing links to include in each response page. |
--max-depth | none | Stop generating links once the scraper reaches the specified depth. This allows you to cut off scrapers after serving a desired amount of poison. Use this in tandem with link-count to keep the numbers of active scrapers down to a manageable level. |
--force-gzip | false | Always gzip responses regardless of the client's Accept-Encoding header. Forcing compression can help reduce egress costs. |
--unsafe-allow-html | false | Don't escape HTML characters in the poison source's responses. Escaping is enabled by default to prevent unintended client-side JavaScript execution. Use this option with care. |
--poison-source | https://rnsaffn.com/poison2/?mask=0 | Proxy source for poisoned training data. |
--metrics-db-path | Path to SQLite database file to store metrics data. Miasma will create a database at this location if one does not already exist. | |
--metrics-username | Basic auth username required to access Miasma's metrics page. | |
--metrics-password | Basic auth password required to access Miasma's metrics page. | |
--metrics-endpoint | /metrics | Endpoint at which Miasma's metrics will be served. |
Miasma is not affiliated with the poison fountain. We have no control over its responses and cannot guarantee the safety of its contents. You should never direct users towards your Miasma location.
Miasma is not responsible for any retaliation from operators of affected scrapers. It is your responsibility to comply with applicable laws and hosting provider policies. See LICENSE (GPL-v3) for full warranty & limitation of liability details.
Cover art by @cerberussaturn07
Content type
Image
Digest
sha256:53e2a6322…
Size
13.5 MB
Last updated
3 days ago
docker pull austinweeks/miasma