FreshRSS: Feed Berita Sendiri Tanpa Algoritma
Jejaring sosial menentukan kiriman mana yang ditampilkan lebih dahulu. Akibatnya, pembaruan penting sebuah proyek mudah terlewat sementara puluhan rekomendasi menggantikannya. FreshRSS bekerja dengan cara berbeda: Anda memilih sumbernya, lalu konten baru muncul dalam satu feed kronologis.
FreshRSS dapat dipasang di server sendiri dan digunakan sebagai kotak masuk terpadu untuk blog, situs berita, pembaruan perangkat lunak, forum, podcast, dan sumber lain yang menyediakan feed RSS atau Atom. Panduan ini membahas fitur aplikasi, persyaratan server, dan pemasangannya di VPS dengan Docker serta HTTPS.
FreshRSS dalam Lima Langkah
- Buat Linux VPS dan arahkan subdomain ke sana, misalnya
rss.example.com. - Pasang Docker dan Docker Compose.
- Jalankan FreshRSS bersama Caddy untuk HTTPS otomatis.
- Buka subdomain, pilih SQLite, dan buat akun.
- Impor langganan dari OPML atau tambahkan situs secara manual.
Setelah itu, VPS akan memeriksa sumber sesuai jadwal meskipun komputer pengguna sedang mati.
Apa Itu FreshRSS?
FreshRSS adalah agregator RSS dan Atom gratis yang bersifat self-hosted. Self-hosted berarti aplikasi dan database berjalan di server yang Anda kendalikan, bukan di infrastruktur layanan cloud.
Feed RSS adalah file khusus yang diperbarui situs web setiap kali menerbitkan konten baru. FreshRSS mengambil file tersebut secara berkala dari sumber yang dipilih dan menggabungkan entri-entri itu dalam satu antarmuka. Artikel belum dibaca, favorit, dan riwayat bacaan disinkronkan antarperangkat.
Gagasan utamanya sederhana: pengguna sendiri yang memutuskan siapa yang diikuti dan urutan publikasi yang dilihat. FreshRSS tidak mengurutkan entri berdasarkan interaksi dan tidak menyisipkan konten rekomendasi di antara langganan.
Fitur FreshRSS
| Fitur | Kegunaan |
|---|---|
| Kategori, status, dan favorit | Memisahkan sumber pekerjaan, teknis, dan pribadi |
| Pencarian, filter, dan kueri tersimpan | Menampilkan hanya publikasi pada topik tertentu |
| Impor dan ekspor OPML | Memindahkan daftar langganan dengan cepat |
| Google Reader API dan Fever API | Menghubungkan aplikasi seluler dan desktop yang kompatibel |
| WebSub | Menerima entri segera setelah publikasi dari sumber yang mendukung |
| Banyak pengguna | Membuat akun terpisah untuk keluarga atau tim |
| Tema dan ekstensi | Mengubah antarmuka dan menambahkan fitur |
| XPath dan JSON Feed | Berlangganan beberapa sumber tanpa feed RSS atau Atom standar |
Kueri tersimpan dapat menjadi feed terpisah berdasarkan topik, misalnya feed yang hanya berisi publikasi keamanan atau pembaruan produk tertentu. Hasilnya dapat dibuka di dalam FreshRSS atau diterbitkan sebagai HTML atau RSS; OPML juga tersedia untuk daftar feed.
WebSub memungkinkan situs web yang kompatibel memberi tahu FreshRSS tentang entri baru tanpa menunggu pemeriksaan terjadwal berikutnya. Agar berfungsi, instans FreshRSS harus dapat diakses dari internet melalui alamat publik yang valid.
FreshRSS sangat berguna bagi pengembang dan administrator sistem: blog proyek, rilis, laporan insiden, dan publikasi keamanan dapat dikumpulkan dalam satu feed. Untuk bacaan sehari-hari, FreshRSS menggantikan puluhan tab terbuka dan menjaga status baca yang tepat di semua perangkat.
Persyaratan Sistem FreshRSS
FreshRSS membutuhkan sedikit sumber daya. FreshRSS mendukung SQLite, PostgreSQL, MariaDB, dan MySQL, sedangkan instalasi manual memerlukan server web serta PHP 8.1 atau lebih baru. Deskripsi resmi bahkan mencakup pengujian di Raspberry Pi 1 dengan 150 feed dan 22.000 artikel.
Konfigurasi awal praktis:
| Skenario | CPU | RAM | Penyimpanan | Database |
|---|---|---|---|---|
| Feed pribadi | 1 vCPU | 1 GB | SSD 10–20 GB | SQLite |
| Keluarga atau tim kecil | 1–2 vCPU | 2 GB | SSD 20–40 GB | SQLite atau database eksternal |
| Banyak pengguna dan arsip besar | Mulai dari 2 vCPU | Mulai dari 4 GB | SSD mulai dari 40 GB | PostgreSQL atau MariaDB |
Angka ini adalah panduan, bukan minimum yang ketat. Konsumsi penyimpanan bergantung pada jumlah sumber, frekuensi publikasi, dan lamanya riwayat disimpan. VPS lebih nyaman daripada komputer rumah ketika Anda membutuhkan pembaruan sepanjang waktu, akses eksternal, sinkronisasi seluler, dan WebSub.
Cara Memasang FreshRSS di VPS dengan Docker
Dalam konfigurasi di bawah, FreshRSS berjalan di balik Caddy. Caddy menerima permintaan eksternal dan memperoleh sertifikat TLS secara otomatis.
Anda memerlukan Linux VPS, Docker dengan perintah docker compose, subdomain dengan catatan A yang mengarah ke alamat IP server, serta port 80 dan 443 yang terbuka.
Langkah 1. Buat Direktori
sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrssLangkah 2. Buat 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' memulai pemeriksaan feed pada menit ke-3 dan ke-33 setiap jam. FreshRSS tidak memperbarui satu feed lebih sering daripada sekitar sekali setiap 20 menit, sehingga menjalankan tugas lebih sering biasanya tidak diperlukan.
Langkah 3. Buat Caddyfile
rss.example.com {
reverse_proxy freshrss:80
}Ganti domain dengan domain Anda sendiri. Setelah catatan DNS menyebar dan port dapat diakses, Caddy akan memperoleh serta memperbarui sertifikat secara otomatis.
Langkah 4. Jalankan FreshRSS
docker compose up -d
docker compose psAnda dapat memeriksa log dengan perintah ini:
docker compose logs -f --tail=100Buka https://rss.example.com. Wizard instalasi akan memeriksa lingkungan, meminta Anda memilih database, dan membuat pengguna pertama. SQLite merupakan pilihan paling sederhana untuk server pribadi karena tidak memerlukan container database terpisah.
Konfigurasi Awal
FreshRSS sering kali dapat menemukan feed RSS atau Atom dari alamat biasa sebuah situs web. Jika penemuan otomatis tidak berhasil, masukkan URL langsung feed tersebut. Langganan dari Feedly, Inoreader, dan pembaca lain dapat dipindahkan dengan mudah melalui OPML.
Segera kelompokkan sumber ke dalam kategori seperti “wajib dibaca”, “pekerjaan”, “keamanan”, “bacaan panjang”, dan “bacaan latar”. Situs berita dengan volume tinggi sebaiknya tidak mendorong pembaruan yang benar-benar penting keluar dari feed utama.
Untuk menghubungkan aplikasi, aktifkan API di pengaturan autentikasi dan tetapkan kata sandi API terpisah di profil. Alamat Google Reader API terlihat seperti ini:
https://rss.example.com/api/greader.phpSebaiknya jangan menggunakan kata sandi yang sama untuk akun utama dan API.
Cara Agar Tidak Tenggelam dalam Artikel Belum Dibaca
FreshRSS menjadi paling berguna setelah sedikit dikonfigurasi:
- pertahankan hanya sumber penting di feed utama;
- gunakan filter untuk menandai bagian yang tidak diperlukan sebagai sudah dibaca secara otomatis;
- simpan kueri pencarian untuk produk, penulis, dan topik;
- tinjau statistik secara berkala dan hapus sumber yang hanya menghasilkan kebisingan.
Ekstensi dapat menambahkan perkiraan waktu baca, penyorotan kata, proxy gambar, penyematan YouTube, notifikasi webhook, dan klasifikasi artikel melalui API LLM yang kompatibel. Pasang add-on pihak ketiga hanya dari sumber tepercaya.
Pembaruan, Keamanan, dan Cadangan
Untuk memperbarui container, jalankan:
cd /opt/freshrss
docker compose pull
docker compose up -dBuat cadangan sebelum pembaruan besar. Volume freshrss_data berisi pengaturan pengguna dan, jika SQLite digunakan, database artikel. Simpan juga freshrss_extensions jika menggunakan add-on. PostgreSQL, MariaDB, dan MySQL memerlukan dump database terpisah.
Langkah keamanan minimum:
- gunakan HTTPS;
- nonaktifkan pendaftaran terbuka setelah akun yang diperlukan dibuat;
- jangan aktifkan akses anonim kecuali diperlukan;
- gunakan kata sandi API terpisah;
- perbarui FreshRSS dan ekstensinya secara rutin;
- simpan cadangan di luar VPS.
Ekspor OPML tidak menggantikan cadangan lengkap, tetapi memungkinkan pemulihan daftar langganan dengan cepat di pembaca RSS yang kompatibel.
FreshRSS di VPS dari tropic.host
FreshRSS merupakan layanan self-hosted pertama yang baik: membutuhkan sedikit sumber daya, berjalan di Docker, dan langsung berguna setelah langganan diimpor. VPS publik menyediakan pembaruan feed 24/7, akses dari ponsel, dan operasi WebSub yang benar.
Konfigurasi Linux kecil biasanya cukup untuk instalasi pribadi. Di tropic.host, Anda dapat memberikan subdomain sendiri untuk FreshRSS, memulai dengan VPS entry-level, dan menjaga layanan tetap terpisah dari komputer rumah. Saat memilih paket, stabilitas, penyimpanan arsip, dan cadangan lebih penting daripada cadangan daya pemrosesan yang besar.
Kesimpulan
FreshRSS mengubah puluhan situs web menjadi feed pribadi yang mudah dikelola tanpa pengurutan algoritmik. FreshRSS mendukung klien seluler, filter, kueri tersimpan, banyak pengguna, WebSub, dan ekstensi, tetapi tetap cukup ringan untuk VPS kecil.
Anda membutuhkan Docker, domain, dan SQLite untuk memulai. Setelah instalasi, konfigurasikan kategori, pembaruan otomatis, HTTPS, dan cadangan. FreshRSS kemudian hanya menampilkan sumber yang Anda pilih dan menjaga kendali bacaan di tangan pengguna.
FAQ
Apakah FreshRSS gratis?
Ya. FreshRSS didistribusikan di bawah lisensi AGPL-3.0. Anda hanya perlu membayar infrastruktur jika aplikasi berjalan di VPS sewaan.
Bisakah FreshRSS digunakan tanpa domain?
Ya, dengan membuka port container. Untuk penggunaan permanen, sebaiknya konfigurasikan domain dan HTTPS karena hal ini memudahkan akses aman, sinkronisasi seluler, dan WebSub.
Berapa banyak RAM yang dibutuhkan FreshRSS?
Untuk feed pribadi, memulai dengan RAM 1 GB dan SQLite merupakan pilihan yang wajar. Arsip besar, banyak pengguna, atau layanan tambahan membutuhkan lebih banyak memori.
Bisakah saya menambahkan situs web tanpa RSS?
Terkadang bisa. FreshRSS mendukung web scraping melalui XPath, tetapi aturannya harus dikonfigurasi secara manual. Jika tata letak situs berubah, sumber tersebut mungkin perlu diperbaiki.
Apa saja yang harus dicadangkan?
Yang paling utama, cadangkan volume freshrss_data: ketika SQLite digunakan, volume ini berisi database artikel. Simpan juga freshrss_extensions dan buat dump untuk setiap database eksternal.
