Tiny Tiny RSS unter Ubuntu 16.04 LTS installieren

So und wieder einmal wechsel ich den Feedreader. Nachdem der Google Reader zugemacht wurde habe ich erst einige Zeit Selfoss verwendet. Nett aber nicht so toll von der usability.

Danach habe ich einen Owncloud Server aufgesetzt und das News Plugin genutzt. Leider ist das Updaten eine Owncloud Servers doch öfters mal problematisch, vor allem wenn man Owncloud Apps verwendet. UNd wenn dann beim Update (mal wieder) was schiefgeht steht man nicht nur ohne Filesync sondern auch ohne News da. Owncloud ist schön aber man sollte manche Dienste doch lieber separat laufen lassen.

Nun bin ich bei Tiny Tiny RSS (nachfolgend ttrss genannt) angekommen. Und bisher sehe ich vorallem guten Clients, wenn man das ganze mal installiert hat. Da ich dabei ein paar Stolpersteine gefunden habe, hier nun dieser Post, damit es für andere schneller geht.

Was haben wir am Ende?

Einen ttrss Server auf Basis von Ubuntu 16.04 LTS, nginx, MariaDB und PHP 7.0. Die Verbindung zum Server wird per SSL/TLS gesichert und so konfiguriert das der Qualys SSL Test ein A+ Rating ergibt. Des weiteren wird der Server per IPv6 und HTTP2 erreichbar sein.

Was wird voraus gesetzt

Ich kann wahrlich nicht jedes kleinste Detail erklären, für die meisten Sachen gibt es auch schon woanders sehr gut Tutorials.
Was braucht Ihr also?
– DNS Server Einträge für eure Domian, und zwar als A- Record sowie als AAAA- Record. Verfügt euer Server über keine IPv6 Anbindung (sollte man aber dringends einrichten) dann müsst Ihr die passagen in der nginx Config auskommentieren.
– Ein SSL Zertifikat für euren Server. Ich empfehle ein LetsEncrypt Zertifikat, anfangs im Standalone Modus (wenn noch kein Webserver läuft) zu erstellen. Anschließend kann man dieses per Webroot Methode bei laufendem Server erneuern.
– Ihr arbeitet auf dem Server als root, ansonsten müsst ihr den meisten Kommandos ein sudo vorstellen.

Software installieren

Zuerst bringen wir den Server auf den neuesten Stand und installieren die nötige Software.

apt-get update
apt-get dist-upgrade
apt-get install mariadb-server mariadb-client nginx php7.0 php7.0-fpm php7.0-mysql php-apcu php7.0-curl php7.0-cli php7.0-mbstring php7.0-xml git

Nun müssen wir noch kurz eine Änderung an der mitgelieferten PHP-FPM config Datei /etc/php/7.0/fpm/pool.d/www.conf vornehmen. Such in der Datei nach der listen Direktive. Diese lauscht standardmäßig auf einem Unix Socket. Ändert diese folendermaßen ab:

listen = 127.0.0.1:9000

Datenbank vorbereiten

Als nächstes bereiten wird die MariaDB (Plugin Replacement für MySQL vor). Zuerst starten wir die DB, dann legen wir ein root User Passwort an. Danach erstellen wir User und Datenbank für ttrss.

service mysql start start

mysqladmin -u root password

mysql -u root -p

create database ttrss;

create user ttrss@localhost identified by 'PASSWORD';

grant all privileges on ttrss.* to ttrss@localhost identified by 'PASSWORD';

exit;

Damit steht eure Datenbank. PASSWORD solltet Ihr natürlich gegen etwas sinnvolles austauschen.

ttrss installieren

ttrss wird einfach installiert indem Ihr das Git Repo in euren Webroot Ordner cloned und danach die Rechte anpasst.

git clone https://tt-rss.org/git/tt-rss.git /var/www/ttrss chown -R www-data:www-data /var/www/ttrss

nginx konfigurieren

Jetzt müssen wir nginx noch sagen was der Server mit den Dateien etc. anfangen soll. Das war für mich der trickreichste part obwohl die Lösung es simpel war. Zuerst sucht Ihr in der Datei /etc/nginx/nginx.conf nach dem Wert server_names_hash_bucket_size 64; und entfernt das hashtag davor. So umschifft ihr einen Fehler der es mir unmöglich gemacht hat den Server zu starten.

Nun sollte wir noch eine eigene dhparam.pem Datei für nginx erstellen:

openssl dhparam -out /etc/nginx/dhparam.pem 2048

Der Inhalt des folgenden Gist kommt dann in die eigentliche config Datei des ttrss virtual host unter /etc/nginx/sites-available/ttrss

Natürlich müsst Ihr den server_name und die location eures SSL Zertifikats sowie private Key noch anpassen.

Wie Ihr seht hab ich mit HPKP gespart (zu kompliziert mit LetsEncrypt). Dafür sind HSTS und OCSP an Board.

Anschließend müsst Ihr die config nur noch aktivieren (dabei kann man die default Seite gleich rausschmeissen) und nginx neu starten:

rm /etc/nginx/sites-enabled/default

ln –s /etc/nginx/sites-available/ttrss /etc/nginx/sites-enabled/ttrss

service nginx restart

ttrss einrichten

Nun könnt Ihr zum ersten mal die Domain aufrufen. Der Installationsassistent sollte nun die Angaben zur Datenbank abfragen und danach in der Datei config.php unter /var/www/ttrss abspeichern. Sollte das nicht funktionieren kann man den Inhalt auch kopieren und von Hand diese Datei erstellen. Vergesst aber nicht den Besitzer zu ändern.

ttrss upgraden

Wollt Ihr ttrss upgraden dann könnt Ihr das ganz bequem per Git machen. Danach müsst ihr ggf. die config.php an die neue Version anpassen.

cd /var/www/ttrss

git pull origin master

Updater einrichten

Es gibt mehrere Arten einen Updater einzurichten. Ich hab mich für den Update Daemon entschieden welcher per Systemd Script gestartet wird. Dafür legt Ihr den Inhalt des folgenden Gist ein der Datei /etc/systemd/system/ttrs.service ab:

Nun müsst Ihr diesen Service dem System noch bekannt machen:

systemctl enable ttrss.service
service ttrss start

Glückwunsch nun läuft auch euer Updater!

Clients

Wie schon gesagt für mich sind vor allem die Clients wichtig, vor allem da Sie unterwegs das Leben einfacher machen. Ich habe bisher zwei ausprobiert, einmal für iOS und einen für den Mac. Wer noch Vorschläge für Android, Windows, Windows Phone etc. hat immer her damit.

iOS: tiny Reader RSS

Android: TTRSS-Reader

Mac OS: Micro RSS (wird leider nicht mehr weiter entwickelt)

Linux: FeedReader Sieht super aus, leider nicht für OSX

Windows Phone 8.x / Windows 10: Tiny Tiny RSS Reader for Windows

Dankeschön

Lieben Dank möchte ich an Michi’s Blog senden, der mir die installation vereinfacht hat auch wenn ich nicht alles übernehmen konnte.

One thought to “Tiny Tiny RSS unter Ubuntu 16.04 LTS installieren”

Schreibe einen Kommentar

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