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 (Update 30.10.19)
Zuerst bringen wir den Server auf den neuesten Stand und installieren die nötige Software. Ich habe hier mal ein passendes Repo für PHP 7.2 und eine neue nginx Version eingefügt da im Oktober 2019 für das Setup nginx + PHP eine kritische Sicherheitslücke gefunden wurde.
add-apt-repository ppa:ondrej/php add-apt-repository ppa:ondrej/nginx apt-get update apt-get dist-upgrade apt-get install mariadb-server mariadb-client nginx php7.2 php7.2-fpm php7.2-mysql php-apcu php7.2-curl php7.2-cli php7.2-mbstring php7.0-xml git
Nun müssen wir noch kurz eine Änderung an der mitgelieferten PHP-FPM config Datei /etc/php/7.2/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
https://gist.github.com/bjoerns1983/30dff232c8ccede12f6caec7c609b0b6
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:
https://gist.github.com/bjoerns1983/1b39770af413e2297412a0f3346143f6
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.
Hallo Björn,
danke fürs verlinken. Somit habe ich auch wieder ein tolles neues Blog kennen gelernt.
Habs auch gleich in TTRSS abonniert.
Gruß
Michi