⭐ If you find this project useful, please star the repo! It helps others discover the tool and motivates continued development.
Transform compressed data dumps into browsable HTML archives with flexible deployment options. Redd-Archiver supports offline browsing via sorted index pages, full-text search with Docker deployment, or fully dynamic serving straight from PostgreSQL. Archives stay current with monthly incremental updates from Arctic Shift dumps. Features mobile-first design, multi-platform support, operator-selectable themes, and PostgreSQL full-text indexing.
Supported Platforms: | Platform | Format | Status | Available Posts | Data | |----------|--------|--------|----------------|------| | Reddit | .zst JSON Lines (Pushshift/Arctic Shift) | ✅ Full support | 2.38B+ posts (40,029 subreddits; rolling — monthly dumps keep archives current) | Download | | Voat | SQL dumps | ✅ Full support | 3.81M posts, 24.1M comments (22,637 subverses, complete archive) | Download | | Ruqqus | .7z JSON Lines | ✅ Full support | 500K posts (6,217 guilds, complete archive) | Download |
Tracked content: 2.38B+ posts across 68,883 communities (full Reddit dataset plus monthly Arctic Shift dumps via incremental updates; Voat/Ruqqus complete archives)
Version 1.1 “Living Archive” adds three serving modes, monthly incremental updates, 11 theme palettes, community metadata/wiki enrichment, and a major performance pass on top of 1.0's multi-platform archiving, REST API, and MCP server. See CHANGELOG.md.
One archive, three ways to serve it — the database is the canonical store, switch modes anytime:
| Static | Hybrid (default) | Dynamic | |
|---|---|---|---|
| Runtime requirements | Any web host | nginx + Flask + PostgreSQL | Flask + PostgreSQL |
| Full-text search / REST API | — | ✅ | ✅ |
Dynamic filtering (?flair=&min_score=&from=) & /all/ view |
— | — | ✅ |
| Content live immediately after import | export step | export step | ✅ instantly |
| GitHub Pages / USB-stick / offline | ✅ | pages only | — |
# Static: export once, host anywhere
reddarc.py /data --subreddit privacy ... --output /var/www/html/
# Hybrid (current default): static pages + search server
docker compose up -d
# Dynamic: no export step, Flask renders pages from PostgreSQL
reddarc.py --import-only /data --subreddit privacy ...
REDDARCHIVER_SERVE_MODE=dynamic python search_server.py
Apply monthly Arctic Shift dumps to an existing archive — only tracked subreddits are imported, re-runs are skipped by checksum, and scores refresh without altering preserved content:
# One month
reddarc.py --update RS_2026-01.zst --comments-file RC_2026-01.zst
# Or point at a downloaded monthly torrent (comments/ + submissions/ layout
# is auto-discovered) and apply every unprocessed month in order:
reddarc.py --update-all /data/monthly/reddit/
reddarc.py --update-status # audit what has been applied
Archive internet history before it disappears - Deploy in 2 minutes, no domain required.
Try the live demo: Browse Example Archive →
→ QUICKSTART.md - Step-by-step deployment: - 2 min: Tor hidden service (no domain, no port forwarding, works behind CGNAT) - 5 min: Local testing (HTTP on localhost) - 15 min: Production HTTPS (automated Let's Encrypt)
Why now? Communities get banned, platforms shut down, discussions vanish. Start preserving today.
→ First time here? QUICKSTART.md - Deploy in 2-15 minutes
→ Quick answers? FAQ - Common questions answered in 30 seconds
→ Need help? Troubleshooting - Fix common issues
→ Using the API? API Reference - 30+ REST endpoints
→ How it works? Architecture - Technical deep-dive
→ Deployment guides: - Tor Hidden Service - .onion setup (2 min, no domain needed) - HTTPS Production - Let's Encrypt SSL (15 min) - Static Hosting - GitHub/Codeberg Pages (browse-only) - Docker Reference - Complete Docker guide
→ Operations: - Incremental Updates - Keep archives current with monthly dumps - Performance - Memory, storage, and tuning - Scaling - Multi-instance deployments - Search Setup - Full-text search configuration
→ Advanced: - MCP Server - AI integration (Claude Desktop/Code) - Scanner Tools - Data discovery utilities - Registry Setup - Instance leaderboard - Installation Guide - Platform-specific setup - Contributing · Security Policy · License
Archive content from multiple link aggregator platforms in a single unified archive:
| Platform | Format | CLI Flag | URL Prefix |
|---|---|---|---|
| .zst JSON Lines | --subreddit |
/r/ |
|
| Voat | SQL dumps | --subverse |
/v/ |
| Ruqqus | .7z JSON Lines | --guild |
/g/ |
29 MCP tools auto-generated from OpenAPI for AI assistants:
{
"mcpServers": {
"reddarchiver": {
"command": "uv",
"args": ["--directory", "/path/to/mcp_server", "run", "python", "server.py"],
"env": { "REDDARCHIVER_API_URL": "http://localhost:5000" }
}
}
}
See MCP Server Documentation for complete setup guide.
--theme / REDDARCHIVER_THEME, plus --accent-color and --custom-css; CSS-only dark/light mode follows system preference with a manual toggle--precompress + gzip_static for high-traffic static serving
Main landing page showing archive overview with statistics for 9,592 posts across Reddit, Voat, and Ruqqus. Features customizable branding (site name, project URL), responsive cards, activity metrics, and content statistics. (Works offline)

Post listing with sorting options (score, comments, date), pagination, and badge coloring. Includes navigation and theme toggle. (Works offline - sorted by score/comments/date)

Individual post displaying nested comment threads with collapsible UI, user flair, and timestamps. Comments include anchor links for direct navigation from user pages. (Works offline)

Fully optimized for mobile devices with touch-friendly navigation and responsive layout.

PostgreSQL full-text search with Google-style operators. Supports filtering by subreddit, author, date range, and score. (Requires Docker deployment)

Search results with highlighted excerpts using PostgreSQL ts_headline(). Sub-second response times with GIN indexing. (Server-based, Tor-compatible)
All 11 palettes on the same post page (each ships dark and light variants; --accent-color re-tints any of them):
default |
nord |
solarized |
dracula |
gruvbox |
sepia |
cyberpunk |
midnight (OLED) |
old-reddit |
phosphor |
high-contrast |
reddarc.py ... --theme nord # static export
REDDARCHIVER_THEME=nord search_server.py # dynamic mode
Sample Archive: Multi-platform archive featuring programming and technology communities from Reddit, Voat, and Ruqqus · See all screenshots →
Prerequisites: Python 3.10+, PostgreSQL 14+, 4GB+ RAM
Quick Install (Docker):
git clone https://github.com/19-84/redd-archiver.git
cd redd-archiver
# Create required directories
mkdir -p data output/.postgres-data logs tor-public
# Configure environment (IMPORTANT: change passwords!)
cp .env.example .env
nano .env # Edit POSTGRES_PASSWORD and DATABASE_URL
# Start services
docker compose up -d
# Generate archive (after downloading .zst files to data/)
docker compose exec reddarchiver-builder python reddarc.py /data \
--subreddit privacy \
--comments-file /data/privacy_comments.zst \
--submissions-file /data/privacy_submissions.zst \
--output /output/
Detailed installation procedures (Docker, Ubuntu/Debian, macOS, Windows WSL2): - Installation Guide - Platform-specific setup and troubleshooting
Quick workflow: Download data → Run archive generator → Deploy
```bash
docker compose up -d docker compose exec reddarchiver-builder python reddarc.py /data \ --subreddit privacy \ --comments-file /data/privacy_comments.zst \ --submissions-file /data/privacy_submissio
$ claude mcp add redd-archiver \
-- python -m otcore.mcp_server <graph>