RSS Feedreader werden auch in Zeiten von Facebook, Twitter und Google+ immer noch gerne benutzt. Nach dem Ende von Google Reader etablierte sich Feedly als das Mittel der Wahl am Markt. Jedoch macht man sich von solchen Anbietern abhängig, da deren Server ausfallen können (wie es bei Feedly schon öfter der Fall war) oder sich die Konditionen der Anbieter ändern können. Ein beliebter selbst gehosteter Feedreader ist Tiny Tiny RSS. Diese PHP Applikation lässt sich auch auf dem Raspberry Pi betreiben, womit man sie direkt zuhause betreiben kann. Ein weiteres Merkmal, neben dem relativ aufgeräumten Design, ist die Tatsache, dass es sowohl für Android als auch iOS Geräte, den Bewertungen zu urteilen, gute Apps gibt. Wie man Tiny Tiny RSS auf dem Raspberry Pi installiert, erkläre ich im Folgenden.
Voraussetzung: Raspbian oder vergleichbare Distribution installiert
Zunächst müssen wir einen Webserver installieren. Da nginx performanter als Apache2 ist und die Ressourcen des Raspberry Pis nicht die Größten sind, installieren wir nginx mit php5-fpm. Wie dies geht, erklärte ich bereits in dem Artikel Webserver Nginx installieren.
Nun müssen wir noch MySQL als Datenbankserver und das PHP Modul php5-curl installieren. Dies können wir bequem über den Paketmanager APT erledigen. Während der Installation müssen wir ein Passwort für den Root-Benutzer in dem MySQL-Server angeben. Dieses sollte möglichst stark sein.
sudo apt-get install mysql-server mysql-client php5-mysql php5-curl git
Wir sollten MySQL nun noch von Test-Datenbanken und anonymen Benutzern befreien, damit mehr Sicherheit gewährleistet wird. Hierzu führen wir folgendes Kommando aus. Dabei geben wir zunächst das gerade definierte Passwort ein, geben an, das Passwort nicht ändern zu wollen, den anonymen Benutzer zu löschen, den Remote Login für den Root-Benutzer zu deaktivieren, die Testdatenbank zu löschen und privilege tables zu neuzuladen.
sudo mysql_secure_installation
Nun müssen wir einen Benutzer und eine Datenbank in MySQL für Tiny Tiny RSS anlegen. Dazu müssen wir folgende Kommandos (du siehst im Folgenden die Ausgabe im Terminal) ausführen. In Zeile 8 muss PWD durch ein möglichst starkes Passwort für den Tiny Tiny RSS MySQL Benutzer ersetzt werden.
pi@raspberrypi ~ $ mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. [...] mysql> CREATE DATABASE ttrss; Query OK, 1 row affected (0.01 sec) mysql> GRANT ALL ON ttrss.* TO ttrss@localhost IDENTIFIED BY 'PWD'; Query OK, 0 rows affected (0.04 sec) mysql> exit Bye
Jetzt sind wir soweit, dass wir Tiny Tiny RSS herunterladen können. Dieses speichern wir in das Webroot-Verzeichnis von nginx, wo wir es entpacken und den Ordner in tt-rss umbenennen. Zum Zeitpunkt, als dieses Tutorial entstand, war die Version 1.11 aktuell. Das Projekt hat mittlerweile ein rolling Release, weshalb wir den Quellcode vom Git Repository des Projects holen.
cd /usr/share/nginx/www
git clone https://tt-rss.org/gitlab/fox/tt-rss.git
sudo chown -R www-data:www-data tt-rss/
Hat alles geklappt, so können wir die Installation von Tiny Tiny RSS nun im Browser unter http://IP/tt-rss/install/ (IP durch IP-Adresse oder DynDNS des Raspberry Pis ersetzen; wenn eine DynDNS Domain eingesetzt wird, unbedingt über diese aufrufen) aufrufen.
Dort angekommen wählen wir MySQL in dem Feld Database type, geben als Username und Database name den Namen ttrss an und geben das in Step 4 gewählte Passwort in das Feld Password ein. Bei Port geben wir 3306 an. Das Feld Host name können wir leer lassen. Anschließend klicken wir auf Test configuration.
Haben wir die Daten richtig eingegeben, so erhalten wir die Ausgabe Database test succeeded und können anschließend auf Initialize database klicken. Daraufhin sollte ein fettes Generated configuration file erscheinen mit einer Textbox darunter. Den darinstehenden Text (Inhalt der Konfigurationsdatei) kopieren wir und fügen ihn in die config.php Datei ein. In dem Editor nano kann man einfach mittels STRG + V einfügen und speichern kann man über STRG + X, Y und Enter.
sudo nano /usr/share/nginx/www/tt-rss/config.php
Wir müssen jetzt noch ein paar Rechte von den Ordnern im Tiny Tiny RSS Verzeichnis so abändern, dass sie beschreibbar sind.
cd /usr/share/nginx/www/tt-rss
sudo chmod -R 777 cache/images
sudo chmod -R 777 cache/upload
sudo chmod -R 777 cache/export
sudo chmod -R 777 cache/js
sudo chmod -R 777 feed-icons
sudo chmod -R 777 lock
Nun ist es an der Zeit den Daemon, der die eingetragenen RSS Feeds auf neue Artikel überprüft, zu starten. Dies können wir mit folgendem Kommando bewerkstelligen.
sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon > /dev/null &
Damit der Daemon beim Booten des Raspberry Pis immer automatisch startet, legen wir das soeben Ausgeführte noch in den Autostart. Dazu müssen wir folgende Zeile am Ende der Datei /etc/rc.local vor exit 0 in eine neue Zeile kopieren.
sudo nano /etc/rc.local
sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php --feeds --daemon > /dev/null &
Zuletzt können wir nun über http://IP/tt-rss/ (IP durch IP-Adresse oder DynDNS Domain des Raspberry Pis ersetzen) Tiny Tiny RSS aufrufen und uns mit dem Benutzer admin und dem Passwort password anmelden. Die Zugangsdaten können wir nun über Aktionen (oben rechts) > Einstellungen > Benutzer ändern.
Fertig installiert! Dein Tiny Tiny RSS Feedreader ist nun einsatzbereit. Und nicht vergessen auch den Feed meines Blogs einzutragen 😉
Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router
Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.