• Blog
  • Raspberry Pi
  • Über mich
  • Projekte
  • devowl.io

Raspberry Pi: Tiny Tiny RSS Reader installieren

08. Januar 2014
Raspberry Pi
34 Kommentare

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

Step 1

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.

Step 2

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

Step 3

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

Step 4

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
Step 5

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/

Step 6

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

Step 7

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

Step 8

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 &

Step 9

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 &
Step 10

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.

80
Quellen: Tiny Tiny RSS Wiki, Daniël’s Database Blog

34 Kommentare. Hinterlasse eine Antwort

  • Bert
    Januar 8, 2014 5:40 pm

    Vielen Dank, die Anleitung ist superhilfreich!

    Antworten
  • ChrisHC
    Januar 8, 2014 5:41 pm

    Hallo Jan!

    Es fehlt ein wesentlicher Teil in deinem Tutorial:

    Der Eintrag des TT-RSS Scrapers in crontab.

    So wie du es beschrieben hast holt TT-RSS die neusten Feeds nur ab wenn man auf TT-RSS zugreift, was nicht funktioniert wenn man mal ein paar Tage TT-RSS nicht nutzt, dann kann es sein das manche Meldungen in manchen Feeds schon wieder raus gefallen sind.
    In der TT-RSS Dokumentation wird ausdrücklich darauf hingewiesen das diese Methode unvorteilhaft ist.
    Wäre vorteilhaft wenn du das noch hinzufügen könntest.

    Grüße,

    Chris

    Antworten
    • Lars
      Januar 8, 2014 6:01 pm

      Schöner Artikel, ich lese dich auch via ttrss.
      Du solltest aber noch dringend darauf hinweisen, dass man nach der Installation noch einen Update Daemon einrichten muss. Sonst macht ttrss nämlich gar keinen Sinn. Im Raspberry Pi Forum steht auch wie das geht:
      http://www.forum-raspberrypi.de/Thread-tutorial-google-reader-und-feedly-alternative-zum-selber-hosten-tiny-tiny-rss

      Antworten
    • Jan Karres
      Januar 8, 2014 6:16 pm

      Danke euch beiden für den Hinweis. Der Punkt aus der Doku ging mir beim Schreiben durch die Lappen. Habe ich nun aber ergänzt.

      Antworten
      • Lars
        Januar 8, 2014 11:03 pm

        Die Updates sollte man statt mich crontab aber besser per php update daemon erledigen. Ist wesentlich effizienter und belastet den Pi weniger als cron.

        Antworten
        • Jan Karres
          Januar 11, 2014 11:49 pm

          Habe auch deinen Verbesserungsvorschlag umgesetzt.

          Antworten
  • Pete
    Januar 8, 2014 9:33 pm

    Hatte Tiny Tiny RSS auch mal ausprobiert, war aber irgendwie nicht so ganz zufrieden damit. Dieser Feed Reader ist ne nette Alternative zu Tiny Tiny RSS: https://github.com/Cacodaimon/CacoCloud

    Antworten
    • Jan Karres
      Januar 11, 2014 1:28 pm

      Das Projekt hat jedoch noch keine Releases und kein Build System, weshalb ich davon ausgehen muss, dass die Software noch nicht als stabil zu betrachten ist.

      Antworten
  • Andrzej
    Januar 11, 2014 11:53 pm

    Seit ca. 2 Monaten nutze ich selbst Tiny Tiny RSS auf dem RPi .. das war sogar mein Hauptgrund, warum ich mir diesen „Supercomputer“ /wie es meine Tochter einmal genannt hat/ zugelegt habe.
    Allerdings ich muss fragen, warum man sich für MySQL und nicht für PostgreSQL entschieden hat. PostgreSQL wird aus performance Gründen nämlich als bevorzugter „database backend“ empfohlen …

    Antworten
    • Jan Karres
      Januar 12, 2014 1:08 am

      Ich denke so stark sollte der Unterschied nicht zu spüren – außer die Instanz wird von vielen Leuten zur selben Zeit genutzt 😉 Beide Datenbankserver haben Vor- und Nachteile. Ich habe mich in diesem Fall, aus Gewohnheit, für MySQL entschieden.

      Antworten
      • Andrzej
        Januar 12, 2014 11:30 pm

        Hmmm … da ich beide Datenbanksysteme vorher gar nicht kannte, war ich nicht „vorbelastet“ und folgte in diesen Punkt die TTRSS Wiki.
        Obwohl, wenn man so guckt, MySQL wäre für meine andere, später enstandene, kleinere Projekte (WordPress, MediaWiki) der besserer Wahl gewesen 🙂

        Aus reinen ungesunden Neugier habe noch eine Frage: wie hoch „klettert“ der CPU Load beim Feedsaktualisierung in deinem System?
        Ich habe 3 aktive Benutzer, die zusammen ca. 250 Feeds beobachten … „mein“ CPU Load geht dann für ein paar Minuten auf 2,5 bis 3,5 hoch, in „normalen“ Betrieb liegt es aber völlig unbedenklich deutlich unter 1.

        Antworten
        • Jan Karres
          Januar 14, 2014 10:15 pm

          Wenn man mit anderen PHP Apps noch etwas rumspielt ist MySQL auf jeden Fall die sinnvoller Wahl, da mehr Apps dieses unterstützen als PostgreSQL.

          Bzgl. Load: Ich habe es nur mal getestet und kann dir keine Vergleichswerte liefern, jedoch klingen die Daten, die du gepostet hast, für mich relativ normal, da der Raspberry Pi ja nicht der Leistungsstärkste ist 😉

          Antworten
          • Andrzej
            Januar 14, 2014 11:16 pm

            Danke für deine Einschätzung.

  • Klaus
    Mai 28, 2014 12:17 pm

    Hallo Jan,

    obwohl ich ein absoluter Raspberry Pi- und Linuxanfänger bin, hat die Installation Dank Deiner Anleitung wunderbar funktioniert.

    Vielen Dank dafür.

    Ich habe allerdings noch eine Frage:

    Kann ich, zusätzlich zu der Tiny Tiny RSS-Installation, auch noch Seafile auf dem Raspberry Pi installieren oder ist das nicht empfehlenswert?

    Gruß

    Klaus

    Antworten
    • Jan Karres
      Mai 31, 2014 5:28 pm

      Geht, aber ist von der Performance her meiner Erfahrung nach äußerst knapp.

      Antworten
      • Klaus
        Juni 4, 2014 10:59 am

        Hallo Jan,
        vielen Dank für Deine Einschätzung. Dann werde ich mir einen zweiten Pi kaufen.

        Zur TTRSS-Installation habe ich noch zwei Fragen:
        1. Wo und wie stelle ich den Update-Intervall ein, z. B. alle 15 Minuten aktualisieren?
        2. Gibt es eine Log-Datei, wo ich sehen kann, ob die Aktualisierungen ohne Fehler durchlaufen?

        Ich habe schon im Netz recherchiert, aber zu beiden Fragen keine Antwort gefunden.

        Wäre schön, wenn Du mir noch einmal helfen könntest.
        Vielen Dank.

        Gruß
        Klaus

        Antworten
        • Jan Karres
          Juni 8, 2014 12:36 pm

          Zu 1: Beim Daemon weiß ich ehrlich gesagt nicht ganz genau wie dieser funktioniert. Aber jedoch denke nicht mit klassischen fixen Intervallen.
          Zu 2: In Step 8 könntest du „/dev/null“ durch „/var/log/ttrss.log“ ersetzen. Dann findest du unter /var/log/ttrss.log die Logfiles.

          Antworten
      • kobbi
        Juli 4, 2014 1:38 pm

        Versuche gerade TTRSS auf meinem Seafile Server (https) zu installieren – stecke aber bei Punkt 6 fest, bei der Installation.
        Bekomme die Meldung:
        403 Forbidden
        nginx/1.2.1

        Vermutlich muß ich eine 2. nginx-Instanz für TTRSS erstellen. Wie mach ich das?
        Was muß man noch alles beachten?

        Antworten
        • Jan Karres
          Juli 8, 2014 9:23 pm

          Eine zweite Instanz brauchst du nicht, aber eine zweie site config. Der Aufbau ist nicht ganz easy, jedoch im Nginx Wiki beschrieben.

          Antworten
          • kobbi
            Juli 11, 2014 2:44 pm

            Kann nichts finden. Läuft das unter „virtual hosts“?

          • Jan Karres
            Juli 16, 2014 9:13 pm

            Das ist hierfür ebenfalls eine gängige Bezeichnung.

          • kobbi
            Juli 12, 2014 4:10 pm

            Das ist die 2. site config:
            server {
            listen 2345;
            ssl on;
            ssl_certificate /etc/nginx/ssl/seahub.crt;
            ssl_certificate_key /etc/nginx/ssl/seahub.key;
            error_page 497 https://$host:$server_port$request_uri;
            root /usr/share/nginx/www/tt-rss/install;
            server_name myserver.de;
            }

            https://myserver.de:2345 –> 403 forbidden

            Was mach ich falsch?

          • Jan Karres
            Juli 16, 2014 9:24 pm

            Hat es einen Grund, dass du den root in das install Verzeichnis gesetzt hast? Bist du sicher, dass die Rechte des Tiny Tiny RSS Ordners richtig gesetzt sind?

  • senftimes
    August 24, 2014 12:36 pm

    Danke für diese tolle Anleitung. Als Debian Anfänger ist das eine große Hilfe. Ist es richtig, dass das Starten des Daemons (Step 8) eine Meldung dieser Art ausspuckt: [1] 2088 ??

    Antworten
  • Moritz
    September 21, 2014 9:17 pm

    Ich finde die Anleitung super jedoch hänge ich bei der Installation von tt-rss im Browser fest, da ich einfach nicht auf die Site komme.
    Auf 10.0.0.6 (was die Ip meines Pi’s ist) kann ich problemlos zugreifen und bekomme die nginx Standartmeldung: „Welcome to nginx!“. Aber wenn ich ein paar Ebenen tiefer gehen will (10.0.0.6/tt-rss/install/) kommt das die Website nicht vorfügbar ist.
    Hast du eine Lösung dafür?
    Ich nutze übrigens die Version 1.13 von tt-rss

    Antworten
    • Jan Karres
      September 27, 2014 11:18 am

      Bist du dir sicher, dass du die Rechte wie in Step 7 erklärt gesetzt hast?

      Antworten
  • JBL
    Oktober 8, 2014 10:01 pm

    Ich habe dasselbe Problem wie Moritz:
    Bei Aufruf nur mit der IP meldet sich nginx, URL mit Zusatz „/tt-rss/install/“ meldet Website nicht verfügbar, Ordnerberechtigungen aus Step 7 habe ich gesetzt, obwohl die Konfiguration per Browser ja schon in Step 6 durchgeführt wird.
    Hast du einen Tipp?

    Antworten
  • marcel
    Februar 6, 2015 5:04 am

    Hallo Jan,

    ich habe die Schritte befolgt und kann mich nun nicht einloggen. Gebe ich im Login-Fenster den User ‚admin‘ und mein gewähltes Passwort aus Schritt 4 ein, bekomme ich ‚Benutzername oder Passwort falsch‘. Ich habe zusätzlich einen Seafile- und Baikal-Server am Laufen (auch nach deiner Anleitung). Kann das damit zusammenhängen? Woran kann das liegen?

    Übrigens: Vielen Dank für deine Tutorials!

    Gruß,
    Marcel

    Antworten
    • marcel
      Februar 6, 2015 10:27 pm

      bekomme auch eine Warnung in Schritt 8:

      > sudo -u www-data /usr/bin/php /usr/share/nginx/www/tt-rss/update.php –feeds –daemon > /dev/null &

      PHP Warning: PHP Startup: Unable to load dynamic library ‚/usr/lib/php5/20100525+lfs/sqlite.so‘ – /usr/lib/php5/20100525+lfs/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0

      Und zusätzlich nach dem Login folgende Fehlermeldung:

      curl: option –feeds: is unknown

      kann mir jemand helfen?

      Antworten
      • Jan Karres
        Februar 11, 2015 3:03 pm

        Klingt mir so als sei SQLite von den anderen Anwendungen zerschossen. Versuch das doch noch einmal drüber zu installieren:

        sudo apt-get install php5-sqlite

        Antworten
  • marcel
    Februar 14, 2015 10:23 pm

    bringt leider auch nichts. Habe bis jetzt auch noch nicht herausgefunden, woran das liegen kann. Gibt es evtl. Logfile wo man nachschauen könnte?

    Antworten
  • Tiny Tiny RSS auf dem Raspberry pi installieren | Huskynarr's Blog
    September 29, 2015 5:29 pm

    […] oder an der Konfiguration kommt eine entsprechende Meldung im Webfrontend. Quelle: Unter anderem Jan Karres und […]

    Antworten
  • Sophia
    Dezember 10, 2015 1:15 pm

    Hallo,
    ich hänge bei Schritt 5 und 6. (Ein bisschen veraltet ist die Anleitung ja schon, einige Links sind nicht mehr aktuell.)
    Ich komme zwar bei Schritt 6 mit meiner dyndns auf die install-Seite, aber wenn ich auf „Test Configuration“ klicke, kommt eine Fehlermeldung:

    Dann gibt’s leider auch kein config file für mich.

    Leider finde ich keine FAQ für tiny tiny rss und kann auch die Antwort nicht durch eine Internetsuche heraus bekommen. Hast du vielleicht eine Idee? Danke.

    Antworten
  • Johannes
    Oktober 11, 2016 4:32 pm

    Vielen Dank für das Tutorial! Ließ sich ohne Probleme einrichten. Allerdings mußte das Root-Verzeichnis noch angepaßt werden. Bei /etc/nginx/sites-available/default steht bei root /var/www/ drin. Das muß geändert werden zu /usr/share/nginx/html/. Denn Nginx wird mit dem Verzeichnis html ausgeliefert, nicht mit www. Kann man ja nach Gusto ändern. Und nicht vergessen: nginx braucht dann einen restart. Sonst kommt da wieder 404.

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte füllen Sie dieses Feld aus.
Bitte füllen Sie dieses Feld aus.
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren.

Jan Karres
Jan Karres
Wirtschaftsinformatiker
Facebook
Twitter
YouTube
LinkedIn
Xing
GitHub

Themen

  • Blogging
  • Debian (Linux)
  • Eine Geschichte aus dem Leben des Jan
  • Fotos
  • Gaming
  • Gedanken
  • Linksammlungen
  • Privates
  • Projekte
  • Raspberry Pi
    • Einplatinencomputer (außer Raspberry Pi)
  • Schule und Studium
  • Tipps und Tricks
  • Videos
  • Vorgestellt
  • WordPress

Projekte

Dieser Blog ist meine kleine Base im Internet, in der ich über Themen schreibe, die mich persönlich beschäftigen. Abseits davon habe ich weitere Projekte im Netz, die teils aus Spaß entstanden, jedoch zum Teil auch meinen Kühlschrank füllen.

Alle Projekte

JanKarres.de © 2007-2022

Neueste Beiträge

  • Raspberry Pi: WLAN Access Point mit NordVPN (VPN Router) einrichten Dezember 5, 2020
  • Real Cookie Banner: Wie das Opt-in Cookie Banner für WordPress entstand November 18, 2020
  • Blog Setup erneut: Aufräumen einer kleinen Historie Oktober 13, 2020
  • devowl.io: Auf geht’s in das WordPress Business! März 10, 2020
  • Kuschelpartys: Nähe und Geborgenheit einfach erleben September 30, 2018

devowl.io

Meine Brötchen verdiene ich im Internet. Dazu habe ich gemeinsam mit meinem Kollegen Matze die devowl.io GmbH gegründet. Gemeinsam entwickeln und vertreiben wir in unser Plugins und Entwickler-Tools im WordPress Umfeld.

Mehr erfahren
  • Datenschutzerklärung
  • Impressum