- Công cụ mã nguồn mở chuyển đổi dữ liệu từ các nền tảng như Reddit, Voat, Ruqqus thành kho lưu trữ HTML dựa trên PostgreSQL
- Xử lý cục bộ 2,38 tỷ bài đăng Reddit (bao gồm hơn 40 nghìn subreddit), đồng thời cung cấp thiết kế thân thiện với di động và giao diện không cần JavaScript
- Trong bối cảnh quyền truy cập Reddit API gần như bị chặn và ứng dụng bên thứ ba cùng quyền truy cập dữ liệu bị ngăn cản, đây là nỗ lực tận dụng bộ dữ liệu Pushshift sẵn có để chuyển đổi thành quyền sở hữu cá nhân đối với kho lưu trữ Reddit hoàn chỉnh
- Hoạt động bằng HTML tĩnh không có JavaScript, không yêu cầu ngoài, không theo dõi, có thể vận hành dưới nhiều hình thức như ngoại tuyến, môi trường air-gap, USB, Raspberry Pi, máy chủ LAN
- Hỗ trợ phân tích và truy vấn quy mô lớn nhờ tìm kiếm toàn văn PostgreSQL (FTS), hơn 30 REST API, và máy chủ MCP (29 công cụ) để tích hợp với công cụ AI
Thay đổi trong môi trường truy cập dữ liệu Reddit
- Reddit API trên thực tế đã chuyển sang trạng thái gần như không thể dùng cho mục đích lưu trữ
- Hệ sinh thái ứng dụng bên thứ ba sụp đổ và các mối đe dọa chặn quyền truy cập bộ dữ liệu Pushshift lặp đi lặp lại
- Bộ dữ liệu Pushshift là một kho lưu trữ quy mô lớn, được tích lũy qua thời gian bằng cách thu thập bài đăng và bình luận công khai trên Reddit, bao gồm hàng tỷ bản ghi văn bản
- Đây là dữ liệu snapshot từ các thời điểm trong quá khứ được thu thập thông qua API chính thức của Reddit, nên có thể sử dụng mà không cần truy cập máy chủ hoặc API Reddit hiện tại
- Sau các thay đổi chính sách API và hạn chế truy cập dữ liệu, nó đang được sử dụng như nguồn dữ liệu công khai cuối cùng trên thực tế để bảo tồn lịch sử Reddit và phân tích quy mô lớn
- Thông qua Pushshift, toàn bộ bản ghi Reddit trong quá khứ đã được công khai dưới dạng torrent
Tổng quan dự án Redd-Archiver
- Redd-Archiver v1.0 chuyển đổi các bản dump dữ liệu công khai của Reddit, Voat, Ruqqus để tạo ra kho lưu trữ HTML có thể duyệt được
- Sử dụng backend PostgreSQL để xử lý các bộ dữ liệu lớn với mức bộ nhớ cố định (4GB), đồng thời cung cấp tìm kiếm nhanh bằng FTS dựa trên chỉ mục GIN
- Đầu ra HTML cho phép sắp xếp, phân trang và duyệt cây bình luận ngay cả khi ngoại tuyến
Cấu trúc cốt lõi của công cụ lưu trữ Redd-Archiver
- Sử dụng các bản dump Reddit (.zst), Voat (SQL), Ruqqus (.7z) làm đầu vào
- Tích hợp đa nền tảng: kết hợp 3 nền tảng thành một kho lưu trữ duy nhất. Hỗ trợ tự động nhận diện nền tảng và tìm kiếm hợp nhất
- Cung cấp hệ thống đường dẫn
/r/, /v/, /g/ bằng cờ CLI và tiền tố URL
- Tạo file HTML tĩnh để loại bỏ phụ thuộc vào máy chủ
- Chỉ cần mở
index.html là có thể duyệt, không cần mạng bên ngoài
- Bố cục responsive ưu tiên di động và điều hướng thân thiện với cảm ứng
- Cung cấp chỉ mục sắp xếp theo điểm số, bình luận, ngày tháng và phân trang
- Tương tác dựa trên CSS, không cần JavaScript
- Cấu hình PostgreSQL FTS hỗ trợ tìm kiếm toàn văn hợp nhất giữa các nền tảng
- Lọc theo từ khóa, tác giả, ngày tháng, điểm số, v.v.
- Cung cấp REST API bao gồm truy vấn bài đăng, bình luận, người dùng, subreddit và truy vấn tổng hợp
- Bao gồm máy chủ MCP cho phép truy vấn trực tiếp kho lưu trữ từ công cụ AI
- Có thể truy vấn bài đăng, bình luận, người dùng và tìm kiếm từ Claude Desktop hoặc Claude Code
- Có thể xử lý hàng chục triệu bài đăng trên mỗi instance
- Nhờ cấu trúc PostgreSQL, mức sử dụng bộ nhớ giữ ổn định bất kể kích thước dữ liệu
- Với toàn bộ 2,38B bài đăng, khuyến nghị phân tán vận hành thành nhiều instance theo chủ đề
- Được triển khai dựa trên Python, PostgreSQL, Jinja2, Docker (đồng thời tận dụng Claude Code như công cụ hỗ trợ phát triển tổng thể)
Kịch bản triển khai và vận hành
- Hỗ trợ duyệt ngoại tuyến bằng ổ USB hoặc thư mục cục bộ
- Local/homelab: chạy trong môi trường HTTP hoặc Tor chỉ với một lệnh
- HTTPS production: tự động thiết lập chứng chỉ Let’s Encrypt (khoảng 5 phút)
- Tor hidden service: truy cập qua địa chỉ
.onion mà không cần port forwarding
- Static hosting: có thể tải lên GitHub Pages hoặc Codeberg Pages (không bao gồm chức năng tìm kiếm)
- Triển khai bằng Docker: cấu hình tự động hoàn chỉnh bao gồm PostgreSQL
- Hỗ trợ đồng thời duyệt ngoại tuyến, máy chủ tìm kiếm cục bộ và chế độ Tor/HTTPS
Thông tin công khai
1 bình luận
Ý kiến trên Hacker News
Đây là một cách rất hay để self-host kho lưu trữ
Cá nhân tôi ước gì có một plugin tự động khôi phục bình luận đã bị xóa hoặc bị bot ghi đè về bản gốc
Một phần lý do khiến Reddit bây giờ khó dùng là vì một nửa các liên kết cũ đã biến thành những bình luận vô nghĩa do bị ghi đè để phản đối
Trớ trêu là bản gốc vẫn còn trong các kho lưu trữ phục vụ huấn luyện AI, nhưng từ góc độ người dùng thì lại không thể tìm được những thứ như cách sửa lỗi driver máy in từ 2 năm trước
Việc làm cho trang web kém hữu ích hơn chính là mục tiêu của họ, và cốt lõi của cuộc phản đối là khiến người dùng rời đi
Tôi không muốn lục lại kho lưu trữ để vô hiệu hóa quyết định ấy. Cứ bỏ qua và tiếp tục thôi
Có thể nhận dữ liệu qua torrent
Liên kết: kho lưu trữ redd-archiver
Điều này giúp quyết định nên ưu tiên bảo tồn cộng đồng nào
Đây là một dự án thực sự tuyệt vời
Ngoài PushShift còn có các kho lưu trữ khác — chẳng hạn như Arctic Shift hay PullPush cung cấp các bộ dữ liệu khác nhau
Tùy theo phạm vi yêu cầu xóa, các bài đăng hoặc bình luận được bao gồm có thể khác nhau
Tôi tự hỏi liệu có thể dùng dữ liệu này để seed lại một mạng xã hội phi tập trung mới không
Kiểu như fork một dự án vậy
API cũng hỗ trợ việc này để có thể cùng nhau host kho lưu trữ theo mô hình phi tập trung
Dự án này thật sự rất thú vị
Điều tôi thắc mắc là liệu bộ dữ liệu Pushshift có được cập nhật định kỳ hay chỉ là ảnh chụp tại một thời điểm nhất định
Nếu self-host thì không biết có cần tải lại dữ liệu mới theo chu kỳ hay không
watchful1 đang chia nhỏ và xử lý lại dữ liệu, và trong tương lai dự kiến sẽ lấy dump Arctic Shift để hỗ trợ cập nhật hàng tháng
Liên kết liên quan:
Tôi cũng đang làm một dự án tương tự và đã tải dữ liệu Pushshift Reddit lên Hugging Face Datasets
Khi seed torrent yếu, có thể tải trực tiếp từng tệp tại huggingface.co/datasets/nick007x/pushshift-reddit
Hữu ích cho những ai muốn thử dữ liệu theo tháng hoặc chỉ một subreddit cụ thể
Tôi đã thử dựng môi trường cục bộ bằng Docker Compose nhưng thất bại
Không có tệp
.env.example, và ngay cả khi tự đặt biến môi trường thủ công thì vẫn phát sinh vấn đề đường dẫn volumeCó vẻ vẫn cần được hoàn thiện thêm
mkdirtrong tài liệuCommit liên quan: 0bb1039, c3754ea
Tôi tò mò liệu có thể tích hợp với ứng dụng Apollo đã chết để khôi phục lại Reddit của một thời điểm trong quá khứ không
Tôi không muốn lưu toàn bộ Reddit trên máy tính của mình
Sẽ tốt hơn nếu có thể chọn chỉ một subreddit cụ thể
watchful1 đã tách dữ liệu theo từng subreddit nên có thể chỉ tải phần mình muốn
Tôi muốn biết có cách nào kiểm tra xem những subreddit đã chuyển sang riêng tư từ 2–3 năm trước có nằm trong dump dữ liệu hay không
Có thể kiểm tra trạng thái riêng tư trong trường trạng thái, và còn có nhiều chi tiết khác