FreshRSS: własny kanał wiadomości bez algorytmów
Sieci społecznościowe decydują, które wpisy pokażą najpierw. W rezultacie ważna aktualizacja projektu może łatwo zniknąć wśród dziesiątek rekomendacji. FreshRSS działa inaczej: wybierasz źródła, a nowe treści pojawiają się w jednym chronologicznym kanale.
FreshRSS można zainstalować na własnym serwerze i używać jako jednej skrzynki odbiorczej dla blogów, serwisów informacyjnych, aktualizacji oprogramowania, forów, podcastów i innych źródeł udostępniających kanały RSS lub Atom. Ten poradnik opisuje funkcje aplikacji, wymagania serwera oraz instalację na VPS z Dockerem i HTTPS.
FreshRSS w pięciu krokach
- Utwórz Linux VPS i skieruj do niego subdomenę, na przykład
rss.example.com. - Zainstaluj Docker i Docker Compose.
- Uruchom FreshRSS razem z Caddy, aby automatycznie uzyskać HTTPS.
- Otwórz subdomenę, wybierz SQLite i utwórz konto.
- Zaimportuj subskrypcje z OPML albo dodaj witryny ręcznie.
Po wykonaniu tych czynności VPS będzie sprawdzać źródła zgodnie z harmonogramem, nawet gdy komputer użytkownika jest wyłączony.
Czym jest FreshRSS?
FreshRSS to darmowy, samodzielnie hostowany agregator RSS i Atom. Samodzielne hostowanie oznacza, że aplikacja i baza danych działają na kontrolowanym przez Ciebie serwerze, a nie w infrastrukturze usługi chmurowej.
Kanał RSS to specjalny plik, który witryna aktualizuje za każdym razem, gdy publikuje nową treść. FreshRSS regularnie pobiera takie pliki z wybranych źródeł i łączy ich wpisy w jednym interfejsie. Nieprzeczytane artykuły, ulubione pozycje i historia czytania są synchronizowane między urządzeniami.
Główna idea jest prosta: użytkownik sam decyduje, kogo obserwować i w jakiej kolejności przeglądać publikacje. FreshRSS nie szereguje wpisów według zaangażowania i nie wstawia rekomendowanych treści między subskrypcje.
Funkcje FreshRSS
| Funkcja | Do czego służy |
|---|---|
| Kategorie, statusy i ulubione | Oddzielanie źródeł służbowych, technicznych i prywatnych |
| Wyszukiwanie, filtry i zapisane zapytania | Wyświetlanie tylko publikacji na wybrany temat |
| Import i eksport OPML | Szybkie przenoszenie listy subskrypcji |
| Google Reader API i Fever API | Łączenie kompatybilnych aplikacji mobilnych i komputerowych |
| WebSub | Otrzymywanie wpisów zaraz po publikacji z obsługiwanych źródeł |
| Wielu użytkowników | Tworzenie osobnych kont dla rodziny lub zespołu |
| Motywy i rozszerzenia | Zmiana interfejsu i dodawanie funkcji |
| XPath i JSON Feed | Subskrybowanie niektórych źródeł bez standardowego kanału RSS lub Atom |
Zapisane zapytanie może stać się osobnym kanałem tematycznym, na przykład zawierającym tylko publikacje dotyczące bezpieczeństwa albo aktualizacje konkretnego produktu. Wynik można otworzyć w FreshRSS lub opublikować jako HTML albo RSS; dla list kanałów dostępny jest również OPML.
WebSub pozwala kompatybilnej witrynie powiadomić FreshRSS o nowym wpisie zamiast czekać na kolejne zaplanowane sprawdzenie. Aby to działało, instancja FreshRSS musi być dostępna z internetu pod prawidłowym publicznym adresem.
FreshRSS jest szczególnie przydatny dla programistów i administratorów systemów: blogi projektów, wydania, raporty o awariach i publikacje dotyczące bezpieczeństwa można zbierać w jednym kanale. W codziennym czytaniu zastępuje dziesiątki otwartych kart i utrzymuje dokładny status przeczytania na wszystkich urządzeniach.
Wymagania systemowe FreshRSS
FreshRSS potrzebuje niewielu zasobów. Obsługuje SQLite, PostgreSQL, MariaDB i MySQL, a instalacja ręczna wymaga serwera WWW oraz PHP 8.1 lub nowszego. W oficjalnym opisie znajduje się nawet test na Raspberry Pi 1 z 150 kanałami i 22 000 artykułów.
Praktyczne konfiguracje początkowe:
| Scenariusz | CPU | RAM | Pamięć masowa | Baza danych |
|---|---|---|---|---|
| Osobisty kanał | 1 vCPU | 1 GB | 10–20 GB SSD | SQLite |
| Rodzina lub mały zespół | 1–2 vCPU | 2 GB | 20–40 GB SSD | SQLite lub zewnętrzna baza |
| Wielu użytkowników i duże archiwum | Od 2 vCPU | Od 4 GB | Od 40 GB SSD | PostgreSQL lub MariaDB |
To wskazówki, a nie ścisłe wartości minimalne. Zużycie pamięci masowej zależy od liczby źródeł, częstotliwości publikacji i czasu przechowywania historii. VPS jest wygodniejszy niż domowy komputer, gdy potrzebujesz aktualizacji przez całą dobę, dostępu z zewnątrz, synchronizacji mobilnej i WebSub.
Jak zainstalować FreshRSS na VPS z Dockerem
W poniższej konfiguracji FreshRSS działa za Caddy. Caddy przyjmuje żądania zewnętrzne i automatycznie uzyskuje certyfikat TLS.
Potrzebujesz Linux VPS, Dockera zainstalowanego razem z poleceniem docker compose, subdomeny z rekordem A wskazującym na adres IP serwera oraz otwartych portów 80 i 443.
Krok 1. Utwórz katalog
sudo mkdir -p /opt/freshrss
sudo chown "$USER":"$USER" /opt/freshrss
cd /opt/freshrssKrok 2. Utwórz 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' uruchamia sprawdzanie kanałów w 3. i 33. minucie każdej godziny. FreshRSS nie aktualizuje pojedynczego kanału częściej niż mniej więcej raz na 20 minut, więc częstsze uruchamianie zadania zwykle nie jest potrzebne.
Krok 3. Utwórz Caddyfile
rss.example.com {
reverse_proxy freshrss:80
}Zastąp domenę własną. Gdy rekord DNS zostanie rozpropagowany, a porty będą dostępne, Caddy automatycznie uzyska i odnowi certyfikat.
Krok 4. Uruchom FreshRSS
docker compose up -d
docker compose psLogi możesz przejrzeć tym poleceniem:
docker compose logs -f --tail=100Otwórz https://rss.example.com. Kreator instalacji sprawdzi środowisko, poprosi o wybór bazy danych i utworzy pierwszego użytkownika. SQLite jest najprostszym wyborem dla osobistego serwera, ponieważ nie wymaga osobnego kontenera bazy danych.
Konfiguracja początkowa
FreshRSS często potrafi znaleźć kanał RSS lub Atom na podstawie zwykłego adresu witryny. Jeśli automatyczne wykrywanie nie zadziała, wpisz bezpośredni adres kanału. Subskrypcje z Feedly, Inoreader i innych czytników można wygodnie przenieść przez OPML.
Od razu uporządkuj źródła w kategorie, takie jak „najważniejsze”, „praca”, „bezpieczeństwo”, „dłuższe teksty” i „do przeczytania w tle”. Serwisy publikujące dużo materiałów nie powinny wypychać naprawdę ważnych aktualizacji z głównego kanału.
Aby połączyć aplikację, włącz API w ustawieniach uwierzytelniania i ustaw osobne hasło API w profilu. Adres Google Reader API wygląda tak:
https://rss.example.com/api/greader.phpLepiej nie używać tego samego hasła do głównego konta i API.
Jak nie utonąć w nieprzeczytanych artykułach
FreshRSS staje się najbardziej użyteczny po krótkiej konfiguracji:
- zostaw w głównym kanale tylko ważne źródła;
- użyj filtrów, aby automatycznie oznaczać niepotrzebne sekcje jako przeczytane;
- zapisuj zapytania dotyczące produktów, autorów i tematów;
- okresowo przeglądaj statystyki i usuwaj źródła, które tworzą tylko szum.
Rozszerzenia mogą dodawać szacowany czas czytania, wyróżnianie słów, proxy obrazów, osadzanie YouTube, powiadomienia webhook oraz klasyfikację artykułów przez kompatybilne API LLM. Dodatki firm trzecich instaluj tylko z zaufanych źródeł.
Aktualizacje, bezpieczeństwo i kopie zapasowe
Aby zaktualizować kontenery, uruchom:
cd /opt/freshrss
docker compose pull
docker compose up -dPrzed dużą aktualizacją utwórz kopię zapasową. Wolumen freshrss_data zawiera ustawienia użytkowników oraz, przy użyciu SQLite, bazę artykułów. Zachowaj również freshrss_extensions, jeśli korzystasz z dodatków. PostgreSQL, MariaDB i MySQL wymagają osobnego zrzutu bazy danych.
Podstawowe środki bezpieczeństwa:
- używaj HTTPS;
- po utworzeniu potrzebnych kont wyłącz otwartą rejestrację;
- nie włączaj dostępu anonimowego, jeśli nie jest konieczny;
- używaj osobnego hasła API;
- regularnie aktualizuj FreshRSS i jego rozszerzenia;
- przechowuj kopię zapasową poza VPS.
Eksport OPML nie zastępuje pełnej kopii zapasowej, ale pozwala szybko odtworzyć listę subskrypcji w dowolnym kompatybilnym czytniku RSS.
FreshRSS na VPS od tropic.host
FreshRSS jest dobrym pierwszym samodzielnie hostowanym serwisem: wymaga niewielu zasobów, działa w Dockerze i staje się użyteczny od razu po zaimportowaniu subskrypcji. Publiczny VPS zapewnia aktualizowanie kanałów przez całą dobę, dostęp z telefonu i prawidłowe działanie WebSub.
Do osobistej instalacji zwykle wystarcza niewielka konfiguracja Linux. W tropic.host możesz przypisać FreshRSS własną subdomenę, zacząć od podstawowego VPS i uniezależnić usługę od domowego komputera. Przy wyborze planu ważniejsze od dużej rezerwy mocy obliczeniowej są stabilność, miejsce na archiwum i kopie zapasowe.
Podsumowanie
FreshRSS zamienia dziesiątki witryn w uporządkowany osobisty kanał bez algorytmicznego sortowania. Obsługuje klientów mobilnych, filtry, zapisane zapytania, wielu użytkowników, WebSub i rozszerzenia, a jednocześnie pozostaje na tyle lekki, aby działać na małym VPS.
Do rozpoczęcia potrzebujesz Dockera, domeny i SQLite. Po instalacji skonfiguruj kategorie, automatyczne aktualizacje, HTTPS i kopie zapasowe. FreshRSS będzie wtedy pokazywać tylko wybrane źródła, pozostawiając użytkownikowi kontrolę nad czytaniem.
FAQ
Czy FreshRSS jest darmowy?
Tak. FreshRSS jest rozpowszechniany na licencji AGPL-3.0. Płacisz tylko za infrastrukturę, jeśli aplikacja działa na wynajętym VPS.
Czy można używać FreshRSS bez domeny?
Tak, wystawiając port kontenera. Przy stałym użytkowaniu lepiej skonfigurować domenę i HTTPS, ponieważ ułatwia to bezpieczny dostęp, synchronizację mobilną i WebSub.
Ile pamięci RAM potrzebuje FreshRSS?
Dla osobistego kanału rozsądnym początkiem jest 1 GB RAM i SQLite. Duże archiwum, wielu użytkowników lub dodatkowe usługi będą wymagać więcej pamięci.
Czy można dodać witrynę bez RSS?
Czasami. FreshRSS obsługuje pobieranie danych przez XPath, ale reguły trzeba skonfigurować ręcznie. Jeśli układ witryny się zmieni, to źródło może wymagać poprawki.
Co trzeba uwzględnić w kopii zapasowej?
Przede wszystkim wykonaj kopię wolumenu freshrss_data: przy użyciu SQLite zawiera on bazę artykułów. Zachowaj również freshrss_extensions i twórz zrzuty każdej zewnętrznej bazy danych.
