Wenn Docker schneller als das NAS ist

Am Morgen meldete mein Backup-Tool einen Fehler, und zwar bei allen GitHub-Repositories, die es in meine selbst gehostete Forgejo-Instanz spiegeln sollte. Im Log standen ERR pkt-line 3: EOF git=push und anschließend Exiting with status=1. Mein erster Verdacht fiel auf das Tool-Image, das ich kurz zuvor aktualisiert hatte. Plausibel, schnell gedacht und komplett daneben.
Die eigentliche Ursache lag eine Schicht tiefer. Forgejo speichert seine Repositories auf der NAS, die per NFS in den Container gemountet wird. Mein Docker-Host bootete um 04:06:14, der Forgejo-Container startete um 04:06:45. Die NFS-Mounts waren erst ab 04:07:06 aktiv, der letzte sogar erst um 04:07:16. Docker war also schneller als die NAS.
Das ist eine ungünstige Reihenfolge, weil Docker Bind-Mounts beim Containerstart auflöst und fehlende Quellverzeichnisse selbst anlegt. Existiert der Mountpunkt zu diesem Zeitpunkt nur als lokales Verzeichnis, bindet Docker genau dieses leere Verzeichnis ein. Wenn NFS später erscheint, sieht der Host zwar die echten Daten, der Container bleibt […]

llama.cpp in Docker unter WSL2 mit CUDA

In diesem Guide zeige ich dir, wie ich einen lokalen, OpenAI-kompatiblen llama-server in Docker unter WSL2 mit CUDA-Beschleunigung einrichte, und nehme dich dabei vom grundlegenden Aufbau bis zum ersten funktionierenden Request mit.
Am Ende läuft ein llama-server im Container, der über WSL2 die GPU nutzt, mit genau einem Slot, also -np 1, und mindestens 128k Kontext. Ich brauche diese Größe aus eigener Erfahrung, weil ich einen Coding-Agenten wie OpenCode damit laufen lasse: Bei kleineren Kontexten kommt es zu häufigen Compactions, was das Arbeiten mühsam macht. Ein größerer Kontext wäre schön, passt aber in meinem Setup nicht mehr in den VRAM. Das Setup ist für einen einzelnen lokalen Arbeitsplatz gedacht, nicht für einen Server, an dem mehrere Nutzer gleichzeitig ihre Anfragen stellen.
Den fertigen Endpoint kann jeder Client ansprechen, der die OpenAI-kompatible API versteht, während die Modelle lokal auf deiner eigenen Maschine laufen und keine Cloud benötigen. Der lange Kontext ist dabei kein […]

Wie ich Spotify auf jeder Alexa in Home Assistant starte

Ich höre zu Hause Musik über Spotify Premium und nutze als Abspielgeräte überwiegend Alexa-Geräte von Amazon.
Ich wollte, dass meine Tochter ihre Lieblingslieder selbst starten kann, ohne ein Handy oder einen Bildschirm bedienen zu müssen. Eine NFC-Karte an den Leser halten, und die Musik läuft: eine Art Tonie-Box, nur selbst gebaut. Der Leser basiert auf einem ESP32-Mikrocontroller. Ich habe ihn mit dem ESPHome Builder nach der Vorlage von adonno/tagreader aufgebaut.
Der naheliegende Ansatz in Home Assistant ist die offizielle Spotify-Integration zusammen mit media_player.play_media. Für einen Kaltstart reicht das aber nicht. Mit der Integration lässt sich play_media erst sinnvoll verwenden, wenn auf dem Spotify-Player bereits etwas läuft. Soll ein bestimmter Song, eine Playlist oder ein Podcast aus dem Stand starten, greift dieser Weg zu kurz. Das ist keine Fehlkonfiguration, sondern eine Einschränkung der Integration und ihres aktuellen media_player-Verhaltens.
Die Lösung ist ein kleines Python-Skript. Es fragt die Spotify-Web-API nach den verfügbaren Spotify-Connect-Geräten, sucht die […]

PageSpeed-Optimierung von code-bude.net: Was ich geändert habe und was wirklich geholfen hat

Diagramm zur Messung von Ladezeit, Layout Shift, Bildern sowie CSS und SchriftenPageSpeed ist kein Orakel. Aber Bytes lügen deutlich seltener als ein einzelner Score.
Ich betreibe code-bude.net schon lange genug, um die kleinen Reibungen zu kennen. Eine Startseite mit 22 externen CSS-Dateien, mehr als 100 KB HTML und 1,2 MB großen PNG-Titelbildern in den Listenansichten war irgendwann keine charmante Altlast mehr. Lighthouse sah ein Bild-Einsparpotenzial von 6,25 MB. Der PageSpeed-Insights-Score lag je nach Lauf zwischen 27 und 55. Das ist keine Messung; eher eine Wettervorhersage mit sehr kleiner Regenwolke.
Ich habe deshalb in zwei Runden gearbeitet. Zuerst kümmerte ich mich um Bilder, CSS, kritisches CSS und Schriften. Danach nahm ich die Themen aus Site Health, CLS, Barrierefreiheit, […]

Von Bookstats zu LibrisLog: So gelingt die Migration deiner Lesestatistik

Bookstats wird in naher Zukunft nicht weiterbetrieben. In der App wurde als Grund genannt, dass die Person hinter dem Projekt mit starken gesundheitlichen Problemen zu kämpfen hat. Ein festes Abschaltdatum oder eine Exportfrist gibt es nicht, und niemand weiß, was nach einer Abschaltung mit den Serverdaten passiert. Wenn deine Bibliothek noch in Bookstats liegt, würde ich deshalb nicht warten, sondern sie jetzt exportieren.
Die Frage nach einer Alternative tauchte auch im Reddit-Thread zum Betriebsende von Bookstats und im Bookcrossing-Thread zu Alternativen auf. Dort habe ich selbst auf LibrisLog hingewiesen, weil es Bookstats-Exportdateien importieren kann und die Daten bei Menschen bleiben, die ihre Bibliothek lieber selbst unter Kontrolle halten. Der Quellcode liegt offen auf GitHub. Aus dieser Antwort ist dieser Leitfaden entstanden.
Ich bin der Entwickler von LibrisLog und habe die Migration selbst mit meiner Bookstats-Datei durchgespielt. Sie enthielt 178 Buchzeilen. Der Weg ist erfreulich geradlinig, auch wenn ich beim ersten Blick auf […]

code-bude.net
Datenschutz-Übersicht

Diese Website verwendet Cookies, damit wir dir die bestmögliche Benutzererfahrung bieten können. Cookie-Informationen werden in deinem Browser gespeichert und führen Funktionen aus, wie das Wiedererkennen von dir, wenn du auf unsere Website zurückkehrst, und hilft unserem Team zu verstehen, welche Abschnitte der Website für dich am interessantesten und nützlichsten sind.