LUKS Server-LVM beim Boot mittels Dropbear SSH via Wifi entsperren

von Eric Kubenka

Ich habe mir letztens einen kleinen Tiny PC gekauft, welcher als Server für kleine Docker-Container dienen soll. Home Assistant, ein kleines Grafana und ein bisschen Logging. Der Standarkram für den Heimautomatisierungsbedarf eben. Der kleine PC hat Wifi und soll in einer Ecke stehen, welche nicht über ein LAN Kabel erreichbar ist. Aufgesetzt hab ich den Kleinen mit einem schlanken Debian 13 System und LVM mit LUKS Verschlüsselung für die Platten. Der aktuelle Standard eben. - Bis mir dann aufgefallen ist, dass ich Platten ja entschlüsseln muss, wenn ich ihn mal neu starte oder ein Stromverlust zum Reboot führt. Also schnell ein Dropbear SSH Server im initramfs aufgesetzt und den Wifi Netzwerkadapter ebenfalls noch im initramfs verfügbar gemacht, damit ich das Decrpyt-Passwort auch per SSH über Wifi eingeben kann.

Weiterlesen …

Websocket Echtzeitkommunikation in AngularJS

von Eric Kubenka

Für einen Geburtstag im Bekanntenkreis wollte ich ein kleines Spiel einer Gameshow aus dem Fernsehen als Client-Server-Anwendung nachbauen. Dabei soll sich ein Administrator als jener ausgeben können und als Spielleiter fungieren, während sich Clients zur reinen Anzeige der Daten, beziehungsweise des Spiels, zum Server verbinden und in Echtzeit die aktuellen Fragen, Timer, Antwortversuche und Lösungen anzeigen, sobald der Spielleiter diese zur Anzeige freigibt. Dazu nutze ich WebSockets und Angular.

Weiterlesen …

contao 4.9 - Große Tabellen werden abgeschnitten

von Eric Kubenka

Als ich zuletzt im Rahmen einer anderen Webseite große Tabellen mit weit mehr als 100 Datensätzen mittels Contao erzeugen und darstellen lassen wollte, wurden meine Tabellen beim Speichern im Backend abgeschnitten. Doch nicht nur das, auch andere Eigenschaften des Inhaltselement "Tabelle" wurden nicht mehr korrekt gespeichert, So ging beispielsweise die definierte CSS-Klasse verloren. Woran das liegt? Eine simple PHP-Konfiguration.

Weiterlesen …

TestNG Guice-Annotation in JUnit nutzen

von Eric Kubenka

Schon seit Jahren arbeite ich in java-basierten Testautomatisierungsprojekten ausschließlich mit TestNG als
Testframework.

Als ich im Jahr 2014 im Beruf die ersten Projekte umsetzte, konnte TestNG einfach durch ein besseres Feature-Set und
eine deutlich bessere parallelisierte Testausführung punkten.

Und auch in der heutigen Zeit, gefällt mir persönlich die Entwicklung von TestNG besser, zum Beispiel auch die
Guice-Integration. Mit einer simplen Annotation an einer Testklasse, kann das eigene Guice-Modul geladen und somit
Depenency-Injection deutlich vereinfacht werden.

Diesen Komfort gibt es in JUnit (5.7.2) nicht, jedoch lässt es sich mit einfachen Mitteln nachbauen und ich zeige wie.

Weiterlesen …

QuickTipp: Default Upstream in Git setzen - Current branch has no upstream

von Eric Kubenka

Da ich nun bereits seit einigen Tagen mit Git arbeite und ein Fan von Aliasen und einfachen Workflows bin, aber oft bei Kollegen über folgende Meldung stolpere, möchte ich kurz zeigen, wie man diese nervige Meldung beim git push neuer lokaler Branches los wird.

$ erku@code-fever:~$ git checkout -b /feature/new-local-branch
$ erku@code-fever:~$ git push
fatal: The current branch feature/new-local-branch has no upstream branch.

Das ganze lässt sich durch das Setzen eines Default Settings in der Git-Konfiguration ändern, so dass der lokale Branch-Name immer als Initialeinstellung für den Remote-Branch genutzt wird.

Weiterlesen …

Quicktipp: Maven error: invalid target release 1.12

von Eric Kubenka

Beim Update von JDK 8 auf JDK 11,12 oder höher müssen bei Verwendung von Maven und des Maven Compiler Plugins die Source und Target Versionen von Java angehoben werden. Dabei gibt es ein kleines Fettnäpfchen, welches viele meiner Kollegen nicht auslassen. Ich erkläre kurz, wie man den unten beschriebenen Fehler korrigiert und das Projekt wieder kompilierbar macht.

 

$ mvn clean compile
Fatal error compiling: error: invalid target release: 1.12

Weiterlesen …

Selenium - Hängende Sessions verhindern

von Eric Kubenka

Bei Verwendung von Selenium und dessen RemoteWebDriver kann es bei der Ausführung von Tests und Interaktionen dazu kommen, dass Verbindungsprobleme oder Netzwerkprobleme auftreten und die intern von Selenium festgelegten Timeouts für ConnectionTimeout und ReadTimeout greifen.
Vor allem der Read Timeout sorgt hier dann für hängende Selenium-Sessions und lässt sich meist durch ein Abbruch des Testlaufs beheben.

Ich möchte zeigen, wie man Seleniums Default-Wert von 3 Stunden des Read-Timeouts von Selenium verändern kann.

Weiterlesen …