icon
Personal Website

Weekly Coding • 2025-11-30

This text was automatically translated to German language by LLM tool.

Persönliche Website und Spring Boot 🍃☕

Diese Woche habe ich mein Projekt „web-counter“ zum Laufenden gebracht. Jetzt zählt es die Anzahl der Seitenaufrufe auf meiner persönlichen Website https://hinst.github.io/. Damit der Zähler funktioniert, muss der Benutzer JavaScript im Browser aktiviert haben. Besuche von Bots, die lediglich die HTML-Seite herunterladen – werden nicht mitgezählt. Die Daten werden in einer SQLite-Datenbank gespeichert. Außerdem habe ich folgenden Schutz gegen Spam eingebaut:

  • Der Server multipliziert zwei Primzahlen
  • Das JavaScript auf der Clientseite muss herausfinden, welche zwei Zahlen dies waren

Auf diese Weise ist es nicht möglich, die API unendlich oft anzufragen. Um die Antwort auf das Rätsel des Servers zu berechnen, muss man sich bemühen. Der Schutz kann flexibel konfiguriert werden: Wenn man die Anzahl der Faktoren etwas erhöht, nimmt die Entschlüsselung des Rätsels auf der Clientseite eine ganze Menge Zeit in Anspruch. Ob ein solcher Schutz für mein kleines Projekt wirklich notwendig ist – das ist natürlich eine Frage 🤔💭 Zumindest habe ich während der Entwicklung dieses Features zusätzliche Erfahrung mit Spring Boot gesammelt. https://github.com/hinst/web-counter

Kubernetes und Orange Pi 🐋🍊

hier habe ich zwei Probleme behoben.

Erstens war bei mir das RAM-Logging auf dem Orange Pi aktiviert. Diese Funktion ist standardmäßig eingeschaltet, und deshalb gingen meine Logs in Kubernetes verloren. Ich musste sie deaktivieren. Die Logs werden jetzt nicht mehr verschwinden, aber die Belastung der Speicherkarte wird steigen.

Außerdem habe ich herausgefunden, dass meine Persistent Volume Claims falsch konfiguriert waren. Es stellt sich heraus, dass jedes Paar aus PV & PVC über eine identische storageClassName verbunden sein muss. Früher war mir das nicht aufgefallen, da ich weniger PVs hatte und sie sich „aus glücklicher Zufälligkeit“ auf die richtigen PVCs verteilen ließen 🤔🚿 Eine etwas verwirrende Funktion, meiner Meinung nach.