TOBIAS KNOBLOCH
WERKZEUGE
FÜR EIN
PUBLIKUM
VON EINS
TOBIAS KNOBLOCH · IT & SICHERHEIT

Ich baue Sachen, weil mich etwas gestört hat. Meistens bin ich der einzige Nutzer.

SCROLLEN
MIT DER MAUS ÜBER DEN TEXT FAHREN

Das meiste hiervon hat nie jemand außer mir gebraucht. Das war auch nicht der Plan.

FÜNF DAVON STEHEN UNTEN

Zeug, das läuft

05 STÜCK
01 — WEB-ANWENDUNG

Ein Blick genügt, um zu sehen ob alles noch läuft

DAS PROBLEM

Auf meinem Server laufen mehrere Dienste rund um die Uhr. Fällt einer aus, merke ich das erst, wenn etwas fehlt — und um nachzusehen, müsste ich mich jedes Mal per SSH einloggen und Statusbefehle tippen.

WAS ICH GEBAUT HABE

Eine Weboberfläche, die systemd nach dem Zustand jedes Dienstes fragt, Logdateien auswertet und Laufzeiten anzeigt. Der entscheidende Teil ist nicht die Anzeige, sondern was nicht drinsteckt: die überwachten Prozesse wissen nichts von diesem Board. Kein Agent, keine Bibliothek, keine Schnittstelle auf ihrer Seite — sie schreiben ihre Dateien wie vorher, und das Board liest mit. Fällt es aus, laufen sie unbeeindruckt weiter.

AUFBAU
Prozess
Ein Flask-Dienst, selbst unter systemd, hinter Reverse-Proxy mit HTTPS
Zugang
Session-Login, TOTP als zweiter Faktor, davor eine eigene Basic-Auth-Schicht
Begrenzung
20 Anmeldeversuche pro Minute, 5 pro Sekunde
Zustand
Kein Datenbankserver — JSON-Dateien und Logs im Dateisystem
Abfrage
systemctl über einen Unterprozess, Ergebnis 30 s zwischengespeichert
Wartung
Eine Flag-Datei sperrt sämtliche Routen — außer von localhost, damit ich mich nicht selbst aussperre
Eigenkontrolle
Ein Cron-Job prüft alle 30 Minuten von außen, ob die Oberfläche noch antwortet
PYTHON / FLASKSYSTEMDTOTPPSUTILVPS

Läuft privat hinter einem Login — kein öffentlicher Zugang, kein Repo.

DIENSTE gerade eben
collector.service14T 06:224 %
scheduler.service14T 06:222 %
notifier.service3T 11:041 %
watchdog.service28T 02:471 %
archiver.servicegestoppt
JOURNAL

14:28:04collector — Durchlauf beendet, 412 Datensätze

14:27:31watchdog — alle Prüfpunkte bestanden

14:12:09archiver — beendet mit Code 1

4 VON 5 AKTIV ANMELDUNG: 2FA AKTIV
PROZESSE schreiben Logs
und Statusdateien
DATEISYSTEM JSON, Logs,
systemd-Zustand
OBERFLÄCHE liest, cacht 30 s,
zeigt an

Die Pfeile zeigen nur in eine Richtung. Nichts schreibt zurück.

02 — FLUTTER-APP

Eine Fahrradkarte, die aufdeckt, wo ich schon war

DAS PROBLEM

Ich bin seit Jahren in derselben Stadt unterwegs und immer dieselben Wege gefahren. Ich wollte sehen, wie viel davon ich eigentlich nie zu Gesicht bekommen habe.

WAS ICH GEBAUT HABE

Die Karte liegt unter Nebel. Wo ich mit dem Rad langfahre, reißt er dauerhaft auf — wie der Fog of War in Strategiespielen. Das Kartenmaterial kommt von OpenStreetMap, die markierbaren Orte holt die App live über die Overpass-Schnittstelle, statt sie fest einzubauen. Karlsruhe ist nur die Startkoordinate; mit einer anderen läuft sie in jeder Stadt.

FLUTTER / DARTOPENSTREETMAPOVERPASS-APIGPS IM HINTERGRUND

Läuft auf dem Telefon, liegt nur lokal — kein öffentliches Repo.

Die App beim ersten Start: Karlsruhe liegt vollständig unter grauem Nebel.
Unberührt
Nach einer Fahrt durch die Innenstadt: um den Europaplatz ist der Nebel aufgerissen, die Karte darunter sichtbar.
Nach einer Fahrt
03 — CLAUDE SKILL + JS-MODUL

An CORS und Cloudflare vorbei, ohne Backend

DAS PROBLEM

Ein Browser darf fremde Seiten nicht einfach lesen — CORS blockt. Und wo CORS nicht blockt, steht Cloudflare davor. Für eine reine HTML-Datei ohne Server ist das eigentlich das Ende.

WAS ICH GEBAUT HABE

Alle Proxys laufen gleichzeitig als Wettrennen statt nacheinander, der erste gültige Treffer gewinnt. Fehlerseiten und Cloudflare-Blockseiten werden erkannt und disqualifiziert, damit sie nicht gewinnen. Wenn alle scheitern, übernimmt ein echter Headless-Browser. Fiel beim Bauen des Windows-95-Dashboards ab.

JAVASCRIPTKEINE DEPENDENCIESCLAUDE SKILL

Das Repo ist noch privat — es geht online, sobald ich es aufgeräumt habe.

PROXY-RENNEN0 ms
rss2json
corsproxy.io
cors.sh
allorigins
codetabs
✓ cors.sh — 640 ms, 41 kB, gültiges XML
04 — KOMMANDOZEILEN-WERKZEUG

Vorlesungen schreiben sich selbst mit — samt Folien

DAS PROBLEM

Aufgezeichnete Vorlesungen noch einmal anzusehen kostet dieselbe Zeit wie beim ersten Mal. Und eine reine Tonabschrift hilft wenig, wenn die Hälfte des Inhalts auf Folien steht, über die nur geredet wird.

WAS ICH GEBAUT HABE

Zwei Spuren aus einer Videodatei. Der Ton geht durch Whisper, das lokal auf dem Apple-Silicon-Chip läuft. Parallel schneidet ffmpeg Einzelbilder heraus, die ein Vision-Modell in echtes Markdown zurückübersetzt: aus einem Balkendiagramm wird ein Mermaid-Diagramm, aus einer Folientabelle eine Markdown-Tabelle, jede Zelle einzeln — nicht zusammengefasst. Beides landet zeitlich verwoben in einer Obsidian-Notiz: pro Zeitmarke steht, was auf der Folie stand und was dazu gesagt wurde.

DER TRICK

Eine Vorlesung besteht zu großen Teilen aus derselben Folie. Vor der Analyse vergleicht das Tool die Einzelbilder über ihre Graustufen — unveränderte werden nicht erneut geschickt, sondern erben das Ergebnis des letzten neuen Bildes. Aus mehreren hundert Einzelbildern werden so ein paar Dutzend Anfragen.

PYTHONMLX-WHISPERFFMPEGVISION-MODELLMERMAID

Der Ton bleibt auf dem Rechner. Die Folienbilder gehen zur Auswertung an eine Programmierschnittstelle — das ist der bewusste Tausch für die Diagramm-Erkennung. Das Repo ist noch privat.

TON0 %
EINZELBILDER0 / 0

00:31Also: Was unterscheidet die beiden Verfahren in der Praxis?

FOLIE BEI 00:31 → MARKDOWN
erkannt
```mermaid
xychart-beta
  x-axis [10², 10³, 10⁴, 10⁵]
  bar [12, 41, 96, 240]
```
ZIELObsidian/Vorlesungen/2026-07-22.md
05 — PLAYBOOK

Wenn Büro-IT und Anlagensteuerung dieselbe Störung haben

DAS PROBLEM

In der Büro-IT zieht man im Zweifel den Stecker. An einer laufenden Anlage kann genau das der teurere Fehler sein. Die üblichen Notfallpläne kennen nur eine der beiden Welten.

WAS ICH GEBAUT HABE

Ein Ablaufplan, der beide Seiten zusammenbringt: welche Schritte in der IT gelten, welche in der Anlagensteuerung anders laufen, und an welchen Punkten sich beide abstimmen müssen, bevor jemand etwas abschaltet.

INCIDENT RESPONSEOT/ICSÖFFENTLICH
Auf GitHub ansehen
ABLAUF — IT VS. ANLAGE
ERKENNENMeldung prüfen, Umfang eingrenzenGLEICH
EINDÄMMENIT trennt sofort. Anlage erst nach Freigabe — Abschalten kann teurer sein als der Vorfall.ABSTIMMUNG
BESEITIGENPatchen im laufenden Betrieb ist an der Anlage oft nicht möglichABSTIMMUNG
WIEDERANLAUFStufenweise, mit Prüfpunkten auf beiden SeitenGLEICH
NACHBEREITENWas hat gefehlt, was kommt ins PlaybookGLEICH

Nebenan läuft noch Windows 95.

Mein Nachrichten-Dashboard. Siebzehn RSS-Quellen in Fenstern, die sich ziehen, vergrößern und in die Taskleiste legen lassen, dazu ein Lesemodus, der Artikel aus fremden Seiten herausschält. Alles in einer einzigen HTML-Datei — kein Build, kein npm, kein Server. Doppelklick genügt.

Keine Kachel, keine Vorschau: das ist die echte Seite. Am besten an einem großen Bildschirm.

Zum Desktop
📁 Security & OSINT_×
Kritische Lücke in weit verbreiteter Bibliothek
BleepingComputer · vor 2 Std.
Ransomware-Gruppe listet neues Opfer
The Hacker News · vor 4 Std.
Warum Passwortrichtlinien scheitern
Schneier on Security · vor 6 Std.
Analyse: Angriffskette über Lieferanten
Krebs on Security · vor 9 Std.
4 ArtikelAktualisiert 14:28