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.