No description
Find a file
Daniel Heinze | ho.Systeme GmbH + Co. KG 3b45a7726c Auslieferungspunkt anlegen
Kein Quellcode -- nur die Stelle, an der der Autoupdater seine Abbilder
findet. Die Adresse wird beim Bauen in die Firmware gebrannt und laesst
sich spaeter nur aendern, indem jeder Knoten ein Update bekommt; deshalb
ein eigenes Repository mit festen Release-Tags statt einer Ablage im
Quellcode-Repo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-14 09:56:46 +02:00
README.md Auslieferungspunkt anlegen 2026-09-14 09:56:46 +02:00

hatemesh-firmware

Auslieferungspunkt des Autoupdaters. Hier liegt kein Quellcode — der steht in hatemesh-gluon.

Dieses Repository existiert, weil die Knoten eine Adresse brauchen, die sich nie ändert. Sie ist beim Bauen in die Firmware gebrannt und lässt sich nachträglich nur ändern, indem jeder Knoten ein Update bekommt.

Was hier liegt

Zwei Releases mit festen Tags. Ihre Anhänge werden bei jeder Auslieferung ersetzt:

Tag Kanal Wer bekommt es
stable Freigabe alle Knoten, sofern nicht anders eingestellt
experimental Vorab Knoten, die im Admin-Bereich unter Automatische Updates umgestellt wurden

Je Release:

  • <kanal>.manifest — die Liste der Abbilder, signiert
  • gluon-hm-<datum>-<gerät>-sysupgrade.bin — die Abbilder selbst

Feste Tags deshalb, weil Forgejo keine latest-Route für Anhänge kennt. Ein Tag je Auslieferung würde bedeuten, dass die Adresse in der Firmware nach dem ersten Release nicht mehr stimmt.

Wie es hierher kommt

Niemand lädt hier etwas von Hand hoch. Ein Tag im Firmware-Repo löst alles aus:

git tag stable-20260914 && git push origin stable-20260914

Der Workflow .forgejo/workflows/release.yml baut alle Targets, erzeugt das Manifest, signiert es und ersetzt die Anhänge hier.

Warum das öffentlich ist

Ein Knoten im Feld meldet sich nicht an. Er holt das Manifest anonym über https und prüft dessen ecdsa-Signatur gegen die öffentlichen Schlüssel, die in seiner Firmware stecken. Öffentlich lesbar zu sein ist damit eine Voraussetzung, keine Nachlässigkeit — und kein Sicherheitsproblem: wer den geheimen Schlüssel nicht hat, kann hier nichts unterschieben, das ein Knoten annimmt.

Die Organisation hatemesh schirmt ihre Repositories gegen Unangemeldete ab. Deshalb liegt die Auslieferung hier und nicht dort.