Przeglądarkowy czytnik RSS na banana pi

Czytnik RSS – bardzo przydatne narzędzie. Wystarczy dodać swoje ulubione strony (zdecydowana większość posiada kanał rss) i każdy nowy wpis pojawi się w czytniku. Czyli wszystkie nowości z interesujących nas stron w jednym miejscu. Pierwsze czytniki były programami desktopowymi, uruchamianymi na komputerze, nieco później pojawiły się wersje on-line, bardzo wygodne, bo dostępne przez przeglądarkę z praktycznie każdego urządzenia z dostępem do internetu.
Chyba najpopularniejszym takim czytnikiem był Google Reader, wyłączony w połowie 2013 roku. I wtedy zaczęły pojawiać się lepsze i gorsze alternatywy. Po testach kilku z nich zdecydowałem się na Tiny Tiny RSS na własnym „hostingu”.

Prywatny serwer www na Banana Pi

Tiny Tiny RSS można zainstalować gdziekolwiek: na płatnym czy darmowym hostingu, byle było wsparcie dla php i baza mysql lub postgresql. Równie dobrze może to być własny serwerek www, który odpowiednio skonfigurowany będzie na pewno szybszy niż darmowe konta, a jego stabilność będzie zależała głównie od naszego łącza internetowego i dostaw prądu. Do niedawna używałem do tego celu cienkiego klienta: Odczyt temperatury przez internet. Początkowo całość była zainstalowana na starym pendrivie, później zainstalowałem dysk 2,5″: Montaż dysku twardego w cienkim kliencie HP T5720. Maszyna działała z przyzwoitą prędkością i stabilnie, ale lepsze jest wrogiem dobrego i od niedawna wszystkie funkcje serwerka przeniosłem na Banana Pi. W porównaniu z terminalem, płytka ma 2 razy więcej RAMu, szybszy procesor, jest znacznie mniejsza i pobiera 10 razy mniej prądu. Konfiguracja jest bardzo podobna – Bananian to Debian skompilowany pod BPi. Wstępną konfigurację tego systemu opisałem tutaj: Szybki start – Banana Pi i Bananian (warto wyłączyć pamięć swap), konfigurację sieci przeprowadza się identycznie jak w Raspbianie na Raspberry Pi: Konfiguracja sieci w Raspberry Pi (ustawienia zapisane w pliku interfaces). Jeśli połączenie sieciowe działała, można podłączyć się przez ssh i dalszą konfigurację przeprowadzić zdalnie z desktopa czy notebooka.

Bananian – instalacja serwera www i silnika bazy danych

Kolejny etap, to instalacja serwera www. Z kilku do wyboru wybrałem nginx, z którym miałem najmniej do czynienia. Podobnie z serwerem bazy danych: zamiast mysql zdecydowałem się na postgresql. Trzeba również zainstalować php i kilka modułów. Wszystko załatwiamy za jednym razem:

Wszystkie paczki zajmą na karcie pamięci około 90MB:

Bananian - nginx i postgresql

Po instalacji trzeba skonfigurować nginx, edytując plik /etc/nginx/sites-enabled/default:

modyfikacja pliku sites-enabled

I konfiguracja php, poprzez zmiany w pliku /etc/php5/fpm/php.ini:

Bananian konfiguracja php5 fpm

Teraz w postgresql założymy sobie użytkownika uttrss i nadamy mu hasło (w apostrofach):

Następnie utworzymy nową bazę o nazwie ttrss, do której uprawnienia będzie miał nasz nowy użytkownik:

Wychodzimy z postgresa i przelogowujemy się na roota:

Tak wyglądały u mnie wyżej opisane kroki:

Postgresql- utworzenie bazy i użytkownika

Na koniec restartujemy postgresa:

Instalacja i konfiguracja Tiny Tiny RSS

Skonfigurowane wcześniej środowisko jest gotowe do instalacji ttrss. Jeśli nie instalowaliśmy wcześniej git’a, to zróbmy to teraz:

Sprawdźmy, czy po wpisaniu adresu banana pi w przeglądarce pojawi się strona z napisem Welcome to nginx!. W głównym katalogu na pliki strony www (/usr/share/nginx/www), założyłem folder ttrss, czyli czytnik będzie się wyświetlał po wpisaniu w przeglądarkę http://adres_ip_bpi/ttrss/. Tam też sklonowałem pliki Tiny Tiny RSS:

Plików jest sporo i może to zająć dłuższą chwilę:

Instalacja ttrss na banana pi

Po wpisaniu w przeglądarkę adresu Banana Pi i folderu instalacji (http://ip_bpi/ttrss/install), przywita nas instalator, który od razu będzie sypał błędami spowodowanymi brakiem możliwości zapisu w folderach, które tego wymagają:

Instalacja tiny tiny rss brak uprawnień

Naprawa jest szybka i prosta, przechodzimy do katalogu głównego tiny tiny rss:

i nadajemy uprawnienia na foldery wymienione w instalatorze:

Uprawnienia na foldery ttrss

Po odświeżeniu okna przeglądarki wszystko powinno być ok, wybieramy typ bazy danych, wpisujemy nazwę usera, hasło, nazwę bazy i jej  adres (localhost). Warto wcisnąć [Test configuration] by mieć pewność, że wszystko działa. Na koniec inicjujemy bazę przyciskiem [Initialize database]:

Instalacja Tiny Tiny RSS

Otrzymamy wygenerowany plik config.php i komunikat, że nie można go zapisać. Kopiujemy więc jego zawartość, otwieramy plik config.php choćby w nano (/usr/share/nginx/www/ttrss/config.php) i wklejamy konfigurację:

Plik config.php dla tt-rss

Po wpisaniu adresu czytnika, powinniśmy ujrzeć stronę logowania, domyślny user to admin z hasłem password:

Logowanie do Tiny Tiny RSS

Po wejściu, w prawym górnym rogu rozwijamy przycisk i wybieramy ustawienia (settings). Język interfejsu jest automatycznie wykrywany na podstawie języka przeglądarki. W menu Użytkownicy należałoby zmienić hasło administratora i założyć nowego usera z poziomem dostępu ‚użytkownik’, z którego będziemy korzystali na co dzień. Logujemy się na nowego użytkownika i przechodzimy do ustawień. W zakładce kanały możemy dodać Kategorie np. DIY, Informacje, Motoryzacja itp., w których będą umieszczane rssy tematycznie powiązanych stron internetowych. W oknie głównym czytnika pod przyciskiem [Działania] -> Prenumeruj kanał, wpisujemy kanał rss interesującej nas strony. Tak wygląda okno główne z zajawkami wpisów prenumerowanych stron:

Tiny Tiny RSS - kanały

Po kliknięciu w wybrany artykuł jesteśmy przenoszeni na stronę z wpisem.

Automatyczna aktualizacja kanałów i plugin do Chrome

Bez żadnej konfiguracji Tiny Tiny RSS będzie aktualizował kanały (sprawdzał czy są nowe wpisy na zaprenumerowanych stronach) podczas logowania. Ale szkoda czasu na logowanie by sprawdzić czy jest coś nowego. TT-RSS może bez naszego udziału sprawdzać nowości, np. poprzez uruchamianie w cronie specjalnego skryptu w php. Fajne, ale żeby zobaczyć czy są świeże wpisy i tak trzeba się zalogować. Znalazłem wtyczkę do Chromium / Google Chrome, która wysyła do tt-rss żądanie aktualizacji. Wtyczka jest oficjalna i nazywa się Tiny Tiny RSS Notifier:

Wtyczka tt-rss notifier

Konfiguracja jest bardzo prosta, po jej instalacji i włączeniu, w prawym górnym rogu przeglądarki pojawia się mała ikona z literą t. Należy kliknąć na niej prawym guzikiem myszy i wybrać Opcje. Wpisujemy adres czytnika, nazwę użytkownika (uwaga na małe/wielkie litery) i zaznaczamy ptaszkami 3 opcje, z czego ostatnia będzie wymuszała sprawdzanie nowych wpisów w zaprenumerowanych kanałach rss:

Tiny Tiny RSS Notifier konfiguracja

Od teraz za każdym razem gdy uruchomię przeglądarkę, plugin będzie wysyłał do tt-rss sygnał aktualizacji.

Są jeszcze aplikacje na androida, ta oficjalna jest płatna i kosztuje około 20zł.

Dużo informacji na temat konfiguracji i ewentualnych problemów można znaleźć na oficjalnym forum projektu tt-rss. Są tam przewodniki, które krok po kroku opisują instalację czytnika na różnych platformach jak i rozwiązania wielu napotykanych przez innych problemów. Jest też wiele wątków o instalacji tt-rss na Raspberry Pi, które z powodzeniem można przenieść na platformę Banana Pi.

Wystawienie Tiny Tiny RSS na świat

Jeśli skrypt zainstalowaliśmy na jakimś zewnętrznym hostingu, to nie ma problemu z dostępem do czytnika z każdego miejsca na świecie. W moim przypadku serwer z banana pi znajduje się za NAT’em i nie posiada publicznego adresu, więc wszystko działa w sieci lokalnej. By to zmienić trzeba przekierować na routerze port 80 na adres Banana Pi. Jeśli posiadamy zmienne IP (większość usług aDSL, internet z sieci komórkowych) warto jeszcze założyć konto u dostawcy domeny z dynamicznym dnsem, np. darmowe noip.com. Każda zmiana adresu może być uaktualniana przez klienta zainstalowanego na Banana Pi (inadyn, ddclient) lub jak u mnie – przez oprogramowanie routera. Od teraz każdy dzień można zaczynać od kubka dobrej kawy i przeglądania nowości na interesujących nas stronach ;).

Wpis “Przeglądarkowy czytnik RSS na banana pi” komentowano 4 razy

Dodaj komentarz