Rocrail und Open Source

Nachdem unsere Modellbahnanlage aktuell 14 Züge beheimatet und knapp 50 Weichen für Gleiswechsel zur Verfügung stehen, ist auf unserer Anlage einiges geboten. Dazu haben wir noch einiges an beleuchteten und bewegten Landschaftselementen, welche auch gesteuert werden wollen. Hierfür hat sich herausgestellt, dass die gute alte Märklin Central Station 2 einfach ab einem gewissen Punkt nicht mehr für uns geeignet war.

Als Modellbahner und gleichzeitig Open Source Enthusiast wünsche ich mir, dass die Software, die ich verwende, um meine Modelleisenbahn zu steuern, quelloffen ist. Leider hat sich trotz intensiver Suche herausgestellt, dass nur Rocrail als Steuersoftware in Frage kommt.

Rocrail: Das Herzstück einer Modelleisenbahn

Rocrail ist Software, welche mit Modelleisenbahnzentralen jeglicher Art kommunizieren kann. Die Software ermöglicht es, einen PC zum Herzen der Modellanlagen-Automatisierung zu machen. Durch die Fähigkeit, mit mehreren Zentralen gleichzeitig zu sprechen, besteht keine Notwendigkeit, alle Produkte zu nur einem Hersteller kompatibel zu kaufen.

Rocrail wird regelmäßig aktualisiert und hat ein sehr aktives Forum. Leider ist die Software mittlerweile nicht mehr Open Source, sondern proprietär - wodurch einige Probleme ins Rollen kommen:

  • Keine Möglichkeit, die Software für die eigene Linux-Distribution zu paketieren.
  • Nicht nachvollziehbarer Entscheidungsprozess für das Setup der Applikation.
  • Nicht vertrauenswürdiger Installer.
  • Keine Möglichkeit, die Binaries auf injizierten Schadcode während des Buildprozess zu überprüfen.

Oder ganz einfach gesagt: Weniger Sicherheit und Stabilität bei der Installation und Benutzung der Software. 

In diesem Blogartikel möchte ich darlegen, welche Weichen gestellt werden müssten, um Rocrail für begeisterte Entwickler und Eisenbahn-Nerds wie mich attraktiver zu machen.

Wunsch 1: Mehr Entwicklungsmöglichkeiten durch Open Source

Nachdem Rocrail vor sehr langer Zeit einmal Open Source war, habe ich dem Autor der Software meine Hilfe für die Paketierung angeboten. Diese wurde leider sehr schroff abgelehnt. Auch mein Angebot für eine private Open Build Service Instanz zum Bauen von Rocrail wurde aufs Abstellgleis geschoben. Der Autor besteht auf seinen eigenen Weg, die Pakete zu bauen. Leider fehlen auch moderne Paketformate wie Container, Flatpak oder Snaps, deshalb ist es auch nicht möglich, einen Support von Rocrail auf nicht unterstützten Distributionen zu ermöglichen. Die aktuellste Version von Rocrail ist primär auf das Betriebssystem Raspberry Pi OS (früher Raspbian) zugeschnitten, welches für den Raspberry Pi gedacht ist. Der Raspberry Pi ist nicht nur mit Raspberry Pi OS, sondern auch mit zahlreichen anderen Linux-Distributionen kompatibel. Nicht jeder Nutzer ist jedoch vertraut damit, wie man Raspberry Pi OS verwaltet, sondern hat vielleicht Erfahrung mit einem anderen Betriebssystem (wie openSUSE, Archlinux, …). Durch die Einschränkung, dass die aktuellste Version von Rocrail nur auf Raspberry Pi OS verfügbar ist, stehen für die Verwendung der Software keine anderen Betriebssysteme zur Verfügung.

Mein Wunsch, Rocrail zu verbessern, kommt aus folgender Situation: Ich habe daheim etwas mehr IT Infrastruktur und würde mir gerne die regelmäßigen Updates erleichtern, sowie im gleichen Zug die Verwaltung der Konfiguration der Applikation automatisieren. Dieser Wunsch kommt aus der Erfahrung, dass SD-Karten auf Raspberry Pis leider nicht sehr zuverlässig sind und der einzige aktuelle Build von Rocrail leider nur für den Raspberry Pi veröffentlicht wird. Alle anderen Versionen hinken immer ein wenig hinterher.

Wunsch 2: Systemd-Integration für mehr Entkopplung von Front- & Backend

Mein zweitgrößter Wunsch für Rocrail ist, dass die Software eine systemd-Integration bekommt. Hierdurch kann der Serverprozess vom Betriebssystem überwacht und verwaltet werden. Die enge Integration mit journald, die sich dadurch ergeben würde, würde mir ermöglichen, die Logfiles deutliches besser zu archivieren und auszuwerten. Ich könnte mir dadurch ein Grafana Dashboard bauen, welches den Status der Modelleisenbahn darstellt. Anhand dieses Dashboards könnte man bspw. Statistiken über die Pünktlichkeit der Züge erstellen, um eine Feinjustierung der Streckenautomatisierung zu vereinfachen. Dies sind natürlich alles Dinge, die ein normaler Modelleisenbahner nicht zwangsläufig brauchen würde, aber ich denke, dass sich so ein Aufwand bei der Anlagengröße, die wir haben, lohnen würde.

Wunsch 3: Verbesserte UX

Als Letztes muss ich sagen, dass ich die UI von Rocrail etwas auffrischen würde. Aktuell ist das Interface sehr rudimentär und viele Aktionen könnten mit moderner UI/UX deutlich vereinfacht werden. Insbesondere älteren oder wenig technikaffinen Menschen könnte die Bedienung der Software durch ein ansprechenderes und übersichtlicheres Design vereinfacht werden. Dazu könnte man die Applikation weg von einem Monolithen migrieren, um einfacher im Daemon neue Features implementieren zu können, die erst später in der UI sichtbar werden. Gerade für Kinder wäre es echt schön, eine ansprechende Oberfläche zu haben, mit der man ihnen den Spaß am Modellbauen nahebringen kann. Mehr Farbe wäre hier mein Motto. 

Die Zukunft von Rocrail: Warum der Zug noch nicht abgefahren ist

Für viele Modellbahnliebhaber ist Rocrail kaum noch von der eigenen Anlage wegzudenken. Auch ich selbst nehme Rocrail auf meiner eigenen Anlage im Eisenbahnkeller in Betrieb - nicht zuletzt aufgrund mangelnder Alternativen. Damit begeisterte Entwickler wie ich wieder Volldampf für die eigene Anlage geben können, würde ich mir allerdings wünschen, dass die Software wieder auf Open-Source umgestellt wird.

Comments

No Comments