Ersatz für Google Reader: Mit der Open-Source-Software Tiny Tiny RSS lässt sich ein vielseitiger Feedreader auf dem eigenen Server installieren. Lesen lassen sich die Feeds im Browser-Fenster oder mit mobilen Apps.
Tiny Tiny RSS: Reader und Aggregator für Feeds auf dem eigenen Webserver
Wer der Cloud nicht traut, Dienste lieber selbst hostet oder einen Ersatz für Google Reader sucht, erhält mit Tiny Tiny RSS (TTRSS) einen ausgewachsenen Reader und Feed-Aggregator für den eigenen Webserver. Die Open-Source-Software bietet eine übersichtliche Web-Oberfläche zum Abonnieren, Lesen und Verwalten von Atom-, RDF- und RSS-Feeds. Damit lassen sich dieselben Feeds auf verschiedenen Rechnern und Geräten lesen. Für Smartphones und Tablets bietet Tiny Tiny RSS außerdem eigene Apps.
Die Software basiert auf PHP, bietet eine Ajax-Oberfläche und setzt ein typisches LAMP-System voraus (Linux, Apache, MySQL, PHP), funktioniert aber auch mit PostgreSQL. Mit dem Reader lassen sich Feeds in Kategorien einsortieren und Artikel bewerten. Daneben bietet Tiny Tiny RSS ein Feld für eigene Anmerkungen, Tags, eine Volltextsuche in den Feeds, Mehrbenutzer-Verwaltung, verschiedene Sprachen für die Oberfläche und Tastaturbefehle. Die Browser-Unterstützung umfasst Firefox, Chrome/Chromium und Opera. Der Internet Explorer wird offiziell nicht unterstützt, doch zumindest mit neueren Versionen des IE sollte die Software ohne Probleme laufen. Für Android gibt es bei Google Play einen maßgeschneiderten Client, von dem es sogar schon einen Fork gibt.
Das Artikelfenster unterhalb der Feedübersicht präsentiert Text und zeigt – falls vorhanden – auch Bilder.
Mit seinem Funktionsumfang ist Tiny Tiny RSS nicht ganz so winzig, wie der Name nahe legt: Das entpackte Tar.gz-Archiv umfasst gut sieben MByte, da zahlreiche PHP- und Javascript-Bibliotheken enthalten sind, die alle unter einer Open-Source-Lizenz stehen. Auf ein Installationsskript verzichtet Andrew Dolgov, der russische Entwickler von Tiny Tiny RSS, doch die manuelle Konfiguration ist nicht weiter kompliziert: Zunächst werden die Dateien auf den Webserver kopiert, dann die Datenbank vorbereitet, einige Einträge in der gut kommentierten Config-Datei bearbeitet und schließlich ein Update-Skript für die Feeds eingerichtet.
Voraussetzungen und Installation
Bevor es an die Installation geht, sollten man überprüfen, ob der anvisierte Server alle nötigen Voraussetzungen mitbringt: Tiny Tiny RSS benötigt mindestens PHP 5.3, MySQL ab Version 5 oder eine PostgreSQL-Datenbank. Auf Shared-Hostern mit aktiviertem safe mode und mit Beschränkungen per open_basedir ist laut Entwickler mit Problemen zu rechnen, da diese Konstellation noch nicht unterstützt wird. Eine Testinstallation zu diesem Beitrag auf einem Apache-Webserver mit PHP als FCGI und strikter Konfiguration von open_basedir lief allerdings nach harmlosen Anpassungen von Tiny Tiny RSS völlig problemlos.
Stimmen die Voraussetzungen, kann es nach dem Download des Tar.gz-Archivs von der Projekt-Website oder direkt von Github und dem Entpacken in ein Verzeichnis auf dem Webserver mit einigen kurzen Einrichtungsschritten weiter gehen.
Datenbank vorbereiten
Anzeige
Die nötigen Datenbank-Tabellen müssen manuell eingerichtet werden. Das Unterverzeichnis schema des entpackten TTRSS-Archivs enthält dafür je eine passende Schemata-Datei für MySQL und PostgreSQL, die 31 Tabellen in einer vorhandenen Datenbank anlegt. Da die Tabellen alle mit dem Prefix ttrss_ versehen sind, ist nicht zwingend eine leere Datenbank nötig. Allerdings sollte die Datenbank bei MySQL in einer UTF8-Konstellation vorliegen. Ein Kommandozeilenbefehl liest den Aufbau der Datenbank ein. Um beispielsweise in der MySQL-Datenbank „ttrssdb“ die nötigen Tabellen für Tiny Tiny RSS anzulegen, liest man die Datei ttrss_schema_mysql.sql mit folgendem Befehl ein:
mysql -u[benutzer] -p[passwort] ttrssdb < ttrss_schema_mysql.sql
Das Ganze lässt sich auch mit einem Datenbank-Frontend wie phpMyAdmin oder Adminer erledigen.
Einige Zeilen in der Konfigurationsdatei müssen manuell angepasst werden.
Einstellungen anpassen
Im nächsten Schritt müssen einige Zeilen in der mitgelieferten Konfigurationsdatei config.php-dist angepasst werden, die man kurzerhand in config.php umbenennt. In die ersten Zeilen der Datei ersetzt man die Beispielwerte für Datenbanktyp, Host, User, Datenbankname und Passwort durch die Zugangsdaten zur Datenbank.
muss die URL, über die Tiny Tiny RSS zu erreichen ist, eingetragen werden.
Standardmäßig bietet Tiny Tiny RSS einen Mehrbenutzermodus mit Login-Box. Wenn man das nicht braucht, lässt sich die Funktion in der Zeile
define('SINGLE_USER_MODE', false);
auch abschalten.
Einstellungen wie die Admin-Mailadresse für den Mehrbenutzerbetrieb und ein SMTP-Server sind optional. Danach lässt sich Tiny Tiny RSS über die angegeben URL im Browser öffnen. Falls der Reader im Mehrbenutzerbetrieb läuft, gelten für die erste Anmeldung als Administrator der Benutzer "admin" und das Passwort "password", letzteres sollte man unbedingt gleich ändern. Bei der Anmeldung lässt sich auch die Sprache auswählen. Ist der Mehrbenutzermodus deaktiviert, meldet sich Tiny Tiny RSS in Englisch.
Feeds abonnieren und lesen
Die Schaltzentrale von Tiny Tiny RSS ist das Menü „Aktionen“.
Die Web-Oberfläche ist platzsparend und übersichtlich, die meisten Einstellungen lassen sich intuitiv ohne Nachforschungen in der knappen Dokumentation vornehmen. Oben rechts im Fenster bietet das Drop-Down-Feld "Aktionen..." alle wichtigen Funktionen vom Abonnieren von RSS-Feeds bis zum Bearbeiten markierter Feeds. Kategorien, Filter, Labels und die Benutzereinstellungen sind hier in den "Einstellungen" untergebracht. Feeds und einzelne Artikel haben darüberhinaus ein Kontextmenü, das sich mit der rechten Maustaste öffnen lässt. Damit lassen sich Artikel als gelesen markieren oder mit einem Label versehen und Feed-Einstellungen direkt bearbeiten. In der Anzeige eines Artikels lassen sich Tags definieren und eigene Notizen hinterlegen.
Wer seine Feeds bisher in einem anderen Reader gelesen hat und dort eine OPML-Datei exportieren kann, kann die Feeds über "Aktionen / Einstellungen / Feeds" in Tiny Tiny RSS importieren. Das klappt auch mit Google Reader, hier exportiert man mit Hilfe des Google-Tools Takeout in den Reader-Einstellungen die Feeds in einem Zip-Archiv und importiert in Tiny Tiny RSS die darin enthaltene Datei subscriptions.xml.
Feeds automatisch aktualisieren
Damit Tiny Tiny RSS neue Artikel in den Feeds anzeigt, muss ein Update-Prozess im Hintergrund laufen. Die Software bietet dafür mehrere Ansätze: einen Pseudo-Daemon, einen PHP-Workaround oder einen Cron-Job. Die einfachste Lösung ist der PHP-Workaround, den man in der Konfigurationsdatei config.php mit der Zeile
define('SIMPLE_UPDATE_MODE', true);
aktiviert. Tiny Tiny RSS kann dann Feeds aktualisieren, solange die Seite im Browser-Fenster geöffnet ist. Die Android-Apps lassen sich damit allerdings nicht nutzen. Alternativ bietet Tiny Tiny RSS eine Bastellösung in Form eines Pseudo-Daemons. Das Update-Skript lässt sich auf dem Server starten und mit Hilfe von screen in den Hintergrund schieben. Der Befehl
php /[Pfad zu TTRSS]/update.php -daemon
startet ein vorbereitetes Update-Skript für Feeds, wenn Tiny Tiny RSS in einer Instanz auf dem Server läuft. [Pfad zu TTRSS] muss dabei durch den Pfad zum Programmverzeichnis des Readers ersetzt werden. Laufen mehrere Instanzen, bietet die Software das Skript update_daemon2.php. Als dritte Möglichkeit lassen sich die Feeds mit Hilfe eines Cron-Jobs aktualisieren. Dieser sollte allerdings im Kontext des Webservers laufen und nicht als root ausgeführt werden.
Stolperfallen
Das Prüfen der Variablen open_basedir lässt sich in der Datei include/sanity_check.php abstellen, meist läuft der Reader trotzdem.
Eine paranoide PHP-Konfiguration ist auf öffentlich zugänglichen Webservern keine schlechte Idee. Dazu gehört das Einschränken der Verzeichnisse, auf die PHP zugreifen darf, mittels open_basedir in der php.ini. Tiny Tiny RSS beschwert sich zwar, wenn open_basedir gesetzt ist, doch das muss kein Hindernis sein. In vielen Fällen funktioniert der Reader trotzdem. Um das Prüfen dieser Variablen abzuschalten, müssen in der Datei include/sanity_check.php die Zeilen
if (ini_get("open_basedir")) { array_push($errors, "PHP configuration option open_basedir is not supported. Please disable this in PHP settings file (php.ini)."); }
mit „//“ auskommentiert werden. Der Schritt muss nach jedem Update von Tiny Tiny RSS wiederholt werden.
Ist der Mehrbenutzermodus deaktiviert, entfällt die Anmeldung bei Tiny Tiny RSS, womit der Reader aller Welt offen steht. Um das zu verhindern, empfiehlt sich das Absichern mit einer Passwortanmeldung über .htaccess. Die Übertragung von Loginname und Passwort unterwegs aus unsicheren Netzen ist tabu – die Verwendung eines SSL-Zertifikats auf dem Server ist deshalb Pflicht. Für den eigenen Server tut es dabei aber auch ein selbst signiertes SSL-Zertifikat.
(lmd)
Exklusive Tests, Ratgeber & Hintergründe. Unbegrenzter Zugriff auf alle heise+ Beiträge inkl. allen Digital-Magazinen.Exklusive Tests, Ratgeber & Hintergründe. Unbegrenzter Zugriff auf alle heise+ Beiträge inkl. allen Digital-Magazinen.