Tropic Host

FreshRSS: Apa Itu dan Cara Memasangnya di VPS

5 min dibaca
Tropic
FreshRSS: Apa Itu dan Cara Memasangnya di VPS

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

  1. Buat Linux VPS dan arahkan subdomain ke sana, misalnya rss.example.com.
  2. Pasang Docker dan Docker Compose.
  3. Jalankan FreshRSS bersama Caddy untuk HTTPS otomatis.
  4. Buka subdomain, pilih SQLite, dan buat akun.
  5. 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

FiturKegunaan
Kategori, status, dan favoritMemisahkan sumber pekerjaan, teknis, dan pribadi
Pencarian, filter, dan kueri tersimpanMenampilkan hanya publikasi pada topik tertentu
Impor dan ekspor OPMLMemindahkan daftar langganan dengan cepat
Google Reader API dan Fever APIMenghubungkan aplikasi seluler dan desktop yang kompatibel
WebSubMenerima entri segera setelah publikasi dari sumber yang mendukung
Banyak penggunaMembuat akun terpisah untuk keluarga atau tim
Tema dan ekstensiMengubah antarmuka dan menambahkan fitur
XPath dan JSON FeedBerlangganan 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:

SkenarioCPURAMPenyimpananDatabase
Feed pribadi1 vCPU1 GBSSD 10–20 GBSQLite
Keluarga atau tim kecil1–2 vCPU2 GBSSD 20–40 GBSQLite atau database eksternal
Banyak pengguna dan arsip besarMulai dari 2 vCPUMulai dari 4 GBSSD mulai dari 40 GBPostgreSQL 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/freshrss

Langkah 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 ps

Anda dapat memeriksa log dengan perintah ini:

docker compose logs -f --tail=100

Buka 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.php

Sebaiknya 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 -d

Buat 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.