Tropic Host

FreshRSS: bu nima va uni VPSʼga qanday o‘rnatish mumkin

6 daqiqa o‘qish
Tropic
FreshRSS: bu nima va uni VPSʼga qanday o‘rnatish mumkin

Language: uz

FreshRSS: algoritmlarsiz shaxsiy yangiliklar lentasi

Ijtimoiy tarmoqlar qaysi postlarni avval ko‘rsatishni o‘zlari hal qiladi. Natijada muhim loyiha yangilanishi o‘nlab tavsiyalar orasida osongina ko‘zdan qochishi mumkin. FreshRSS boshqacha ishlaydi: manbalarni siz tanlaysiz, yangi kontent esa yagona xronologik lentada paydo bo‘ladi.

FreshRSSʼni o‘z serveringizga o‘rnatib, bloglar, yangiliklar saytlari, dasturiy ta’minot yangilanishlari, forumlar, podkastlar va RSS yoki Atom lentasini taqdim etadigan boshqa manbalar uchun yagona kiruvchi quti sifatida ishlatishingiz mumkin. Ushbu qo‘llanmada ilovaning imkoniyatlari, server talablari va VPSʼga Docker hamda HTTPS orqali o‘rnatish ko‘rib chiqiladi.

FreshRSS besh qadamda

  1. Linux VPS yarating va unga subdomenni yo‘naltiring, masalan rss.example.com.
  2. Docker va Docker Composeʼni o‘rnating.
  3. Avtomatik HTTPS uchun FreshRSSʼni Caddy bilan birga ishga tushiring.
  4. Subdomenni oching, SQLiteʼni tanlang va hisob yarating.
  5. Obunalarni OPMLʼdan import qiling yoki saytlarni qo‘lda qo‘shing.

Shundan so‘ng VPS foydalanuvchining kompyuteri o‘chiq bo‘lsa ham, manbalarni jadval bo‘yicha tekshiradi.

FreshRSS nima?

FreshRSS — bepul, o‘z serveringizda joylashtiriladigan RSS va Atom agregatori. Self-hosted atamasi ilova va ma’lumotlar bazasi bulutli xizmat infratuzilmasida emas, siz nazorat qiladigan serverda ishlashini anglatadi.

RSS lentasi — sayt yangi kontent e’lon qilganda yangilaydigan maxsus fayl. FreshRSS tanlangan manbalardan ushbu fayllarni muntazam olib, ularning yozuvlarini bitta interfeysga birlashtiradi. O‘qilmagan maqolalar, sevimlilar va o‘qish tarixi qurilmalar o‘rtasida sinxronlanadi.

Asosiy g‘oya oddiy: foydalanuvchilar kimni kuzatish va nashrlarni qaysi tartibda ko‘rishni o‘zlari hal qiladi. FreshRSS yozuvlarni jalb etilish darajasiga qarab saralamaydi va obunalar orasiga tavsiya qilingan kontentni qo‘shmaydi.

FreshRSS imkoniyatlari

ImkoniyatNima uchun ishlatiladi
Kategoriyalar, holatlar va sevimlilarIsh, texnik va shaxsiy manbalarni ajratish
Qidiruv, filtrlar va saqlangan so‘rovlarTanlangan mavzudagi nashrlarni ko‘rsatish
OPML importi va eksportiObunalar ro‘yxatini tez ko‘chirish
Google Reader API va Fever APIMos mobil va kompyuter ilovalarini ulash
WebSubQo‘llab-quvvatlanadigan manbalardan nashr etilishi bilan yozuv olish
Bir nechta foydalanuvchiOila yoki jamoa uchun alohida hisoblar yaratish
Mavzular va kengaytmalarInterfeysni o‘zgartirish va imkoniyat qo‘shish
XPath va JSON FeedStandart RSS yoki Atom lentasi bo‘lmagan ayrim manbalarga obuna bo‘lish

Saqlangan so‘rov alohida mavzuli lentaga aylanishi mumkin, masalan faqat xavfsizlik nashrlari yoki muayyan mahsulot yangilanishlaridan iborat lentaga. Natijani FreshRSS ichida ochish yoki HTML yoxud RSS sifatida e’lon qilish mumkin; lentalar ro‘yxati uchun OPML ham mavjud.

WebSub mos keladigan saytga keyingi rejalashtirilgan tekshiruvni kutmasdan yangi yozuv haqida FreshRSSʼga xabar berish imkonini beradi. Buning uchun FreshRSS nusxasi internetdan haqiqiy ommaviy manzil orqali foydalanish mumkin bo‘lishi kerak.

FreshRSS dasturchilar va tizim ma’murlari uchun ayniqsa foydali: loyiha bloglari, relizlar, hodisa hisobotlari va xavfsizlik nashrlarini bitta lentada to‘plash mumkin. Kundalik o‘qishda u o‘nlab ochiq tablarning o‘rnini bosadi va barcha qurilmalarda o‘qish holatini aniq sinxronlaydi.

FreshRSS tizim talablari

FreshRSS kam resurs talab qiladi. U SQLite, PostgreSQL, MariaDB va MySQLʼni qo‘llab-quvvatlaydi, qo‘lda o‘rnatish uchun esa veb-server va PHP 8.1 yoki undan yangiroq versiya kerak. Rasmiy tavsifda hatto 150 ta lenta va 22,000 ta maqola bilan Raspberry Pi 1ʼda o‘tkazilgan sinov ham keltiriladi.

Amaliy boshlang‘ich konfiguratsiyalar:

SsenariyCPURAMXotiraMa’lumotlar bazasi
Shaxsiy lenta1 vCPU1 GB10–20 GB SSDSQLite
Oila yoki kichik jamoa1–2 vCPU2 GB20–40 GB SSDSQLite yoki tashqi ma’lumotlar bazasi
Ko‘p foydalanuvchi va katta arxiv2 vCPU dan4 GB dan40 GB SSD danPostgreSQL yoki MariaDB

Bular qat’iy minimumlar emas, balki yo‘riqnomalardir. Xotira sarfi manbalar soni, nashr chastotasi va tarix qancha vaqt saqlanishiga bog‘liq. Sutka davomida yangilanish, tashqi kirish, mobil sinxronlash va WebSub kerak bo‘lsa, VPS uy kompyuteriga qaraganda qulayroq.

FreshRSSʼni VPSʼga Docker bilan qanday o‘rnatish mumkin

Quyidagi konfiguratsiyada FreshRSS Caddy ortida ishlaydi. Caddy tashqi so‘rovlarni qabul qiladi va TLS sertifikatini avtomatik oladi.

Sizga Linux VPS, docker compose buyrug‘i o‘rnatilgan Docker, A yozuvi server IP manziliga yo‘naltirilgan subdomen hamda ochiq 80 va 443 portlari kerak bo‘ladi.

1-qadam. Katalog yarating

sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrss

2-qadam. compose.yaml yarating

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' har soatning 3- va 33-daqiqalarida lentani tekshirishni boshlaydi. FreshRSS alohida lentani taxminan 20 daqiqada bir martadan ko‘p yangilamaydi, shuning uchun vazifani tez-tez ishga tushirish odatda kerak emas.

3-qadam. Caddyfile yarating

rss.example.com {
    reverse_proxy freshrss:80
}

Domenni o‘zingiznikiga almashtiring. DNS yozuvi tarqalib, portlar ochiq bo‘lgach, Caddy sertifikatni avtomatik oladi va yangilaydi.

4-qadam. FreshRSSʼni ishga tushiring

docker compose up -d
docker compose ps

Loglarni quyidagi buyruq bilan ko‘rishingiz mumkin:

docker compose logs -f --tail=100

https://rss.example.com manzilini oching. O‘rnatish ustasi muhitni tekshiradi, ma’lumotlar bazasini tanlashni so‘raydi va birinchi foydalanuvchini yaratadi. SQLite shaxsiy server uchun eng sodda tanlovdir, chunki alohida ma’lumotlar bazasi konteyneri talab qilinmaydi.

Dastlabki sozlash

FreshRSS ko‘pincha RSS yoki Atom lentasini saytning oddiy manzilidan topa oladi. Avtomatik aniqlash ishlamasa, lentaning to‘g‘ridan-to‘g‘ri URL manzilini kiriting. Feedly, Inoreader va boshqa o‘quvchilardagi obunalarni OPML orqali qulay ko‘chirish mumkin.

Manbalarni darhol «albatta o‘qish», «ish», «xavfsizlik», «uzun maqolalar» va «fon o‘qishi» kabi kategoriyalarga ajrating. Ko‘p yangilanadigan yangilik saytlari haqiqatan muhim yangiliklarni asosiy lentadan siqib chiqarmasligi kerak.

Ilovani ulash uchun autentifikatsiya sozlamalarida APIʼni yoqing va profilda alohida API parolini belgilang. Google Reader API manzili quyidagicha ko‘rinadi:

https://rss.example.com/api/greader.php

Asosiy hisob va API uchun bir xil paroldan foydalanmaganingiz ma’qul.

O‘qilmagan maqolalarga ko‘milib qolmaslik

FreshRSS biroz sozlangandan keyin yanada foydali bo‘ladi:

  • asosiy lentada faqat muhim manbalarni qoldiring;
  • filtrlar yordamida keraksiz bo‘limlarni avtomatik o‘qilgan deb belgilang;
  • mahsulotlar, mualliflar va mavzular uchun qidiruv so‘rovlarini saqlang;
  • statistikani vaqti-vaqti bilan ko‘rib, faqat shovqin yaratadigan manbalarni o‘chiring.

Kengaytmalar o‘qish vaqtini baholash, so‘zlarni ajratib ko‘rsatish, rasmlar proksisi, YouTubeʼni joylashtirish, webhook bildirishnomalari va mos LLM API orqali maqolalarni tasniflashni qo‘shishi mumkin. Uchinchi tomon qo‘shimchalarini faqat ishonchli manbalardan o‘rnating.

Yangilanishlar, xavfsizlik va zaxira nusxalari

Konteynerlarni yangilash uchun quyidagilarni bajaring:

cd /opt/freshrss
docker compose pull
docker compose up -d

Katta yangilanishdan oldin zaxira nusxasini yarating. freshrss_data volume foydalanuvchi sozlamalari va SQLite ishlatilganda maqolalar ma’lumotlar bazasini o‘z ichiga oladi. Qo‘shimchalardan foydalansangiz, freshrss_extensions ni ham saqlang. PostgreSQL, MariaDB va MySQL alohida ma’lumotlar bazasi dumpʼini talab qiladi.

Minimal xavfsizlik choralari:

  • HTTPSʼdan foydalaning;
  • kerakli hisoblarni yaratgach, ochiq ro‘yxatdan o‘tishni o‘chiring;
  • zarur bo‘lmasa anonim kirishni yoqmang;
  • alohida API parolidan foydalaning;
  • FreshRSS va uning kengaytmalarini muntazam yangilang;
  • zaxira nusxasini VPSʼdan tashqarida saqlang.

OPML eksporti to‘liq zaxira nusxasining o‘rnini bosa olmaydi, biroq obunalar ro‘yxatini istalgan mos RSS o‘quvchida tez tiklashga imkon beradi.

tropic.host VPSʼida FreshRSS

FreshRSS — o‘z serverida joylashtirishni boshlash uchun yaxshi xizmat: kam resurs talab qiladi, Dockerʼda ishlaydi va obunalar import qilingach darhol foydali bo‘ladi. Ommaviy VPS 24/7 lentalar yangilanishini, telefondan kirishni va WebSubʼning to‘g‘ri ishlashini ta’minlaydi.

Shaxsiy o‘rnatish uchun kichik Linux konfiguratsiyasi odatda yetarli. tropic.hostda FreshRSSʼga o‘z subdomeningizni ajratib, boshlang‘ich VPSʼdan foydalanishingiz va xizmatni uy kompyuteridan mustaqil saqlashingiz mumkin. Tarif tanlashda katta hisoblash zaxirasidan ko‘ra barqarorlik, arxiv xotirasi va zaxira nusxalari muhimroq.

Xulosa

FreshRSS o‘nlab saytlarni algoritmik saralashsiz boshqariladigan shaxsiy lentaga aylantiradi. U mobil mijozlar, filtrlar, saqlangan so‘rovlar, bir nechta foydalanuvchi, WebSub va kengaytmalarni qo‘llab-quvvatlaydi hamda kichik VPS uchun yetarlicha yengil qoladi.

Boshlash uchun Docker, domen va SQLite kerak. O‘rnatgandan keyin kategoriyalar, avtomatik yangilanishlar, HTTPS va zaxira nusxalarini sozlang. Shundan so‘ng FreshRSS faqat siz tanlagan manbalarni ko‘rsatadi va o‘qish nazoratini foydalanuvchi qo‘lida qoldiradi.

Ko‘p so‘raladigan savollar

FreshRSS bepulmi?

Ha. FreshRSS AGPL-3.0 litsenziyasi ostida tarqatiladi. Ilova ijaraga olingan VPSʼda ishlasa, faqat infratuzilma uchun to‘laysiz.

FreshRSSʼdan domainsiz foydalanish mumkinmi?

Ha, konteyner portini tashqariga chiqarish orqali. Doimiy foydalanish uchun domen va HTTPSʼni sozlagan ma’qul, chunki bu xavfsiz kirish, mobil sinxronlash va WebSubʼni soddalashtiradi.

FreshRSSʼga qancha RAM kerak?

Shaxsiy lenta uchun 1 GB RAM va SQLiteʼdan boshlash ma’qul. Katta arxiv, bir nechta foydalanuvchi yoki qo‘shimcha xizmatlar ko‘proq xotira talab qiladi.

RSSʼi bo‘lmagan saytni qo‘sha olamanmi?

Ba’zan. FreshRSS XPath orqali veb-skreypingni qo‘llab-quvvatlaydi, ammo qoidalarni qo‘lda sozlash kerak. Sayt maketi o‘zgarsa, manbani tuzatish talab qilinishi mumkin.

Nimani zaxiralash kerak?

Avvalo freshrss_data volumeʼini zaxiralang: SQLite ishlatilganda u maqolalar ma’lumotlar bazasini o‘z ichiga oladi. freshrss_extensions ni ham saqlang va tashqi ma’lumotlar bazasi dumpʼlarini yarating.