Show HN: 自己ホスト型Reddit – 23.8億件の投稿、オフラインで動作、永遠にあなたのもの
94日前原文(github.com)
概要
Redd-Archiverは、Reddit・Voat・Ruqqusなど複数プラットフォームのデータダンプを、閲覧可能なHTMLアーカイブへ変換するツール。
オフライン閲覧や全文検索対応(Docker必須)など、柔軟なデプロイ方法を提供。
モバイル最適化・マルチプラットフォーム・高性能PostgreSQL全文検索を特長とする。
API・AI連携や統計ダッシュボードなどエンタープライズ級機能を搭載。
インターネットの歴史保存へ貢献したい個人・研究者・団体向けアーカイブ生成ツール。
Redd-Archiverとは
- **Reddit (.zst JSON Lines)、Voat (SQL dump)、Ruqqus (.7z JSON Lines)**など主要リンクアグリゲータのデータダンプ対応
- 静的HTMLアーカイブ生成によるオフライン閲覧、またはPostgreSQL全文検索サーバによる高速検索
- モバイルファースト設計・マルチプラットフォームサポート
- Dockerデプロイによる簡単セットアップ・Tor/HTTPS両対応
- 2.38B Reddit投稿・3.81M Voat投稿・500K Ruqqus投稿など大規模データ処理実績
- AI連携用MCPサーバ搭載:AIアシスタント/Claude Code等から直接クエリ可能
- REST API (30+エンドポイント):投稿・コメント・ユーザー・統計・検索・集計・エクスポート
- アクセシビリティ(WCAG準拠)・テーマ切替・SEO最適化など現代的Web要件を網羅
主な対応プラットフォーム・データ
- Reddit:.zst JSON Lines (Pushshift)形式、40,029サブレディット、2.38B投稿(2024年12月31日まで)
- Voat:SQL dump形式、22,637サブバース、3.81M投稿・24.1Mコメント(全アーカイブ)
- Ruqqus:.7z JSON Lines形式、6,217ギルド、500K投稿(全アーカイブ)
- 合計:68,883コミュニティ、23.84億投稿
- 今後の拡張:Lemmy、Hacker News等の新データソースも登録・連携可能
特長・機能一覧
- マルチプラットフォームアーカイブ:複数サービスの投稿を1つのアーカイブに統合
- 自動プラットフォーム判定:拡張子から自動認識
- 統合検索:全プラットフォーム横断のPostgreSQL全文検索
- MCPサーバ(AI統合):OpenAPI仕様から29種のMCPツール自動生成
- Claude Desktop/Code等AIから直接操作
- フィールド選択・トークン制御機能内蔵
- モバイルファーストUI:全端末・タッチ操作対応のレスポンシブデザイン
- JavaScriptフリー:全機能CSSのみで実現、JS不要
- テーマ切替:ライト/ダークテーマCSSのみで実装
- アクセシビリティ:キーボード操作・スクリーンリーダー対応
- 高パフォーマンス:最適化CSS(29KB)、低帯域ネットワーク対応
- PostgreSQLバックエンド:大規模データも一定メモリで処理
- リアルタイム進捗表示:転送速度・ETA・DBメトリクス表示
- SEO最適化:メタタグ・XMLサイトマップ・構造化データ
- ストリーミング処理:自動レジューム・省メモリ設計
- インスタンスレジストリ:分散アーカイブのランキング・協調保存
デプロイ・利用方法
- ローカル/ホームラボ:HTTPサーバ(2コマンド)、USB・ローカルフォルダ閲覧
- HTTPS本番運用:Let's Encrypt自動証明書発行(5分)
- Tor Hidden Service:.onionアクセス、ネットワーク設定不要(2分)
- 静的ホスティング:GitHub/Codeberg Pages(小規模アーカイブ向け、閲覧のみ)
- 検索サーバ:PostgreSQL全文検索(Docker必須)、サブ秒検索、Tor互換
- デプロイ例:
- オフライン閲覧:HTMLファイルを直接開く
- Docker+Tor:プライベート共有、ポート開放不要
- Docker+HTTPS:公開アーカイブ
- 静的ホスティング:無料公開(容量制限あり)
インストール・セットアップ手順
- 前提条件:
- Python 3.7以上
- PostgreSQL 12以上(v1.0以降必須)
- 4GB以上RAM(PostgreSQLは一定メモリ消費)
- データダンプサイズの1.5~2倍のディスク空き
- 依存パッケージ:
- psycopg[binary,pool](PostgreSQL用)
- zstandard(.zst高速展開)
- jinja2(HTMLテンプレート)
- rcssmin(CSS圧縮)
- orjson(高速JSONパース)
- Docker推奨手順:
- git clone https://github.com/19-84/redd-archiver.git
- 必要ディレクトリ作成・.env設定
- docker-compose up -d
- pip install -r requirements.txt
- DATABASE_URL環境変数設定
- python reddarc.py /path/to/data/ --output my-archive/
- ローカルPostgreSQL手順(Ubuntu/macOS対応):
- PostgreSQLインストール・ユーザー/DB作成
- パスワード設定
- Python依存インストール・DATABASE_URL設定
- アーカイブ生成コマンド実行
データ準備・アーカイブ優先度判定
- 対応データフォーマット:
- Reddit:.zst JSON Lines(Pushshift完全データセット)
- Voat:SQL dump(全投稿・コメント)
- Ruqqus:.7z JSON Lines(全ギルド)
- 優先度スキャナーツール:
- 削除率・活動期間・NSFW・制限/隔離/禁止コミュニティ判定
- アーカイブ優先度(スコア0-100)自動算出
- 出力例:subreddits_complete.json, subverses.json, guilds.json
- 活用例:
- 高リスクコミュニティの優先保存
- ストレージ計画
- 削除・検閲履歴の研究
アーカイブの社会的意義・参加方法
- インターネットの歴史保存:毎日消えるコンテンツを分散保存
- データダウンロード・ミラー協力:
- Reddit:3.28TB(Academic Torrents・マグネットリンク)
- Voat:~15GB(Archive.org)
- Ruqqus:~752MB(Archive.org、Dockerで自動展開対応)
- ローカル保存・トレントシード・研究者シェア推奨
- インスタンス登録・連携:
- 公開リーダーボード参加
- チーム協調保存・重複回避
- テンプレート提出で簡単登録
- 新データソース募集:
- Lemmy・Hacker News・Reddit代替等
- 発見データセットの共有でアーカイブ網拡大
- 他アーカイバーとの重複防止・発見性向上
画面例・デモ
- ダッシュボード:統計・投稿数・活動指標・ブランドカスタマイズ
- サブレディット一覧:スコア/コメント/日付別ソート・ページネーション
- 投稿+コメントページ:ネストスレッド・折りたたみUI・ユーザーフレア・アンカーリンク
- モバイル対応UI:タッチ操作・レスポンシブレイアウト
- 検索画面:Google風演算子・サブレディット/著者/日付/スコア絞り込み、全文検索・抜粋ハイライト
- サンプルアーカイブ:複数プラットフォーム横断の技術系コミュニティ例
- デモ:https://online-archives.github.io/redd-archiver-example/
なぜRedd-Archiverが重要か
- Reddit公式APIは事実上アーカイブ不可:Pushshiftも度々遮断警告
- 既存データを自分の手元で完全保存・閲覧:APIキー・レート制限・利用規約変更に左右されない
- エアギャップPC・Raspberry Pi・USB配布など多様な運用が可能
- Python・PostgreSQL・Jinja2・Dockerで構築、AI開発支援も活用
公式リソース
- GitHub:https://github.com/19-84/redd-archiver
- Pushshiftトレント:https://academictorrents.com/details/1614740ac8c94505e4ecb9d...
- ライブデモ:https://online-archives.github.io/redd-archiver-example/
- クイックスタート・ドキュメント:QUICKSTART.md、CHANGELOG.md
Redd-Archiverは、消えゆくインターネットの記憶を、誰でも自分の手で保存・活用できる強力なアーカイブ生成ツール。
個人、研究者、団体の協力で、ネット文化の歴史を未来へ残すプロジェクト。