Installation von Tiny Tiny RSS: Unterschied zwischen den Versionen

Aus Synology Wiki
Wechseln zu: Navigation, Suche
K
 
(16 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Kategorie:LAMP-Apps]]
 
[[Kategorie:LAMP-Apps]]
[http://tt-rss.org/redmine/projects/tt-rss/wiki Tiny Tiny RSS] ist ein server-basierter [[wikipedia:de:Feedreader|Feedreader]], vergleichbar mit dem (inzwischen eingestellten) [[wikipedia:de:Google Reader|Google Reader]] oder [[wikipedia:Feedly|Feedly]], aber die Daten bleiben daheim. Neben einer AJAX-Weboberfläche ([http://tt-rss.org/demo/ hier] in Aktion zu sehen), die auch auf mobile Geräte angepasst werden kann, gibt es auch ein API, mit dem Informationen über die abonnierten Feeds auch externen Anwendungen zur Verfügung stehen (wird vom Linux-Feedreader [http://lzone.de/liferea/ Liferea] und dem [http://tt-rss.org/redmine/projects/tt-rss-android/wiki Android Client] genutzt).
+
[http://tt-rss.org/redmine/projects/tt-rss/wiki Tiny Tiny RSS] ist ein server-basierter [[wikipedia:de:Feedreader|Feedreader]], vergleichbar mit dem (inzwischen eingestellten) [[wikipedia:de:Google Reader|Google Reader]] oder [[wikipedia:Feedly|Feedly]], aber die Daten bleiben daheim. Neben einer AJAX-Weboberfläche (hier einige [http://tt-rss.org/redmine/projects/tt-rss/wiki/Screenshots Screenshots]), gibt es auch ein API, mit dem Informationen über die abonnierten Feeds auch externen Anwendungen zur Verfügung stehen (wird z.B. vom Linux-Feedreader [http://lzone.de/liferea/ Liferea], dem [http://tt-rss.org/redmine/projects/tt-rss-android/wiki Android Client] und der iOS-App [https://itunes.apple.com/app/tiny-reader-rss/id689519762 tiny Reader RSS] genutzt).
  
Dieser Artikel beschreibt, wie es auf einer DiskStation installiert und (basis-)konfiguriert werden kann. Es muss ein root-Zugang zur [[Die Kommandozeile|Kommandozeile]] bestehen. Die Anleitung bezieht sich auf die Version 1.7.9 von Tiny Tiny RSS, und DSM Version 4.2 mit PHP 5.3.x.
+
Dieser Artikel beschreibt, wie es auf einer DiskStation installiert und (basis-)konfiguriert werden kann. Es muss ein root-Zugang zur [[Die Kommandozeile|Kommandozeile]] bestehen. Diese Anleitung bezieht sich auf die Version 1.12 von Tiny Tiny RSS, und DSM Version 5 mit PHP 5.5.x.
 +
(DSM 4.x kommt mit der PHP-Version 5.3, was wegen des [http://www.php.net/manual/en/ini.sect.safe-mode.php safe_mode] deutlich zickiger ist. Hier eine [http://www.synology-wiki.de/index.php?title=Installation_von_Tiny_Tiny_RSS&oldid=6447 ältere Version] dieses Artikels).
  
 
Es gibt inzwischen auch ein [[Paketzentrum Quellen#SynoCommunity|Community-Paket]].
 
Es gibt inzwischen auch ein [[Paketzentrum Quellen#SynoCommunity|Community-Paket]].
Zeile 8: Zeile 9:
 
== Vorarbeiten auf der DS ==
 
== Vorarbeiten auf der DS ==
 
=== Webserver und Datenbank aktivieren ===
 
=== Webserver und Datenbank aktivieren ===
Sowohl die Web Station als auch MySQL müssen [[Aktivieren von Web Station oder MySQL|aktiviert werden]]. Tiny Tiny RSS kann auch mit PostgreSQL benutzt werden, was [http://tt-rss.org/forum/viewtopic.php?f=1&t=2053&start=45#p11015 deutlich performanter] ist. Es gibt es [http://blog.invisible.ch/2013/03/21/48-tiny-tiny-rss-on-synology/ eine Anleitung] dazu, aber da das deutlich umständlicher ist, wird im weiteren Artikel MySQL benutzt.
+
Sowohl die Web Station als auch MySQL/MariaDB müssen [[Aktivieren von Web Station oder MySQL|aktiviert werden]]. Tiny Tiny RSS kann auch mit PostgreSQL benutzt werden, was [http://tt-rss.org/forum/viewtopic.php?f=1&t=2053&start=45#p11015 deutlich performanter] ist. Es gibt es [http://blog.invisible.ch/2013/03/21/48-tiny-tiny-rss-on-synology/ eine Anleitung] dazu, aber da das umständlicher ist, wird im weiteren Artikel MySQL benutzt.
Um MySQL ein wenig erträglicher zu machen, kann die Konfiguration [[Verwalten der MySQL-Datenbank#Performance Tuning|etwas angepasst]] werden.
+
Sollte doch PosgreSQL benutzt werden, müssen Wörterbücher installiert werden, siehe [[#Volltextsuche mit PostgreSQL|unten]].
  
=== PHP konfigurieren ===
+
=== PHP open_basedir ===
==== open_basedir ====
+
Seit Version 1.7.9 wird nichtleeres ''[http://php.net/manual/en/ini.core.php#ini.open-basedir open_basedir]'' von Tiny Tiny RSS offiziell unterstützt. Mit der Grundeinstellung des DSM sollte es keine Probleme geben, eventuell kann es nötig sein, den "richtigen" Pfad ''/volume1/web'' in ''open_basedir'' aufzunehmen.
Seit Version 1.7.9 wird nichtleeres ''[http://php.net/manual/en/ini.core.php#ini.open-basedir open_basedir]'' offiziell unterstützt. Mit der Grundeinstellung der DS sollte es keine Probleme geben, eventuell kann es nötig sein, den "richtigen" Pfad ''/volume1/web'' in ''open_basedir'' aufzunehmen.
+
==== curl und HTTP 30x ====
 +
Wegen Problemen im Zusammenspiel von HTTP Redirection mit <code>curl</code> und open_basedir sollte entweder open_basedir oder – nach der Installation – <code>curl</code> in Tiny Tiny RSS deaktiviert werden.
  
==== PHP ausführen ====
+
=== Erreichbarkeit der DS ===
Soll der [[#daemon|''Update daemon'' ausgeführt]] werden, muß die PHP-Konfiguration eventuell geändert werden. Die beste Lösung ist, im DSM die Option ''PHP safe_mode_exec_dir-Zugriffsbeschränkung'' ganz abzuwählen. Das ist auch kein großes Problem, da PHPs [http://www.php.net/manual/en/ini.sect.safe-mode.php Safe Mode] veraltet (und auch nicht wirklich sicherer) ist.
+
Wir gehen im weiteren davon aus, dass die DS unter '''<nowiki>http://AdresseOderIPderDiskStation</nowiki>''' erreichbar ist.
 +
Mehr Details darüber sind in [[Einrichten einer Webseite mit dem Synology Server|diesem Artikel]].
  
Sollte das nicht möglich sein, kann auf der Kommandozeile mit root-Rechten im Verzeichnis ''/usr/syno/bin'' ein symbolischer Link auf das php-binary gesetzt werden:
 
<pre>
 
$ ln -s /usr/bin/php /usr/syno/bin/php
 
</pre>
 
Hintergrund ist, dass ''/usr/syno/bin'' das voreingestellte '''safe_mode_exec_dir''' ist, vgl. auch die Ausgabe der PHP-Funktion ''phpinfo()''.
 
{{Wichtig|Bei einem Firmware Update des DSM wird der Link gelöscht und muß wieder erzeugt werden.}}
 
{{Wichtig|1=Manche Pakete (z.B. ''[[Fotos über die Photo Station zugänglich machen|Photo Station]]'') erzeugen diesen Link bei ihrer Installation, er muß dann also nicht erzeugt werden. Wenn der Befehl trotzdem ausgeführt wird, erscheint die Fehlermeldung
 
<br/>
 
<span style="color:black;font-size:0.8em;font-variant:normal;padding-left:15px;">ln: /usr/syno/bin/php: File exists</span>
 
<br/>
 
was aber nicht weiter problematisch ist.}}
 
 
== Tiny Tiny RSS konfigurieren ==
 
== Tiny Tiny RSS konfigurieren ==
===Herunterladen===
+
===Herunterladen mit git===
Es werden zwei Wege vorgestellt, um Tiny Tiny RSS in das Verzeichnis ''/var/services/web/ttrss'' zu bekommen.
+
Seit einiger Zeit ist die einzige Möglichkeit, Tiny Tiny RSS zu installieren, das Projekt-Repository mit <code>git</code> herunterladen, das als [[Paketzentrum Quellen|Paket]] zur Verfügung steht und vorher installiert werden muss. Ein Befehl zum erstmaligen Herunterladen auf der DS ist dann
 
+
====tarball====
+
Das geht zum Beispiel mit
+
 
<pre>
 
<pre>
$ cd /tmp
+
$ git clone https://tt-rss.org/git/tt-rss.git /var/services/web/ttrss
$ wget https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.7.9.tar.gz
+
$ tar -xf tt-rss-1.7.9.tar.gz -C /var/services/web
+
$ mv /var/services/web/tt-rss-1.7.9 /var/services/web/ttrss
+
 
</pre>
 
</pre>
für Version 1.7.9; die genaue URL der aktuellen Version findet sich auf der [http://tt-rss.org/redmine/projects/tt-rss/wiki Projektseite].
+
Das Pflegen der Installation setzt Grundkenntnisse über den Umgang mit git voraus, die man sich z.B. [http://git-scm.com/doc hier] aneignen kann.
 
+
==== Updaten ====
====git====
+
Zum Updaten führt man auf der Kommandozeile
Eine weitere Möglichkeit, die vom Programmierer empfohlen und unterstützt wird, ist sich das Projekt-Repository mit ''git'' herunterladen; git steht als [[Paketzentrum Quellen|Paket]] zur Verfügung. Man erhält damit Bugfixes und neue Features schneller, und das Updaten der Installation ist so wesentlich bequemer. Ein Befehl zum erstmaligen Herunterladen auf der DS ist dann
+
 
<pre>
 
<pre>
$ git clone https://github.com/gothfox/Tiny-Tiny-RSS.git /var/services/web/ttrss
+
$ cd /var/services/web/ttrss
 +
$ git pull
 
</pre>
 
</pre>
Das Pflegen der Installation setzt dann natürlich Grundkenntnisse über den Umgang mit git voraus, die man sich z.B. [http://git-scm.com/doc hier] aneignen kann.
+
aus. Nach einem erfolgreichen Update müssen eventuell noch einige Verwaltungsaufgaben, wie das Updaten des Datenbankschemas oder Ergänzungen an config.php vorgenommen werden, Details gibt Tiny Tiny RSS auf '''<nowiki>http://AdresseOderIPderDiskStation/ttrss</nowiki>''' aus. '''Wichtig''': Es empfiehlt sich, vor Änderungen am Datenbankschema ein [[Backup der MySQL-Datenbank über einen cronjob|Backup der Datenbank]] anzulegen.
 
+
 
=== Datenbank erstellen ===
 
=== Datenbank erstellen ===
Es muß eine Datenbank angelegt und das sich im Unterverzeichnis ''schema/ttrss_schema_mysql.sql'' befindende Schema installiert werden. Wie das geht, beschreibt [[Verwalten der MySQL-Datenbank|dieser Artikel]].
+
Es muss eine Datenbank angelegt werden. Wie das geht, beschreibt [[Verwalten der MySQL-Datenbank|dieser Artikel]].
  
Die [[#Erstellen von config.php|weitere Konfiguration]] erfordert, daß ein MySQL-Nutzer und dessen Passwort in die Datei ''config.php'' gespeichert werden. Der Benutzer ''nobody'' auf der DiskStation muß diese Datei lesen können. Daher empfiehlt es sich, zum Zugriff auf die angelegte Datenbank '''nicht''' den ''root''-Account von MySQL zu benutzen, sondern einen eigenen MySQL-Nutzer anzulegen, der die nötigsten Privilegien hat. Details dazu ebenfalls [[Verwalten der MySQL-Datenbank|hier]].
+
Die [[#Installation abschliessen|weitere Konfiguration]] erfordert, daß ein MySQL-Nutzer und dessen Passwort in die Datei ''config.php'' gespeichert werden. Der Benutzer ''http'' auf der DiskStation muss diese Datei lesen können. Daher empfiehlt es sich, zum Zugriff auf die angelegte Datenbank '''nicht''' den ''root''-Account von MySQL zu benutzen, sondern einen eigenen MySQL-Nutzer anzulegen, der die nötigsten Privilegien hat. Details dazu ebenfalls [[Verwalten der MySQL-Datenbank|hier]].
  
 
=== Schreibrechte ===
 
=== Schreibrechte ===
Der Nutzer ''nobody'' (auf der DiskStation/Linux, nicht in MySQL) braucht Schreibrechte auf die Verzeichnisse ''lock/'', ''cache/'' und ''feed-icons/''. Dazu einfach auf der Shell (im Verzeichnis von Tiny Tiny RSS)
+
Der Nutzer ''http'' braucht Schreibrechte auf die Verzeichnisse ''lock/'', ''cache/'' und ''feed-icons/''. Dazu einfach auf der Shell (im Verzeichnis von Tiny Tiny RSS)
 
<pre>
 
<pre>
$ for dir in "lock" "cache" "feed-icons"; do chown -R nobody:nobody "$dir"; done
+
$ for dir in "lock" "cache" "feed-icons"; do chown -R http:http "$dir"; done
 
</pre>
 
</pre>
ausführen.
+
ausführen. Dieser Befehl muss als root ausgeführt werden,
 +
alternativ (und ohne das root nötig ist) kann '''chown -R http:http''' durch '''chmod -R 777''' ersetzt werden.
  
=== Erstellen von config.php ===
+
=== Installation abschliessen ===
Die Datei ''config.php-dist'' muss in ''config.php'' umbenannt werden. Bei den darin definierten PHP-Konstanten 'DB_TYPE', 'DB_USER', 'DB_NAME', 'DB_PASS', 'DB_PORT' und 'SELF_URL_PATH' müssen mit einem [[Vergleich von Texteditoren|Texteditor]] die richtigen Werte eingetragen werden. Ist die [[#Datenbank erstellen|angelegte Datenbank]] ''db'' und der darauf zugreifende MySQL-Nutzer ''user'' mit dem Passwort ''pass'', muß in der Datei folgendes eingetragen sein:
+
[[Datei:Ttrss_install.jpg|thumb|right|Dialog Installation]]
<pre>
+
Um die Konfiguration zu beenden,
define('DB_TYPE', "mysql");
+
sollte die URL '''<nowiki>http://AdresseOderIPderDiskStation/ttrss/install</nowiki>'''
define('DB_HOST', "localhost");
+
aufgerufen werden. In dem Formular müssen die Zugangsdaten der Datenbank eingetragen werden.
define('DB_USER', "user");
+
Ein Beispieleintrag mit der [[#Datenbank erstellen|angelegten Datenbank]] ''db'', dem darauf zugreifende MySQL-Nutzer ''user'' mit dem Passwort ''pass'' ist im Bild rechts zu sehen.
define('DB_NAME', "db");
+
define('DB_PASS', "pass");
+
define('DB_PORT', '3306');
+
</pre>
+
('DB_HOST' bleibt unverändert). Bei 'SELF_URL_PATH' muß die URL eingetragen werden, unter der Tiny Tiny RSS aufgerufen wird. Das sind z.B. '''<nowiki>http://192.168.178.56/ttrss</nowiki>''' (hier hat die DiskStation die Adresse 192.168.178.56) oder '''<nowiki>http://subdomain.dnsdyn.co.uk/ttrss</nowiki>'''. Für Erreichbarkeit der DS von außerhalb des eigenen Netzwerks [[Einrichten einer Webseite mit dem Synology Server|siehe hier]].
+
  
=== Updating Feeds ===
+
=== Feeds aktualisieren ===
Tiny Tiny RSS sollte jetzt per Browser erreichbar sein. Um Feeds aktualisieren zu können, muß entweder ein mitgelieferter ''Update daemon'' gestartet oder ein cronjob eingetragen werden. Empfohlen (und auch machbar) ist die Methode mit dem [[wikipedia:de:Daemon|daemon]].
+
Tiny Tiny RSS sollte jetzt per Browser erreichbar sein. Um Feeds aktualisieren zu können, muss entweder ein mitgelieferter ''Update daemon'' gestartet oder ein cronjob eingetragen werden. Empfohlen ist der Einsatz des [[wikipedia:de:Daemon|daemon]].
  
==== daemon ====
+
==== Update daemon ====
'''Wichtig:''' Damit es funktioniert, muss [[#PHP konfigurieren|PHP konfiguriert sein]], denn ''update.php'' muss ''php'' ausführen. Der daemon wird so gestartet:
+
Der daemon wird so gestartet:
<pre>
+
<pre style="overflow-x: scroll;">
$ su -m nobody -c "(trap '' SIGHUP && /usr/bin/php /var/services/web/ttrss/update.php --daemon >> /dev/null 2>&1) &" 2> /dev/null
+
$ su -m http -c "(trap '' SIGHUP && /usr/bin/php /var/services/web/ttrss/update.php --daemon 2>&1 > /dev/null) &"
 
</pre>
 
</pre>
 
===== Start-Stop-Skript =====
 
===== Start-Stop-Skript =====
Da dieser Befehl nach jedem Neustart der DS ausgeführt werden muss, bietet es sich an, dafür ein Start-Stop-Skript zu erstellen. Ein Musterskript, bei dem eventuell noch der Installationsort angepasst werden muß, [[Installation von Tiny Tiny RSS/Start-Stop-Skript|steht bereit]]. Da der Nutzer ''nobody'' in solchen Skripten beim Booten scheinbar keine Befehle ausführen kann, sieht es etwas seltsam aus, ist aber voll funktional (wer mehr darüber weiß, [http://www.synology-forum.de/showthread.html?36351-Benutzer-nobody-in-start-stop-Skripten sagt Bescheid]).
+
Da dieser Befehl nach jedem Neustart der DS ausgeführt werden muss, bietet es sich an, dafür ein Start-Stop-Skript zu erstellen. Ein Musterskript, bei dem eventuell noch der Installationsort angepasst werden muss, [[Installation von Tiny Tiny RSS/Start-Stop-Skript|steht bereit]]. Da der Nutzer ''http'' in solchen Skripten beim Booten scheinbar keine Befehle ausführen kann, sieht es etwas seltsam aus, ist aber voll funktional (wer mehr darüber weiß, [http://www.synology-forum.de/showthread.html?36351-Benutzer-nobody-in-start-stop-Skripten sagt Bescheid]).
 
Das Skript sollte in ''/usr/local/etc/rc.d/'' mit dem Suffix '''.sh''' gespeichert und mit ''chmod 755'' ausführbar gemacht werden.
 
Das Skript sollte in ''/usr/local/etc/rc.d/'' mit dem Suffix '''.sh''' gespeichert und mit ''chmod 755'' ausführbar gemacht werden.
  
====== Beispiel ======
 
 
Ist das Skript unter ''/usr/local/etc/rc.d/ttrss.sh'' gespeichert und mit ''chmod 755 /usr/local/etc/rc.d/ttrss.sh'' ausführbar gemacht worden, kann der update daemon mit
 
Ist das Skript unter ''/usr/local/etc/rc.d/ttrss.sh'' gespeichert und mit ''chmod 755 /usr/local/etc/rc.d/ttrss.sh'' ausführbar gemacht worden, kann der update daemon mit
 
<pre>
 
<pre>
 
$ /usr/local/etc/rc.d/ttrss.sh start
 
$ /usr/local/etc/rc.d/ttrss.sh start
 
</pre>
 
</pre>
gestartet werden. Nach jedem Neustart der DS startet das Skript dann den daemon automatisch. Ob der daemon läuft, kann mit dem Befehl
+
gestartet werden. Nach jedem Neustart der DS startet das Skript dann automatisch den daemon. Ob der daemon läuft, kann mit dem Befehl
 
<pre>
 
<pre>
$ ps |grep nobody|grep php
+
$ /usr/local/etc/rc.d/ttrss.sh status
 
</pre>
 
</pre>
getest werden: Wenn die Ausgabe eine Zeile wie
+
getest werden.
<pre>
+
10341 nobody  31520 S    /usr/bin/php /var/services/web/ttrss/update.php --daemon --quiet
+
</pre>
+
enthält (einige Details können abweichen, wichtig ist, daß ''/var/services/web/ttrss/update.php --daemon'' enthalten ist), wird der daemon ausgeführt.
+
  
 
==== cron ====
 
==== cron ====
 
Im cronjob muss der Befehl
 
Im cronjob muss der Befehl
<pre>
+
<pre style="overflow-x: scroll;">
su -m nobody -c "cd /var/services/web/ttrss && /usr/bin/php /var/services/web/ttrss/update.php --feeds >> /dev/null 2>&1" 2> /dev/null
+
su -m http -c "cd /var/services/web/ttrss && /usr/bin/php /var/services/web/ttrss/update.php --feeds 2>&1 > /dev/null"
 
</pre>
 
</pre>
 
ausgeführt werden. Für eine Periode von 20 Minuten wäre das Cron-Präfix
 
ausgeführt werden. Für eine Periode von 20 Minuten wäre das Cron-Präfix
Zeile 112: Zeile 88:
 
einzutragen. Details sind im Artikel zu [[Cron]] beschrieben.
 
einzutragen. Details sind im Artikel zu [[Cron]] beschrieben.
  
==== Fehlermeldungen ====
+
===Volltextsuche mit PostgreSQL===
{{Wichtig|1=Von der bei Einsatz einer der beiden Update-Methoden evtl. erscheinenden Fehlermeldung
+
Tiny Tiny RSS benutzt seit einiger Zeit, wenn als Datenbank Postgres gewählt wurde, dessen Volltextsuche. Dabei setzt es mindestens die Existenz eines Postgres-Wörterbuchs namens ''english'' voraus. Leider liefert Synology dies nicht mit, aber es ist einfach, selber eines zu bauen; Details sind [[Wörterbücher für Volltextsuche mit PostgreSQL erstellen|hier]] beschrieben.
<br/>
+
<span style="color:black;font-size:0.8em;font-variant:normal;padding-left:15px;">su: can't chdir to home directory '/home'</span>
+
<br/>
+
sollte man sich nicht abschrecken lassen, dies sollte keine Auswirkungen auf deren Funktionalität haben.}}
+
== Tiny Tiny RSS aktualisieren ==
+
Je nachdem wie Tiny Tiny RSS installiert wurde, gibt es mehrere Möglichkeiten es zu updaten. Nach einem erfolgreichen Update müssen eventuell noch einige Verwaltungsaufgaben, wie das Updaten des Datenbankschemas oder Ergänzen von [[#Erstellen von config.php|config.php]] vorgenommen werden, Details gibt Tiny Tiny RSS auf seiner Webseite aus. '''Wichtig''': Es empfiehlt sich, vor Änderungen am Datenbankschema ein [[Backup der MySQL-Datenbank über einen cronjob|Backup der Datenbank]] anzulegen.
+
  
=== git ===
+
=== Fertig! ===
Man führt dazu auf der Kommandozeile einfach
+
<pre>
+
$ cd /var/services/web/ttrss
+
$ git pull
+
</pre>
+
aus, wenn Tiny Tiny RSS wie [[#git|oben beschrieben]] installiert wurde. Der eingebaute Updater sollte bei Benutzung von git '''nicht''' verwendet und am besten deaktiviert werden.
+
 
+
=== Eingebauter Updater ===
+
Der eingebaute Updater ist als Plugin realisiert und muss ''tar'' ausführen können. Dazu muss entweder der [[#PHP ausführen|Safe Mode]] deaktiviert werden, oder aber
+
<pre>
+
$ ln -s /bin/tar /usr/syno/bin/tar
+
</pre>
+
ausgeführt werden.
+
 
+
== Fertig! ==
+
 
Tiny Tiny RSS sollte jetzt ausführbar sein. Die Oberfläche ist dann unter '''<nowiki>http://AdresseOderIPderDiskStation/ttrss</nowiki>''' erreichbar und zeigt ein Login-Fenster. Der angelegte default-user heißt ''admin'' mit Passwort ''password'' (was möglichst bald geändert werden sollte).
 
Tiny Tiny RSS sollte jetzt ausführbar sein. Die Oberfläche ist dann unter '''<nowiki>http://AdresseOderIPderDiskStation/ttrss</nowiki>''' erreichbar und zeigt ein Login-Fenster. Der angelegte default-user heißt ''admin'' mit Passwort ''password'' (was möglichst bald geändert werden sollte).
=== Weitere Optionen ===
+
==== Weitere Optionen ====
Die Funktionalität von Tiny Tiny RSS kann noch erweitert werden, z.B. mit einer Indizierungssoftware, der Unterstützung des push-Protokolls [[wikipedia:de:PubSubHubbub|PubSubHubbub]] oder einer Komprimierung der übertragenen Daten. Details dazu sind in der Datei ''config.php'' zu finden (und zu ändern).
+
 
+
 
Tiny Tiny RSS kann mit Plugins erweitert werden. Es werden einige mitgeliefert. Man kann sie in den Einstellungen an- und abschalten. Dort sind auch kurze Beschreibungen zu finden.
 
Tiny Tiny RSS kann mit Plugins erweitert werden. Es werden einige mitgeliefert. Man kann sie in den Einstellungen an- und abschalten. Dort sind auch kurze Beschreibungen zu finden.
=== Support ===
 
Sollte es zu Problemen kommen, könnt ihr in [http://www.synology-forum.de/showthread.html?39370-eigenen-RSS-Server/ diesem Forumsbeitrag] nach Hilfe fragen.
 

Aktuelle Version vom 28. September 2020, 12:26 Uhr

Tiny Tiny RSS ist ein server-basierter Feedreader, vergleichbar mit dem (inzwischen eingestellten) Google Reader oder Feedly, aber die Daten bleiben daheim. Neben einer AJAX-Weboberfläche (hier einige Screenshots), gibt es auch ein API, mit dem Informationen über die abonnierten Feeds auch externen Anwendungen zur Verfügung stehen (wird z.B. vom Linux-Feedreader Liferea, dem Android Client und der iOS-App tiny Reader RSS genutzt).

Dieser Artikel beschreibt, wie es auf einer DiskStation installiert und (basis-)konfiguriert werden kann. Es muss ein root-Zugang zur Kommandozeile bestehen. Diese Anleitung bezieht sich auf die Version 1.12 von Tiny Tiny RSS, und DSM Version 5 mit PHP 5.5.x. (DSM 4.x kommt mit der PHP-Version 5.3, was wegen des safe_mode deutlich zickiger ist. Hier eine ältere Version dieses Artikels).

Es gibt inzwischen auch ein Community-Paket.

Vorarbeiten auf der DS

Webserver und Datenbank aktivieren

Sowohl die Web Station als auch MySQL/MariaDB müssen aktiviert werden. Tiny Tiny RSS kann auch mit PostgreSQL benutzt werden, was deutlich performanter ist. Es gibt es eine Anleitung dazu, aber da das umständlicher ist, wird im weiteren Artikel MySQL benutzt. Sollte doch PosgreSQL benutzt werden, müssen Wörterbücher installiert werden, siehe unten.

PHP open_basedir

Seit Version 1.7.9 wird nichtleeres open_basedir von Tiny Tiny RSS offiziell unterstützt. Mit der Grundeinstellung des DSM sollte es keine Probleme geben, eventuell kann es nötig sein, den "richtigen" Pfad /volume1/web in open_basedir aufzunehmen.

curl und HTTP 30x

Wegen Problemen im Zusammenspiel von HTTP Redirection mit curl und open_basedir sollte entweder open_basedir oder – nach der Installation – curl in Tiny Tiny RSS deaktiviert werden.

Erreichbarkeit der DS

Wir gehen im weiteren davon aus, dass die DS unter http://AdresseOderIPderDiskStation erreichbar ist. Mehr Details darüber sind in diesem Artikel.

Tiny Tiny RSS konfigurieren

Herunterladen mit git

Seit einiger Zeit ist die einzige Möglichkeit, Tiny Tiny RSS zu installieren, das Projekt-Repository mit git herunterladen, das als Paket zur Verfügung steht und vorher installiert werden muss. Ein Befehl zum erstmaligen Herunterladen auf der DS ist dann

$ git clone https://tt-rss.org/git/tt-rss.git /var/services/web/ttrss

Das Pflegen der Installation setzt Grundkenntnisse über den Umgang mit git voraus, die man sich z.B. hier aneignen kann.

Updaten

Zum Updaten führt man auf der Kommandozeile

$ cd /var/services/web/ttrss
$ git pull

aus. Nach einem erfolgreichen Update müssen eventuell noch einige Verwaltungsaufgaben, wie das Updaten des Datenbankschemas oder Ergänzungen an config.php vorgenommen werden, Details gibt Tiny Tiny RSS auf http://AdresseOderIPderDiskStation/ttrss aus. Wichtig: Es empfiehlt sich, vor Änderungen am Datenbankschema ein Backup der Datenbank anzulegen.

Datenbank erstellen

Es muss eine Datenbank angelegt werden. Wie das geht, beschreibt dieser Artikel.

Die weitere Konfiguration erfordert, daß ein MySQL-Nutzer und dessen Passwort in die Datei config.php gespeichert werden. Der Benutzer http auf der DiskStation muss diese Datei lesen können. Daher empfiehlt es sich, zum Zugriff auf die angelegte Datenbank nicht den root-Account von MySQL zu benutzen, sondern einen eigenen MySQL-Nutzer anzulegen, der die nötigsten Privilegien hat. Details dazu ebenfalls hier.

Schreibrechte

Der Nutzer http braucht Schreibrechte auf die Verzeichnisse lock/, cache/ und feed-icons/. Dazu einfach auf der Shell (im Verzeichnis von Tiny Tiny RSS)

$ for dir in "lock" "cache" "feed-icons"; do chown -R http:http "$dir"; done

ausführen. Dieser Befehl muss als root ausgeführt werden, alternativ (und ohne das root nötig ist) kann chown -R http:http durch chmod -R 777 ersetzt werden.

Installation abschliessen

Fehler beim Erstellen des Vorschaubildes: Die Miniaturansicht konnte nicht am vorgesehenen Ort gespeichert werden
Dialog Installation

Um die Konfiguration zu beenden, sollte die URL http://AdresseOderIPderDiskStation/ttrss/install aufgerufen werden. In dem Formular müssen die Zugangsdaten der Datenbank eingetragen werden. Ein Beispieleintrag mit der angelegten Datenbank db, dem darauf zugreifende MySQL-Nutzer user mit dem Passwort pass ist im Bild rechts zu sehen.

Feeds aktualisieren

Tiny Tiny RSS sollte jetzt per Browser erreichbar sein. Um Feeds aktualisieren zu können, muss entweder ein mitgelieferter Update daemon gestartet oder ein cronjob eingetragen werden. Empfohlen ist der Einsatz des daemon.

Update daemon

Der daemon wird so gestartet:

$ su -m http -c "(trap '' SIGHUP && /usr/bin/php /var/services/web/ttrss/update.php --daemon 2>&1 > /dev/null) &"
Start-Stop-Skript

Da dieser Befehl nach jedem Neustart der DS ausgeführt werden muss, bietet es sich an, dafür ein Start-Stop-Skript zu erstellen. Ein Musterskript, bei dem eventuell noch der Installationsort angepasst werden muss, steht bereit. Da der Nutzer http in solchen Skripten beim Booten scheinbar keine Befehle ausführen kann, sieht es etwas seltsam aus, ist aber voll funktional (wer mehr darüber weiß, sagt Bescheid). Das Skript sollte in /usr/local/etc/rc.d/ mit dem Suffix .sh gespeichert und mit chmod 755 ausführbar gemacht werden.

Ist das Skript unter /usr/local/etc/rc.d/ttrss.sh gespeichert und mit chmod 755 /usr/local/etc/rc.d/ttrss.sh ausführbar gemacht worden, kann der update daemon mit

$ /usr/local/etc/rc.d/ttrss.sh start

gestartet werden. Nach jedem Neustart der DS startet das Skript dann automatisch den daemon. Ob der daemon läuft, kann mit dem Befehl

$ /usr/local/etc/rc.d/ttrss.sh status

getest werden.

cron

Im cronjob muss der Befehl

su -m http -c "cd /var/services/web/ttrss && /usr/bin/php /var/services/web/ttrss/update.php --feeds 2>&1 > /dev/null"

ausgeführt werden. Für eine Periode von 20 Minuten wäre das Cron-Präfix

*/20	*	*	*	*

einzutragen. Details sind im Artikel zu Cron beschrieben.

Volltextsuche mit PostgreSQL

Tiny Tiny RSS benutzt seit einiger Zeit, wenn als Datenbank Postgres gewählt wurde, dessen Volltextsuche. Dabei setzt es mindestens die Existenz eines Postgres-Wörterbuchs namens english voraus. Leider liefert Synology dies nicht mit, aber es ist einfach, selber eines zu bauen; Details sind hier beschrieben.

Fertig!

Tiny Tiny RSS sollte jetzt ausführbar sein. Die Oberfläche ist dann unter http://AdresseOderIPderDiskStation/ttrss erreichbar und zeigt ein Login-Fenster. Der angelegte default-user heißt admin mit Passwort password (was möglichst bald geändert werden sollte).

Weitere Optionen

Tiny Tiny RSS kann mit Plugins erweitert werden. Es werden einige mitgeliefert. Man kann sie in den Einstellungen an- und abschalten. Dort sind auch kurze Beschreibungen zu finden.