Xandrov StudioAtlas of shipped systems
← The territory/ III. Agentic Systems & OSINT/ № 13 — Dark-Web Stack
Dossier № 13 / 19 — Agentic Systems & OSINT — Security / OSINT · Infrastructure

Dark-Web Crawling Stack

Configure the proven engine; publish the knowledge, not the data.

File
№ 13 / 19
Territory
Agentic Systems & OSINT
Classification
Security / OSINT · Infrastructure
Status
Working configuration
§ 01 Context

Defensive-security research often requires collection across multiple dark-web networks — Tor, I2P, ZeroNet, Freenet — and hybrid surfaces like tor2web. This work sits at the edge of infrastructure: collection is necessary, but so is operational discipline. The stack exists as part of a larger OSINT and threat-intelligence toolchain within the lab.

Paired elsewhere with a custom darknet MCP server and threat-intel feed aggregation, the crawler is one layer of a research-grade intelligence pipeline. The focus is deliberate: orchestration and configuration, not engine-building.

§ 02 The problem

Dark-web collection is fundamentally an operations problem. Running crawlers across multiple networks means managing several concurrent daemons — one per protocol — each with its own quirks, seed requirements, and rate-limiting expectations. Add Redis workers for queue management, tuning for multiprocessing, broker configuration, and the complexity compounds quickly.

Building a crawler engine from scratch is tempting but inefficient. The right move is to configure a proven, maintained upstream engine well: handle deployment, orchestration, and tuning, leaving the core crawler logic to those who built and maintain it.

§ 03 The approach

The deployment is orchestrated through Docker Compose, the standard tool for managing multi-service systems. The crawler engine is JarryShaw's darc — an open-source, actively maintained Tor/I2P/ZeroNet crawler — deployed as a containerized service alongside a Redis instance for work-queue management.

Configuration happens at three layers. First: broker setup for darc itself — defining crawl parameters, rate limits, and network-specific tuning. Second: multiprocessing configuration to balance parallelism against resource constraints, a critical tuning point for sustained collection at scale. Third: per-network seed lists — the entry points and known addresses for each protocol, sourced from research-grade OSINT feeds.

The architecture is deliberately minimal: it does not extend darc, does not fork it, and does not rewire its internals. It is a thin orchestration layer — Docker, Redis, configuration — on top of a respected upstream project. That constraint keeps maintenance burden low and updates feasible.

Configure the proven engine; publish the knowledge, not the data.

§ 04 Decisions that mattered
D1
Upstream integrity — credit, no fork
The crawler engine is JarryShaw's darc, maintained upstream. This layer is orchestration only: Docker Compose, Redis, configuration. No fork, no proprietary extension.
D2
Data stripped, knowledge shared
All scraped output is removed before publication. Deployment patterns and tuning knowledge are shareable; collected content is not.
D3
Multi-network brokers
Each protocol — Tor, I2P, ZeroNet, Freenet, tor2web — runs with its own darc broker instance and seed list, tuned for protocol-specific quirks.
D4
Redis-backed work queue
Worker jobs and crawl states live in Redis, enabling distributed work and recovery from crashes without loss of progress.
D5
Multiprocessing tuning
Pool size, worker concurrency, and memory limits are configurable per deployment. No hard-coded parallelism — adaptation to available resources.
D6
Defensive-security framing
This is explicitly defensive-security research and threat-intel support, not attack infrastructure. The distinction matters for standing and legal clarity.
§ 05 Where it stands

The stack is production-ready for research-scale collection: it runs, survives deployment restarts, and scales horizontally via Redis. It is explicitly framed as defensive-security research and an orchestration layer over a credited upstream engine. The knowledge of how to deploy and tune this infrastructure is published; the collected data itself is not. That distinction preserves utility while maintaining ethical and legal ground.

Docker ComposeRedisTor / I2Pdarc (upstream)
§ 06 — Sanitization record

All scraped output — the actual darknet content collected during research — is stripped from publication. Deployment patterns, configuration templates, and infrastructure tuning are preserved and useful; raw collected data is not. This choice reflects the lab's commitment to publish research methodology without publishing the raw intelligence itself.

Have a system like this worth building?

Fixed scope, quoted after one working session, first output inside two weeks. Read by a person within one working day.