Jan Banick Einzelausgabe, selbst gehostet

Über zwanzig Systeme,
und keines steht
in einem Store.

Alle laufen auf einem Server, den ich selbst aufgesetzt habe — manche für mich gebaut, manche für andere. Zu finden sind sie nur hier.

Zuerst die Maschine, auf der sie liegen. Ab Kapitel drei die Sachen selbst.

28 laufende Container 19 Cronjobs 36 Tage ohne Neustart Schreib mir

Kapitel eins

Alles läuft auf
einer Maschine.

Ein einzelner Server, Ubuntu 24.04, 96 Gigabyte Platte, davon 52 belegt. Alles, was auf dieser Seite steht, läuft darauf. Kein Vercel, kein Netlify. Wenn hier jemand die Preise ändert, bin ich das.

Abbildung 1: Nachtaufnahme. Der Clip läuft, solange du scrollst.

Kapitel zwei

Die Nachtschicht

Neunzehn Cronjobs stehen in den beiden Crontabs dieser Maschine. Zwölf davon haben eine feste Uhrzeit, und alle zwölf liegen zwischen 00:15 und 05:30. Danach passiert bis Mitternacht nichts mehr Geplantes. Sie sollen fertig sein, bevor ich aufstehe.

00:0006:0012:00 18:0024:00

12 Läufe · 00:15 – 05:30

Dazu kommen drei Läufe ohne feste Zeit: einer alle fünf Minuten, zwei alle fünfzehn. Die halten die Systeme im Takt, während der Rest schläft.

0 Container gleichzeitig in Betrieb
0 Cronjobs in zwei Crontabs
0 Tage ohne Neustart
0+ Systeme in Betrieb

Kapitel drei

Tafelteil

Sechs aus dem Register, aufgeschlagen. Das ganze Register steht unter den Tafeln.

Food Control: Tagesansicht mit Kalorienring und Makroverteilung.

Food Control

Art
PWA, eigener Sync
Läuft
hinter Login
Tut
Rechnet den Verbrauch aus dem Gewichtsverlauf zurück statt aus einer Formel
Alltagsmathe: Startseite mit Rechnern für Kredit, Sparplan und Testgüte.

Alltagsmathe

Art
Website, ohne Login
Läuft
mathe.janbanick.de
Tut
Die einzige App hier, die du sofort öffnen kannst, ohne mich zu fragen
Anime Tracker: Übersicht mit Zählern und Zeitpunkt des letzten Syncs.

Anime Tracker

Art
PWA, eigener Abgleich
Läuft
hinter Login
Tut
Fragt eine fremde API im Takt ab, mit Backoff, statt sie zu fluten
Luzid: Tagesansicht mit Übungsliste und Lernpfad.

Luzid

Art
PWA mit Lernpfad
Läuft
luzid.janbanick.de, hinter Login
Tut
Führt Traumtagebuch, Übungsplan und Technik-Trainer in einem Tagesablauf zusammen
Content Studio: Eingabemaske, die aus einem Video Beiträge und Folien erzeugt.

Content Studio

Art
Pipeline mit Datenbank
Läuft
Eigener Container plus Postgres
Tut
Zerlegt ein Video und setzt es für andere Kanäle neu zusammen
Company OS: Übersicht mit offenen Aufgaben, aktiven Projekten und der Modulliste.

Company OS

Art
Firmensystem, Next.js
Läuft
eigener Container plus Postgres, hinter Login
Tut
Führt Projekte, Kunden, Angebote, Kampagnen und Controlling in einer Oberfläche zusammen
Das Register
SystemArtTechnikZugang
Hermes AgentOrchestratorContainer, Cron, LLMintern
AI-MemoryWissensspeicherPostgres, pgvectorintern
WissenssystemWissensbasisMarkdown, Sucheintern
Content StudioPipelineContainer, Postgresintern
Wintergarten-CRMKundensystemWebanwendungKunde
Lead-GeneratorAutomationn8n, Datenbankintern
Upwork-WorkflowAutomationn8nintern
VPS-InfrastrukturBetriebDocker, Traefik, nginxFundament
Food ControlAppPWA, eigener SyncLogin
Endmyopia VisionAppPWA, Web-PushLogin
LuzidAppPWA, LernpfadLogin
Anime TrackerAppPWA, eigener AbgleichLogin
AlltagsmatheAppWebsite, ohne Loginoffen
Company OSFirmensystemNext.js, eigenes PostgresLogin
ZeitstromFeed-ReaderErweiterung, eigene SeiteEigenbedarf
Lokal PlayerAppAndroid, lokale BibliothekEigenbedarf
Social DownloaderAppAndroid, yt-dlpEigenbedarf
Browser-ExtensionsVolume-Booster, X-Sidebar, TranskriptManifest V3Eigenbedarf

Vier dieser Zeilen sind Browser-Erweiterungen, die ich für mich selbst gebaut habe: ein Feed-Reader mit Später-Lesen und Web-Clipper, eine Seitenleiste für X, ein Werkzeug, das Transkripte herausholt, und ein Lautstärkeregler pro Tab. Keine davon steht in einem Store. Nicht alles im Register ist von mir gebaut — Hermes Agent und n8n sind fremde Programme, die ich eingerichtet habe und betreibe.

Kapitel vier

Zwei Systeme,
ein Gedächtnis

Auf dem Server läuft Hermes Agent, ein fertiges Agentenprogramm, das ich eingerichtet und mit meinen Aufgaben bestückt habe. Auf meinem Rechner läuft Claude. Beide schreiben in dieselben 209 Markdown-Dateien, einen Ordner, der zwischen Server, PC und Handy abgeglichen wird. Was der eine nachts notiert, liest der andere morgens, ohne dass ich etwas kopiere.

Daneben steht ein Suchindex über 20.496 Textabschnitte aus 257 Dateien, 117 davon aus meinem Drive, der Rest aus derselben Wissensbasis. Gesucht wird zweigleisig: einmal nach Bedeutung, einmal nach Wortlaut, und beide Ergebnisse werden zu einer Reihenfolge zusammengeführt. Deshalb findet die Suche auch das, wofür ich das richtige Wort nicht kenne. Der Abgleich läuft um 03:00, in derselben Nacht wie alles andere.

Die Dateien und der Index liegen auf dieser Maschine. Nach draußen geht nur die Frage selbst, um sie in einen Vektor zu übersetzen. Das ist die einzige Stelle, an der ein fremder Dienst beteiligt ist.

Abbildung 3: Ein Karteikasten, nachts.

Und dann muss es morgen noch laufen.

Kapitel fünf

Wer baut, muss auch betreiben

Der Unterschied zwischen einem Projekt und einem System ist der Betrieb. Wenn nachts um vier etwas stehen bleibt, muss jemand es zurückholen. Deshalb steht in diesem Register nichts, was nur einmal funktioniert hat.

  • FundamentEin Linux-Server. Docker für alles, Traefik davor, nginx dahinter.
  • AnwendungenJavaScript und TypeScript, Vite-PWAs mit Service Worker, Python wo es rechnet.
  • DatenPostgreSQL, für Ähnlichkeitssuche mit pgvector. Sync ohne fremden Dienst.
  • Automationn8n und Cron. Neunzehn Läufe, die niemand von Hand startet.
  • BetriebVerschlüsselte Sicherungen außer Haus, ein täglicher Prüflauf, ein Protokoll, das mitzählt.

Alle zwei Tage um drei Uhr nachts packt ein Skript 47 Komponenten zusammen, verschlüsselt das Archiv, bevor es den Server verlässt, und legt es außer Haus. Vierzehn Stände bleiben liegen. Einen davon habe ich einmal vollständig zurückgespielt, weil eine Sicherung, die nie zurückgelesen wurde, nur eine Datei ist. Um halb sechs vergleicht ein zweiter Lauf den Server mit dem Stand von gestern und meldet sich, wenn sich etwas geändert hat. An ruhigen Tagen schreibt er trotzdem eine Zeile ins Protokoll, damit Stille nicht mit einem toten Cronjob verwechselt werden kann.

Abbildung 2: Der Schrank, in dem nichts steht, was ich nicht selbst hineingestellt habe.

So viel zur Maschine.

Diese Ausgabe wird gerade gelesen.

Der Apparat am Rand hat mitgeschrieben. Nicht über das System.

Über dich.

    Diese Ausgabe wurde gelesen.

    Nichts davon hat deinen Browser verlassen. Kein Cookie, keine Anfrage nach draußen. Die Messung lief in deinem Tab und ist vorbei, sobald du ihn schließt. Anders wäre der Rest dieser Seite auch nur eine Behauptung.

    Wenn daraus etwas werden soll: Schreib mir.

    Jan Banick hello@jan-banick.de Impressum Datenschutz Gesetzt in Instrument Serif und Archivo, lokal ausgeliefert.