Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

687 Commits

Repository files navigation

Tor Radar

Tor Radar

LicenseCIPagesLast CommitDatasetExports


Tor Radar is a static Tor relay intelligence dashboard and dataset built entirely on GitHub Pages infrastructure.

The project collects public Tor relay metadata, stores compact historical snapshots, and publishes an interactive browser-based dashboard without requiring a backend, database, or external runtime services.


Live Dashboard

Tor Radar dashboard screenshot

Repository:

https://github.com/ipanalytics/Tor-Radar

Overview

Tor Radar tracks public Tor relay infrastructure over time and publishes normalized snapshots suitable for operational visibility, analytics, enrichment pipelines, and longitudinal network analysis.

The project focuses on:

  • relay inventory visibility
  • network churn tracking
  • ASN concentration analysis
  • country distribution
  • relay role classification
  • historical trend retention

All outputs are static artifacts generated through scheduled GitHub Actions workflows.


Architecture

 Public Tor Sources
│
┌─────────────┴─────────────┐
│ │
▼ ▼
Tor Relay List Onionoo Metadata
│ │
└─────────────┬─────────────┘
▼
Enrichment Layer
relay roles / ASN / geo
▼
Snapshot Generator
current + historical outputs
▼
Static Dashboard
GitHub Pages deployment

Data Sources

SourcePurpose
https://www.dan.me.uk/torlist/?fullPublic Tor relay IP inventory
https://onionoo.torproject.org/detailsOfficial Tor relay metadata

The collector merges relay inventory with Onionoo metadata to produce enriched network snapshots.


Published Outputs

FileDescription
data/current/network.jsonLatest enriched relay network snapshot
data/snapshots/*.jsonHourly retained snapshots
data/history/summary.csvCompact historical metrics
data/history/summary.jsonlMachine-readable historical timeline
public/Static dashboard assets
public/assets/Dashboard JavaScript and CSS

Dashboard Features

FeatureDescription
Relay distributionCountry and ASN concentration views
Historical trendsRelay count and churn tracking
Role visibilityExit, guard, middle relay breakdown
Snapshot historyHistorical network comparisons
Static deploymentNo backend or runtime dependencies
Compact retentionGit-native historical storage

Local Update

Refresh datasets

python3 scripts/update.py

Build local preview

rm -rf site
cp -R public site
cp -R data site/data
python3 -m http.server 8080 --directory site

Open:

http://127.0.0.1:8080/

GitHub Pages Deployment

The GitHub Actions workflow updates datasets hourly and deploys the generated dashboard directly to GitHub Pages.

Workflow:

.github/workflows/tor-radar.yml

Deployment behavior:

  • public/ becomes the Pages root
  • data/ is deployed alongside dashboard assets
  • the UI fetches data/current/network.json directly from Pages storage

Required repository settings:

  • Enable GitHub Pages
  • Set Pages source to GitHub Actions
  • Allow Actions read/write repository permissions

Retention Policy

Default retention configuration:

DatasetRetention
Snapshot filesLast 168 hourly snapshots
Summary historyLast 720 rows

Workflow overrides:

VariableDescription
TOR_RADAR_SNAPSHOT_RETENTIONSnapshot retention count
TOR_RADAR_HISTORY_RETENTIONSummary history retention
TOR_RADAR_DAN_REFRESH_HOURSUpstream relay refresh interval
TOR_RADAR_USER_AGENTCollector user-agent

Operational Notes

  • Relay inventories are derived from public upstream disclosures
  • Relay concentration alone should not be treated as attribution
  • Infrastructure overlap between providers is expected
  • Historical churn and relay metadata are intended as analytical signals
  • The project intentionally avoids active probing or relay interaction

Use Cases

DomainExample
SIEM EnrichmentTor relay attribution
Fraud DetectionExit node visibility
Threat HuntingHistorical relay analysis
Network AnalyticsASN and country concentration
Security OperationsRelay trend monitoring
ResearchLongitudinal Tor infrastructure analysis

Repository Layout

Tor-Radar/
├── .github/
│ └── workflows/
├── data/
│ ├── current/
│ ├── history/
│ └── snapshots/
├── docs/
├── public/
│ └── assets/
├── scripts/
├── LICENSE
└── README.md

Design Goals

  • Fully static deployment
  • Git-native historical storage
  • No external database dependency
  • Low operational overhead
  • Reproducible snapshot generation
  • Browser-only dashboard rendering

Roadmap

Planned additions:

  • ASN trend diffing
  • Relay churn analytics
  • Historical topology comparisons
  • Prefix aggregation summaries
  • Compact compressed archives
  • Export filtering improvements

License

Licensed under CC0-1.0.

See LICENSE.


Disclaimer

Tor Radar publishes observational infrastructure metadata derived from public sources for analytical and operational use. Consumers are responsible for validating suitability within their own environments.

About

The project collects public Tor relay data once per hour, stores compact snapshots in the repository, and renders an interactive dashboard without a database or backend.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages