Language: vi
FreshRSS: nguồn tin riêng không có thuật toán
Mạng xã hội quyết định bài đăng nào xuất hiện trước. Vì vậy, một cập nhật quan trọng của dự án có thể dễ dàng bị bỏ qua giữa hàng chục nội dung được đề xuất. FreshRSS hoạt động theo cách khác: bạn chọn nguồn, còn nội dung mới xuất hiện trong một nguồn tin theo thứ tự thời gian.
FreshRSS có thể được cài trên máy chủ riêng và dùng như hộp thư chung cho blog, trang tin, bản phát hành phần mềm, diễn đàn, podcast và các nguồn khác cung cấp RSS hoặc Atom. Hướng dẫn này trình bày các tính năng, yêu cầu máy chủ và cách cài đặt ứng dụng trên VPS bằng Docker và HTTPS.
FreshRSS trong năm bước
- Tạo VPS Linux và trỏ một tên miền phụ vào đó, chẳng hạn
rss.example.com. - Cài đặt Docker và Docker Compose.
- Chạy FreshRSS cùng Caddy để có HTTPS tự động.
- Mở tên miền phụ, chọn SQLite và tạo tài khoản.
- Nhập các gói đăng ký từ OPML hoặc thêm website thủ công.
Sau đó, VPS sẽ kiểm tra các nguồn theo lịch ngay cả khi máy tính của bạn đã tắt.
FreshRSS là gì?
FreshRSS là trình tổng hợp RSS và Atom miễn phí, tự lưu trữ. Tự lưu trữ nghĩa là ứng dụng và cơ sở dữ liệu chạy trên máy chủ do bạn kiểm soát, thay vì trên hạ tầng của một dịch vụ đám mây.
Nguồn RSS là một tệp đặc biệt được website cập nhật mỗi khi có nội dung mới. FreshRSS định kỳ lấy các tệp này từ những nguồn đã chọn rồi gộp các mục vào một giao diện. Bài chưa đọc, mục yêu thích và lịch sử đọc được đồng bộ giữa các thiết bị.
Ý tưởng chính rất đơn giản: người dùng tự quyết định theo dõi ai và xem các ấn phẩm theo thứ tự nào. FreshRSS không xếp hạng mục theo mức độ tương tác và không chèn nội dung đề xuất vào giữa các gói đăng ký.
Tính năng của FreshRSS
| Tính năng | Dùng để làm gì |
|---|---|
| Danh mục, trạng thái và mục yêu thích | Phân chia nguồn công việc, kỹ thuật và cá nhân |
| Tìm kiếm, bộ lọc và truy vấn đã lưu | Chỉ hiển thị nội dung về chủ đề đã chọn |
| Nhập và xuất OPML | Chuyển nhanh danh sách gói đăng ký |
| Google Reader API và Fever API | Kết nối ứng dụng di động và máy tính tương thích |
| WebSub | Nhận mục mới ngay sau khi nguồn được hỗ trợ xuất bản |
| Nhiều người dùng | Tạo tài khoản riêng cho gia đình hoặc nhóm |
| Giao diện và tiện ích mở rộng | Thay đổi giao diện và bổ sung tính năng |
| XPath và JSON Feed | Theo dõi một số nguồn không có RSS hoặc Atom tiêu chuẩn |
Một truy vấn đã lưu có thể trở thành nguồn tin riêng theo chủ đề, chẳng hạn chỉ chứa các bài về bảo mật hoặc cập nhật của một sản phẩm cụ thể. Kết quả có thể được mở trong FreshRSS hoặc xuất bản dưới dạng HTML hay RSS; danh sách nguồn cũng có thể xuất sang OPML.
WebSub cho phép website tương thích thông báo cho FreshRSS về mục mới thay vì chờ đến lần kiểm tra theo lịch tiếp theo. Để hoạt động, máy chủ FreshRSS phải có thể truy cập từ Internet qua một địa chỉ công khai hợp lệ.
FreshRSS đặc biệt hữu ích cho nhà phát triển và quản trị viên hệ thống: blog dự án, bản phát hành, báo cáo sự cố và thông báo bảo mật đều có thể được gom vào một nguồn tin. Với việc đọc hằng ngày, nó thay thế hàng chục tab đang mở và giữ chính xác trạng thái đã đọc trên mọi thiết bị.
Yêu cầu hệ thống của FreshRSS
FreshRSS cần rất ít tài nguyên. Ứng dụng hỗ trợ SQLite, PostgreSQL, MariaDB và MySQL, còn cài đặt thủ công yêu cầu máy chủ web cùng PHP 8.1 trở lên. Mô tả chính thức thậm chí còn có thử nghiệm chạy trên Raspberry Pi 1 với 150 nguồn và 22.000 bài viết.
Cấu hình khởi điểm thực tế:
| Tình huống | CPU | RAM | Bộ nhớ | Cơ sở dữ liệu |
|---|---|---|---|---|
| Nguồn tin cá nhân | 1 vCPU | 1 GB | SSD 10–20 GB | SQLite |
| Gia đình hoặc nhóm nhỏ | 1–2 vCPU | 2 GB | SSD 20–40 GB | SQLite hoặc cơ sở dữ liệu bên ngoài |
| Nhiều người dùng và kho lưu trữ lớn | Từ 2 vCPU | Từ 4 GB | SSD từ 40 GB | PostgreSQL hoặc MariaDB |
Đây là hướng dẫn, không phải mức tối thiểu cứng. Dung lượng sử dụng phụ thuộc vào số nguồn, tần suất xuất bản và thời gian bạn giữ lịch sử. VPS thuận tiện hơn máy tính tại nhà khi cần cập nhật suốt ngày đêm, truy cập bên ngoài, đồng bộ với điện thoại và WebSub.
Cách cài FreshRSS trên VPS bằng Docker
Trong cấu hình dưới đây, FreshRSS chạy phía sau Caddy. Caddy nhận các yêu cầu bên ngoài và tự động lấy chứng chỉ TLS.
Bạn cần một VPS Linux, Docker đã cài với lệnh docker compose, một tên miền phụ có bản ghi A trỏ đến địa chỉ IP của máy chủ, cùng các cổng 80 và 443 được mở.
Bước 1. Tạo thư mục
sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrssBước 2. Tạo compose.yaml
services:
freshrss:
image: freshrss/freshrss:latest
container_name: freshrss
restart: unless-stopped
logging:
options:
max-size: 10m
environment:
TZ: Etc/UTC
CRON_MIN: '3,33'
FRESHRSS_ENV: production
TRUSTED_PROXY: 172.16.0.0/12
volumes:
- freshrss_data:/var/www/FreshRSS/data
- freshrss_extensions:/var/www/FreshRSS/extensions
caddy:
image: caddy:2
container_name: freshrss-caddy
restart: unless-stopped
depends_on:
- freshrss
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- caddy_data:/data
- caddy_config:/config
volumes:
freshrss_data:
freshrss_extensions:
caddy_data:
caddy_config:CRON_MIN: '3,33' khởi chạy việc kiểm tra nguồn vào phút thứ 3 và 33 của mỗi giờ. FreshRSS không cập nhật một nguồn riêng lẻ thường xuyên hơn khoảng 20 phút một lần, vì vậy chạy tác vụ thường xuyên hơn thường không cần thiết.
Bước 3. Tạo Caddyfile
rss.example.com {
reverse_proxy freshrss:80
}Thay tên miền bằng tên miền của bạn. Sau khi bản ghi DNS được cập nhật và các cổng có thể truy cập, Caddy sẽ tự động lấy và gia hạn chứng chỉ.
Bước 4. Khởi động FreshRSS
docker compose up -d
docker compose psBạn có thể xem nhật ký bằng lệnh sau:
docker compose logs -f --tail=100Mở https://rss.example.com. Trình hướng dẫn cài đặt sẽ kiểm tra môi trường, yêu cầu bạn chọn cơ sở dữ liệu và tạo người dùng đầu tiên. SQLite là lựa chọn đơn giản nhất cho máy chủ cá nhân vì không cần container cơ sở dữ liệu riêng.
Cấu hình ban đầu
FreshRSS thường có thể tự phát hiện nguồn RSS hoặc Atom từ địa chỉ thông thường của website. Nếu không tự phát hiện được, hãy nhập URL trực tiếp của nguồn. Có thể chuyển các gói đăng ký từ Feedly, Inoreader và những trình đọc khác thông qua OPML.
Ngay từ đầu, hãy phân loại nguồn thành các nhóm như “phải đọc”, “công việc”, “bảo mật”, “bài đọc dài” và “đọc nền”. Các trang tin có lưu lượng cao không nên đẩy những cập nhật thực sự quan trọng ra khỏi nguồn chính.
Để kết nối một ứng dụng, hãy bật API trong phần cài đặt xác thực và đặt mật khẩu API riêng trong hồ sơ. Địa chỉ Google Reader API có dạng:
https://rss.example.com/api/greader.phpTốt hơn hết là không dùng cùng một mật khẩu cho tài khoản chính và API.
Cách tránh ngập trong các bài chưa đọc
FreshRSS trở nên hữu ích nhất sau một chút cấu hình:
- chỉ giữ các nguồn quan trọng trong nguồn chính;
- dùng bộ lọc để tự động đánh dấu những mục không cần thiết là đã đọc;
- lưu truy vấn tìm kiếm cho sản phẩm, tác giả và chủ đề;
- định kỳ xem thống kê và xóa các nguồn chỉ tạo thêm nhiễu.
Tiện ích mở rộng có thể bổ sung ước tính thời gian đọc, tô sáng từ, proxy hình ảnh, nhúng YouTube, thông báo webhook và phân loại bài viết qua API LLM tương thích. Chỉ cài tiện ích bên thứ ba từ nguồn đáng tin cậy.
Cập nhật, bảo mật và sao lưu
Để cập nhật các container, hãy chạy:
cd /opt/freshrss
docker compose pull
docker compose up -dHãy tạo bản sao lưu trước một lần cập nhật lớn. Volume freshrss_data chứa cài đặt người dùng và, khi dùng SQLite, cơ sở dữ liệu bài viết. Nếu sử dụng tiện ích, hãy giữ cả freshrss_extensions. PostgreSQL, MariaDB và MySQL cần được xuất bản sao cơ sở dữ liệu riêng.
Các biện pháp bảo mật tối thiểu:
- sử dụng HTTPS;
- tắt đăng ký mở sau khi tạo đủ tài khoản cần thiết;
- không bật truy cập ẩn danh nếu không cần;
- sử dụng mật khẩu API riêng;
- thường xuyên cập nhật FreshRSS và các tiện ích mở rộng;
- giữ một bản sao lưu bên ngoài VPS.
Xuất OPML không thay thế bản sao lưu đầy đủ, nhưng giúp khôi phục nhanh danh sách gói đăng ký trong bất kỳ trình đọc RSS tương thích nào.
FreshRSS trên VPS của tropic.host
FreshRSS là dịch vụ tự lưu trữ đầu tiên phù hợp: cần ít tài nguyên, chạy trong Docker và hữu ích ngay sau khi nhập các gói đăng ký. VPS công khai cung cấp cập nhật nguồn 24/7, truy cập từ điện thoại và WebSub hoạt động đúng cách.
Một cấu hình Linux nhỏ thường đủ cho cài đặt cá nhân. Trên tropic.host, bạn có thể dành một tên miền phụ riêng cho FreshRSS, bắt đầu với VPS cấp cơ bản và giữ dịch vụ độc lập với máy tính tại nhà. Khi chọn gói, tính ổn định, dung lượng lưu trữ và bản sao lưu quan trọng hơn một lượng công suất xử lý dự phòng lớn.
Kết luận
FreshRSS biến hàng chục website thành một nguồn tin cá nhân dễ quản lý mà không xếp hạng theo thuật toán. Ứng dụng hỗ trợ máy khách di động, bộ lọc, truy vấn đã lưu, nhiều người dùng, WebSub và tiện ích mở rộng, đồng thời vẫn đủ nhẹ để chạy trên VPS nhỏ.
Bạn cần Docker, một tên miền và SQLite để bắt đầu. Sau khi cài đặt, hãy cấu hình danh mục, cập nhật tự động, HTTPS và bản sao lưu. FreshRSS sẽ chỉ hiển thị các nguồn bạn chọn và để quyền kiểm soát việc đọc trong tay người dùng.
FAQ
FreshRSS có miễn phí không?
Có. FreshRSS được phân phối theo giấy phép AGPL-3.0. Bạn chỉ cần trả phí cho hạ tầng nếu ứng dụng chạy trên VPS thuê.
Có thể sử dụng FreshRSS mà không cần tên miền không?
Có, bằng cách mở cổng của container. Với việc sử dụng lâu dài, tốt hơn nên cấu hình tên miền và HTTPS vì điều này giúp truy cập an toàn, đồng bộ với điện thoại và WebSub đơn giản hơn.
FreshRSS cần bao nhiêu RAM?
Với nguồn tin cá nhân, bắt đầu bằng 1 GB RAM và SQLite là hợp lý. Kho lưu trữ lớn, nhiều người dùng hoặc các dịch vụ bổ sung sẽ cần nhiều bộ nhớ hơn.
Có thể thêm website không có RSS không?
Đôi khi có. FreshRSS hỗ trợ thu thập dữ liệu web qua XPath, nhưng quy tắc phải được cấu hình thủ công. Nếu bố cục website thay đổi, nguồn đó có thể cần được sửa lại.
Cần sao lưu những gì?
Trước hết hãy sao lưu volume freshrss_data: khi sử dụng SQLite, volume này chứa cơ sở dữ liệu bài viết. Đồng thời giữ freshrss_extensions và tạo bản dump cho mọi cơ sở dữ liệu bên ngoài.
