Tropic Host

FreshRSS: რა არის და როგორ დავაყენოთ VPS-ზე

1 წაკითხვის წთ
Tropic
FreshRSS: რა არის და როგორ დავაყენოთ VPS-ზე

Language: ka

FreshRSS: საკუთარი სიახლეების ლენტი ალგორითმების გარეშე

სოციალური ქსელები თავად წყვეტენ, რომელი პოსტები გაჩვენონ პირველ რიგში. შედეგად მნიშვნელოვანი პროექტის განახლება ადვილად შეიძლება გამოგრჩეთ, სანამ მის ადგილს ათობით რეკომენდაცია დაიკავებს. FreshRSS სხვაგვარად მუშაობს: წყაროებს თქვენ ირჩევთ, ახალი მასალა კი ერთ ქრონოლოგიურ ლენტაში ჩნდება.

FreshRSS შეგიძლიათ საკუთარ სერვერზე დააყენოთ და გამოიყენოთ როგორც ბლოგების, საინფორმაციო საიტების, პროგრამული განახლებების, ფორუმების, პოდკასტებისა და RSS ან Atom-არხების მომწოდებელი სხვა წყაროების ერთიანი შემომავალი. ამ სახელმძღვანელოში განხილულია აპლიკაციის შესაძლებლობები, სერვერის მოთხოვნები და VPS-ზე Docker-ითა და HTTPS-ით დაყენება.

FreshRSS ხუთ ნაბიჯში

  1. შექმენით Linux VPS და მიუთითეთ მასზე ქვედომენი, მაგალითად rss.example.com.
  2. დააყენეთ Docker და Docker Compose.
  3. გაუშვით FreshRSS Caddy-სთან ერთად ავტომატური HTTPS-ისთვის.
  4. გახსენით ქვედომენი, აირჩიეთ SQLite და შექმენით ანგარიში.
  5. შემოიტანეთ გამოწერები OPML-დან ან დაამატეთ საიტები ხელით.

ამის შემდეგ VPS დაგეგმილი ინტერვალით შეამოწმებს წყაროებს მაშინაც კი, როცა მომხმარებლის კომპიუტერი გამორთულია.

რა არის FreshRSS?

FreshRSS არის უფასო, საკუთარ სერვერზე განთავსებადი RSS და Atom აგრეგატორი. თვითჰოსტინგი ნიშნავს, რომ აპლიკაცია და მონაცემთა ბაზა იმ სერვერზე მუშაობს, რომელსაც თქვენ აკონტროლებთ, და არა ღრუბლოვანი სერვისის ინფრასტრუქტურაზე.

RSS-არხი სპეციალური ფაილია, რომელსაც ვებსაიტი ახალი მასალის გამოქვეყნებისას აახლებს. FreshRSS შერჩეული წყაროებიდან ამ ფაილებს რეგულარულად იღებს და მათ ჩანაწერებს ერთ ინტერფეისში აერთიანებს. წაუკითხავი სტატიები, რჩეულები და კითხვის ისტორია მოწყობილობებს შორის სინქრონიზდება.

მთავარი იდეა მარტივია: მომხმარებლები თავად წყვეტენ, ვის მიჰყვნენ და რა თანმიმდევრობით ნახონ პუბლიკაციები. FreshRSS ჩანაწერებს ჩართულობის მიხედვით არ ალაგებს და გამოწერებს შორის რეკომენდებულ მასალას არ სვამს.

FreshRSS-ის შესაძლებლობები

შესაძლებლობარისთვის გამოიყენება
კატეგორიები, სტატუსები და რჩეულებისამუშაო, ტექნიკური და პირადი წყაროების გამიჯვნა
ძიება, ფილტრები და შენახული მოთხოვნებიმხოლოდ შერჩეულ თემაზე პუბლიკაციების ჩვენება
OPML-ის იმპორტი და ექსპორტიგამოწერების სიის სწრაფად გადატანა
Google Reader API და Fever APIთავსებადი მობილური და დესკტოპ-აპლიკაციების დაკავშირება
WebSubმხარდაჭერილი წყაროებიდან ჩანაწერების მიღება გამოქვეყნებისთანავე
მრავალი მომხმარებელიოჯახისთვის ან გუნდისთვის ცალკე ანგარიშების შექმნა
თემები და გაფართოებებიინტერფეისის შეცვლა და შესაძლებლობების დამატება
XPath და JSON Feedზოგიერთ წყაროზე გამოწერა სტანდარტული RSS ან Atom-არხის გარეშე

შენახული მოთხოვნა შეიძლება ცალკე თემატურ არხად იქცეს, მაგალითად ისეთად, რომელიც მხოლოდ უსაფრთხოების პუბლიკაციებს ან კონკრეტული პროდუქტის განახლებებს შეიცავს. შედეგის გახსნა შესაძლებელია FreshRSS-ში ან მისი HTML-ისა და RSS-ის სახით გამოქვეყნება; არხების სიებისთვის OPML-იც ხელმისაწვდომია.

WebSub თავსებად ვებსაიტს საშუალებას აძლევს, FreshRSS-ს ახალი ჩანაწერის შესახებ შეატყობინოს და არ დაელოდოს შემდეგ დაგეგმილ შემოწმებას. ამისთვის FreshRSS-ის ინსტანცია ინტერნეტიდან მოქმედი საჯარო მისამართით უნდა იყოს ხელმისაწვდომი.

FreshRSS განსაკუთრებით სასარგებლოა დეველოპერებისა და სისტემური ადმინისტრატორებისთვის: პროექტების ბლოგები, რელიზები, ინციდენტების ანგარიშები და უსაფრთხოების პუბლიკაციები ერთ ლენტაში გროვდება. ყოველდღიური კითხვისას ის ათობით ღია ჩანართს ანაცვლებს და ყველა მოწყობილობაზე წაკითხვის ზუსტ სტატუსს სინქრონიზებულს ინარჩუნებს.

FreshRSS-ის სისტემური მოთხოვნები

FreshRSS-ს ცოტა რესურსი სჭირდება. ის მხარს უჭერს SQLite-ს, PostgreSQL-ს, MariaDB-სა და MySQL-ს, ხოლო ხელით დაყენებისთვის საჭიროა ვებსერვერი და PHP 8.1 ან უფრო ახალი. ოფიციალურ აღწერაში მოხსენიებულია ტესტიც, რომელიც Raspberry Pi 1-ზე 150 არხითა და 22,000 სტატიით ჩატარდა.

პრაქტიკული საწყისი კონფიგურაციები:

სცენარიCPURAMსაცავიმონაცემთა ბაზა
პირადი ლენტი1 vCPU1 GB10–20 GB SSDSQLite
ოჯახი ან მცირე გუნდი1–2 vCPU2 GB20–40 GB SSDSQLite ან გარე მონაცემთა ბაზა
ბევრი მომხმარებელი და დიდი არქივი2 vCPU-დან4 GB-დან40 GB SSD-დანPostgreSQL ან MariaDB

ეს სახელმძღვანელო მითითებებია და არა მკაცრი მინიმუმები. საცავის მოხმარება დამოკიდებულია წყაროების რაოდენობაზე, გამოქვეყნების სიხშირესა და ისტორიის შენახვის ხანგრძლივობაზე. VPS მოსახერხებელია სახლის კომპიუტერზე მეტად, როცა გჭირდებათ განახლებები მთელი დღე-ღამის განმავლობაში, გარე წვდომა, მობილური სინქრონიზაცია და WebSub.

როგორ დავაყენოთ FreshRSS VPS-ზე Docker-ით

ქვემოთ მოცემულ კონფიგურაციაში FreshRSS Caddy-ს უკან მუშაობს. Caddy გარე მოთხოვნებს იღებს და TLS-სერტიფიკატს ავტომატურად იღებს.

დაგჭირდებათ Linux VPS, Docker, რომელიც docker compose ბრძანებას აყენებს, ქვედომენი, რომლის A ჩანაწერიც სერვერის IP-მისამართზე მიუთითებს, და გახსნილი 80 და 443 პორტები.

ნაბიჯი 1. შექმენით დირექტორია

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

ნაბიჯი 2. შექმენით 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' არხების შემოწმებას ყოველი საათის მე-3 და 33-ე წუთზე იწყებს. FreshRSS ცალკეულ არხს დაახლოებით 20 წუთზე ხშირად არ აახლებს, ამიტომ ამ ამოცანის უფრო ხშირად გაშვება ჩვეულებრივ საჭირო არ არის.

ნაბიჯი 3. შექმენით Caddyfile

rss.example.com {
    reverse_proxy freshrss:80
}

დომენი თქვენით ჩაანაცვლეთ. DNS ჩანაწერის გავრცელებისა და პორტების ხელმისაწვდომობის შემდეგ Caddy სერტიფიკატს ავტომატურად აიღებს და განაახლებს.

ნაბიჯი 4. გაუშვით FreshRSS

docker compose up -d
docker compose ps

ლოგების ნახვა ამ ბრძანებით შეგიძლიათ:

docker compose logs -f --tail=100

გახსენით https://rss.example.com. დაყენების ოსტატი გარემოს შეამოწმებს, მონაცემთა ბაზის არჩევას მოგთხოვთ და პირველ მომხმარებელს შექმნის. SQLite პირადი სერვერისთვის უმარტივესი არჩევანია, რადგან მონაცემთა ბაზის ცალკე კონტეინერი არ სჭირდება.

საწყისი კონფიგურაცია

FreshRSS-ს ხშირად შეუძლია RSS ან Atom-არხის პოვნა ვებსაიტის ჩვეულებრივი მისამართიდან. თუ ავტომატური აღმოჩენა არ იმუშავებს, შეიყვანეთ არხის პირდაპირი URL. Feedly-დან, Inoreader-დან და სხვა წამკითხველებიდან გამოწერების გადმოტანა OPML-ით მოსახერხებლად შეგიძლიათ.

დაუყოვნებლივ დააჯგუფეთ წყაროები კატეგორიებად, მაგალითად „აუცილებლად წასაკითხი“, „სამუშაო“, „უსაფრთხოება“, „ვრცელი მასალა“ და „ფონური კითხვა“. მაღალი სიხშირით მომუშავე საინფორმაციო საიტებმა ნამდვილად მნიშვნელოვანი განახლებები მთავარ ლენტაში არ უნდა ჩაანაცვლონ.

აპლიკაციის დასაკავშირებლად ჩართეთ API ავთენტიფიკაციის პარამეტრებში და პროფილში ცალკე API-პაროლი დააყენეთ. Google Reader API-ის მისამართი ასე გამოიყურება:

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

უმჯობესია, ძირითადი ანგარიშისა და API-სთვის ერთი და იგივე პაროლი არ გამოიყენოთ.

როგორ არ ჩაიძიროთ წაუკითხავ სტატიებში

ცოტა კონფიგურაციის შემდეგ FreshRSS უფრო სასარგებლო ხდება:

  • მთავარ ლენტაში მხოლოდ მნიშვნელოვანი წყაროები დატოვეთ;
  • ფილტრებით არასაჭირო განყოფილებები ავტომატურად მონიშნეთ წაკითხულად;
  • შეინახეთ ძიების მოთხოვნები პროდუქტებისთვის, ავტორებისა და თემებისთვის;
  • პერიოდულად გადახედეთ სტატისტიკას და წაშალეთ წყაროები, რომლებიც მხოლოდ ხმაურს ქმნის.

გაფართოებებს შეუძლიათ კითხვის დროის შეფასება, სიტყვების მონიშვნა, სურათების პროქსირება, YouTube-ის ჩასმა, webhook-შეტყობინებები და სტატიების კლასიფიკაცია თავსებადი LLM API-ით. მესამე მხარის დამატებები მხოლოდ სანდო წყაროებიდან დააყენეთ.

განახლებები, უსაფრთხოება და სარეზერვო ასლები

კონტეინერების გასაახლებლად გაუშვით:

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

დიდი განახლების წინ სარეზერვო ასლი შექმენით. freshrss_data ტომი მომხმარებლის პარამეტრებსა და, SQLite-ის გამოყენებისას, სტატიების მონაცემთა ბაზას შეიცავს. თუ დამატებებს იყენებთ, freshrss_extensions-იც შეინახეთ. PostgreSQL, MariaDB და MySQL ცალკე მონაცემთა ბაზის dump-ს მოითხოვს.

უსაფრთხოების მინიმალური ზომები:

  • გამოიყენეთ HTTPS;
  • საჭირო ანგარიშების შექმნის შემდეგ ღია რეგისტრაცია გამორთეთ;
  • აუცილებლობის გარეშე ანონიმური წვდომა არ ჩართოთ;
  • გამოიყენეთ ცალკე API-პაროლი;
  • რეგულარულად განაახლეთ FreshRSS და მისი გაფართოებები;
  • შეინახეთ სარეზერვო ასლი VPS-ის გარეთ.

OPML-ის ექსპორტი სრულ სარეზერვო ასლს ვერ ცვლის, თუმცა ის გამოწერების სიის ნებისმიერ თავსებად RSS-წამკითხველში სწრაფად აღდგენის საშუალებას იძლევა.

FreshRSS VPS-ზე tropic.host-დან

FreshRSS კარგი პირველი თვითჰოსტინგის სერვისია: ცოტა რესურსს მოითხოვს, Docker-ში მუშაობს და გამოწერების იმპორტისთანავე სასარგებლო ხდება. საჯარო VPS უზრუნველყოფს არხების განახლებას 24/7 რეჟიმში, ტელეფონიდან წვდომასა და WebSub-ის სწორ მუშაობას.

პირადი დაყენებისთვის მცირე Linux-კონფიგურაცია ჩვეულებრივ საკმარისია. tropic.host-ზე შეგიძლიათ FreshRSS-ს საკუთარი ქვედომენი დაუთმოთ, საწყისი VPS-ით დაიწყოთ და სერვისი სახლის კომპიუტერისგან დამოუკიდებლად შეინარჩუნოთ. გეგმის არჩევისას სტაბილურობა, არქივის საცავი და სარეზერვო ასლები დამუშავების დიდი რეზერვის არსებობაზე მნიშვნელოვანია.

დასკვნა

FreshRSS ათობით ვებსაიტს ალგორითმული რანჟირების გარეშე მართვად პირად ლენტად აქცევს. ის მხარს უჭერს მობილურ კლიენტებს, ფილტრებს, შენახულ მოთხოვნებს, მრავალ მომხმარებელს, WebSub-სა და გაფართოებებს, თან მცირე VPS-ისთვის საკმარისად მსუბუქი რჩება.

დასაწყებად გჭირდებათ Docker, დომენი და SQLite. დაყენების შემდეგ მოაწესრიგეთ კატეგორიები, ავტომატური განახლებები, HTTPS და სარეზერვო ასლები. ამის შემდეგ FreshRSS მხოლოდ თქვენ მიერ არჩეულ წყაროებს გაჩვენებთ და კითხვის კონტროლს მომხმარებლის ხელში დატოვებს.

ხშირად დასმული კითხვები

FreshRSS უფასოა?

დიახ. FreshRSS AGPL-3.0 ლიცენზიით ვრცელდება. ინფრასტრუქტურის საფასურის გადახდა მხოლოდ მაშინ გჭირდებათ, როცა აპლიკაცია ნაქირავებ VPS-ზე მუშაობს.

შეიძლება FreshRSS-ის გამოყენება დომენის გარეშე?

დიახ, კონტეინერის პორტის გამოქვეყნებით. მუდმივი გამოყენებისთვის უმჯობესია დომენი და HTTPS დააკონფიგურიროთ, რადგან ეს უსაფრთხო წვდომას, მობილურ სინქრონიზაციასა და WebSub-ს ამარტივებს.

რამდენი RAM სჭირდება FreshRSS-ს?

პირადი ლენტისთვის 1 GB RAM-ითა და SQLite-ით დაწყება გონივრულია. დიდი არქივი, რამდენიმე მომხმარებელი ან დამატებითი სერვისები მეტ მეხსიერებას მოითხოვს.

შემიძლია RSS-ის გარეშე ვებსაიტის დამატება?

ზოგჯერ. FreshRSS XPath-ის საშუალებით ვებ-სკრეპინგს უჭერს მხარს, თუმცა წესების ხელით კონფიგურაციაა საჭირო. თუ ვებსაიტის განლაგება შეიცვლება, შეიძლება ამ წყაროს შესწორება გახდეს საჭირო.

რისი სარეზერვო ასლი უნდა შევქმნა?

უპირველესად შექმენით freshrss_data ტომის ასლი: SQLite-ის გამოყენებისას ის სტატიების მონაცემთა ბაზას შეიცავს. ასევე შეინახეთ freshrss_extensions და შექმენით გარე მონაცემთა ბაზის dump-ები.