Tropic Host

FreshRSS: какво представлява и как да го инсталирате на VPS

6 минути четене
Tropic
FreshRSS: какво представлява и как да го инсталирате на VPS

Language: bg

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 SSDPostgreSQL или 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 ще показва само избраните от вас източници и ще остави контрола върху четенето във вашите ръце.

FAQ

FreshRSS безплатен ли е?

Да. FreshRSS се разпространява под лиценза AGPL-3.0. Трябва да плащате само за инфраструктурата, ако приложението работи на нает VPS.

Може ли FreshRSS да се използва без домейн?

Да, като публикувате порта на контейнера. За постоянна употреба е по-добре да настроите домейн и HTTPS, защото това улеснява сигурния достъп, мобилната синхронизация и WebSub.

Колко RAM е необходим на FreshRSS?

За личен поток разумното начало е 1 GB RAM и SQLite. Голям архив, много потребители или допълнителни услуги ще изискват повече памет.

Мога ли да добавя сайт без RSS?

Понякога. FreshRSS поддържа извличане на данни от сайта чрез XPath, но правилата трябва да се конфигурират ръчно. Ако оформлението на сайта се промени, източникът може да се нуждае от корекция.

Какво трябва да се архивира?

На първо място архивирайте тома freshrss_data: при използване на SQLite той съдържа базата данни със статиите. Запазете и freshrss_extensions и създайте dump на всяка външна база данни.