• v2.0.4 313eb4bbf9

    TESM 2.0.4 Stable

    alientim released this 2026-09-03 12:21:37 +02:00 | 87 commits to main since this release

    Automatische Abmeldung -- jetzt wirklich

    In 2.0.3 war die Ursache nur halb behoben. Zwei Gruende, beide fuer sich
    ausreichend:

    • Eine zweite Schreibstelle. Die Sitzung wird nicht nur beim Lesen einer
      Anfrage verlängert, sondern auch beim Speichern -- und das geschieht, sobald
      eine Anfrage die Sitzung anfasst. Ein neu erzeugtes CSRF-Token genügt dafür.
      Die Prüfung an der ersten Stelle lief damit ins Leere. Sitzungsdaten werden
      weiter gespeichert, nur die Fristen bleiben stehen. Dieselbe Stelle benutzte
      ausserdem die fest eingebaute Zeit statt der einstellbaren; bei der Vorgabe
      von 30 Minuten fiel das nicht auf.
    • Ein Tab, der noch das alte Skript fährt. Die Kennzeichnung automatischer
      Anfragen kam bisher nur vom Browser -- wer seit gestern Abend angemeldet ist,
      hat die Seite seit gestern Abend nicht neu geladen und schickt sie deshalb
      nicht. Genau dieser Tab ist der Fall, um den es geht. Der Server weiss es
      jetzt ohne Zutun des Browsers: die Endpunkte, die eine Kachel oder ein
      Protokoll nachlädt, sind als Aktualisierungsausschnitt gekennzeichnet und
      gelten damit immer als automatisch.

    Dass es auf dem Lizenzserver zuverlässig funktionierte, war der entscheidende
    Hinweis: dort pollt keine Kachel.

    Ein Neuladen des Tabs ist damit nicht mehr nötig -- die Abmeldung greift
    auch bei einem Tab, der seit Stunden offen steht.

    Sichtbares Ende einer abgelaufenen Sitzung

    Die Statusübersicht antwortet auch öffentlich. Nach dem Ablauf kam deshalb eine
    200 mit den öffentlichen Kacheln zurück, und der offene Tab zeigte weiter eine
    Oberfläche, als sei alles in Ordnung. Ein zusätzlicher Kopf sagt es unabhängig
    vom Statuscode; der Browser lädt daraufhin neu und zeigt die Anmeldemaske.

    Installation

    sudo bash /opt/tesm/deploy/update.sh tesm latest --instance <name>
    
    Downloads
  • v2.0.3 51ae39dd53

    TESM 2.0.3 Stable

    alientim released this 2026-09-03 11:43:03 +02:00 | 88 commits to main since this release

    Upgrade von der Fassung 1.x

    Neu: deploy/upgrade.sh -- ein Weg vom Stand SONNET5 auf diese Fassung,
    mit Daten. Der Ablauf braucht keine Schalter:

    sudo bash deploy/upgrade.sh --app tesm
    

    Sichern -> abschalten -> installieren -> exportieren -> übersetzen ->
    einspielen. Die Sicherung steht bewusst vor dem Export: ohne --instance
    installiert install.sh in dasselbe Verzeichnis, und wer erst exportiert und
    dann sichert, sichert im schlechtesten Fall nichts mehr. Gelesen wird
    ausschliesslich aus der Kopie -- die alte Installation wird nie verändert.

    Übernommen werden Clients, Switche, Zugangsdaten und DHCP. Lokale Konten,
    Gruppen, LDAP und Webserver kommen nicht mit; der Bericht sagt es beim Namen.

    Zwei neue Befehle stehen auch einzeln zur Verfügung:

    • tesm-admin legacy-export --source /srv/tesm --out datei.json liest eine
      alte Installation unmittelbar -- der Vorgänger kann nur über die
      Weboberfläche exportieren, und das geht nicht mehr, wenn er nicht startet.
      Die Datei ist ein echter Export des Vorgängers und taugt deshalb als
      Rückweg.
    • tesm-admin legacy-import datei.json liest eine Datei im neuen Format ein --
      über denselben Import wie die Seite "Sicherung".

    Automatische Abmeldung -- sie hat nie ausgelöst

    Ein offener Tab fragt seine Kacheln alle 15 Sekunden neu ab, und jede
    Abfrage verlängerte das Leerlauffenster
    . Nachweisbar an einer Sitzung, deren
    last_seen_at eine Minute alt war, obwohl seit zehn Stunden niemand am Rechner
    sass. Der Browser kennzeichnet automatische Anfragen jetzt, der Server
    verlängert daraufhin nichts, und last_seen_at bleibt, was der Name sagt: der
    letzte Zeitpunkt, an dem ein Mensch da war.

    Fällt die Sitzung während des Pollens, antwortet der Server mit 401 statt mit
    einer Umleitung: der Tab lädt neu und zeigt die Anmeldemaske, statt stumm mit
    beliebig alten Zahlen stehenzubleiben.

    Ein bereits offener Tab muss einmal neu geladen werden -- bis dahin läuft
    dort noch das alte Skript.

    Audit

    Der Name einer Konsolen-Mitschrift ist jetzt ein Verweis auf die Datei. Es ist
    derselbe Weg wie zuvor, nur einen Klick weit. Verlinkt wird nur, wenn die Datei
    noch existiert und der Betrachter Protokolldateien lesen darf.

    Installation

    tar xzf tesm-v2.0.3.tar.gz && cd tesm
    sudo bash deploy/install.sh --app tesm --https
    

    Bestehende Installation:

    sudo bash /opt/tesm/deploy/update.sh tesm latest --instance <name>
    
    Downloads
  • v2.0.2 a8bd5763fb

    TESM 2.0.2 Stable

    alientim released this 2026-09-03 00:17:00 +02:00 | 89 commits to main since this release

    Oberfläche

    • Echte Umlaute in allen Texten -- Seiten und Dokumentation.
    • "Änderungen" heisst jetzt Audit; die Ampel dort ist eindeutig: Info grün,
      Hinweis orange, Warnung rot. Ein erfolgreicher Heartbeat wird nicht mehr
      protokolliert, ein fehlgeschlagener schon.
    • Kopfzeile: ein Zeitgeber bis zur nächsten Prüfung -- der Knopf darin löst sie
      sofort aus -- und die Restlaufzeit der Lizenz: unter 90 Tagen grün als
      Hinweis, unter 30 orange, abgelaufen rot. Der doppelte Knopf "Jetzt prüfen"
      auf der Statusübersicht ist entfallen.
    • Millisekunden werden ab einer Sekunde als Sekunden mit zwei Nachkommastellen
      und ab einer Minute als m:ss dargestellt -- auch auf den Switch-Seiten.
    • Der Neustartstatus erscheint unmittelbar nach dem Auslösen -- bei PoE, RPC und
      SSH, manuell wie automatisch -- und ebenso in der Clientliste.
    • Ein Gerät, das nicht antwortet, bietet nur noch Einschalten (PoE) an:
      Neustart über SSH oder RPC setzt ein erreichbares Gerät voraus.
    • Dateivorschau in einem Fenster statt in einem neuen Tab, der Dateiname ist
      anklickbar, Umbenennen ist möglich, Zuordnungen sind bearbeitbar.
    • Der Knopf im Dateifeld ist im dunklen Thema wieder lesbar.
    • In der Rechtematrix ist dunkler jetzt nicht vorhanden -- und nicht mehr
      anhakbar.

    Sitzung und Freigaben

    • Eingebundene Freigaben hängen an der Sitzung: wird sie widerrufen oder läuft
      sie ab, verschwinden die Einbindungen mit ihr.
    • Neu einstellbar: automatische Abmeldung bei Leerlauf, Vorgabe 30 Minuten.
      Aktivität setzt den Zähler zurück.
    • Freigaben nehmen beide Schreibweisen an -- \\dc2022\share und
      //dc2022/share. Kurze Hostnamen werden über die AD-Domäne aufgelöst.

    DHCP

    • Option 225 ist je Auto-Reservierung setzbar, nicht mehr nur global.
    • Reservierungen entstehen nur für Bereiche, die es wirklich gibt; was
      übersprungen wurde, wird benannt.
    • Belegte Reservierungen sind gekennzeichnet, wie es Windows-DHCP tut.
    • Ablaufzeiten als Datum und Uhrzeit statt als Unix-Zeitstempel.

    Übernahme aus dem Vorgänger

    Ein Export des alten TESM lässt sich übersetzen und dann über den normalen
    Import einspielen: Clients, Switche, Zugangsdaten und DHCP. Der Bericht nennt
    ausdrücklich, was nicht übersetzt werden kann.

    Aktualisierung

    update.sh funktioniert jetzt tatsächlich: die Bezugsquelle war auf einen
    Platzhalter voreingestellt, das Repository heisst jetzt wie die Anwendung, und
    alles nach dem Tag geht unverändert an install.sh weiter -- nur so lässt sich
    eine benannte Instanz aktualisieren:

    sudo bash /opt/tesm-opus/deploy/update.sh tesm latest --instance opus
    

    Ohne --instance entstünde daneben eine zweite Installation. Ausserdem bleiben
    die Ports einer bestehenden Installation erhalten: eine benannte Instanz
    fiel bisher auf 8080/8443 zurück, auch wenn sie auf Port 80 lief -- ein Reverse
    Proxy davor hätte danach ins Leere gezeigt.

    Zwei Prüfungen darin hatten nie zugegriffen: die Suche nach install.sh im
    entpackten Paket lief eine Ebene zu flach und meldete den Fehler als
    unbrauchbaren Download, und die CRLF-Prüfung rief file auf -- ein Paket, das
    auf einem schlanken Server fehlt, worauf die Prüfung stillschweigend zustimmte.

    Installation

    tar xzf tesm-v2.0.2.tar.gz && cd tesm
    sudo bash deploy/install.sh --app tesm --https
    

    Bestehende Installation:

    sudo bash /opt/tesm/deploy/update.sh tesm
    
    Downloads
  • v2.0.1 5bb0809009

    TESM 2.0.1 Stable

    alientim released this 2026-09-02 21:21:08 +02:00 | 98 commits to main since this release

    Behebt: Dateifreigaben wurden nie eingebunden ("mount error(1): Operation not permitted"). Ursache war der eigene Mount-Namensraum des Dienstes; der Mount laeuft jetzt ueber nsenter im Namensraum des Wirts und wird von dort in den Dienst weitergegeben. Die Haertung bleibt vollstaendig erhalten.

    SHA-256: 5ca50be135799bc5fbda73b331fc91e78aeda6f24b4ef7cb363de30dbac13b0b

    Downloads
  • v2.0.0 64e25bb9ae

    TESM 2.0.0 Stable

    alientim released this 2026-09-02 18:37:39 +02:00 | 99 commits to main since this release

    Vollstaendiger Neubau. Der vorherige Stand liegt im Zweig SONNET5.

    Dieses Archiv enthaelt nur, was zum Installieren und Betreiben von TESM noetig ist -- keine Tests, keine Serverhaelfte des Lizenzprotokolls.

    sudo bash deploy/install.sh --app tesm --https
    sudo -u tesm tesm-admin create-admin
    

    SHA-256: 8f0a5d54c628b6398294d2cf4167b02eede1f9c5365de092a3b90960eed50ee0

    Downloads
  • v1.2.8 a193b9d6e9

    alientim released this 2026-08-23 22:43:26 +02:00 | 101 commits to main since this release

    Synchronisierende Aenderung fuer das neue Sub-Lizenzserver-Reporting-Feature auf dem Lizenzserver.

    Downloads
  • v1.2.7 56974a4308

    alientim released this 2026-08-23 22:06:26 +02:00 | 102 commits to main since this release

    Synchronisierende Aenderung: licensing.py bekommt ein neues role-Feld (master/license_server/customer) fuer das neue Sub-Lizenzserver-Feature auf dem Lizenzserver. TESM selbst nutzt es nicht aktiv, muss aber byte-identisch bleiben.

    Downloads
  • v1.2.6 b69d0745dd

    alientim released this 2026-08-23 20:48:33 +02:00 | 103 commits to main since this release

    Die Lizenzseite (Einstellungen -> Lizenz) hatte im Rechtebaum keinen eigenen Eintrag und lief komplett ueber settings_system.view/.edit mit. Neu: eigenes Rechtepaar settings_license.view/.edit, mit automatischer Migration (bestehende Gruppen mit settings_system.* behalten ihren bisherigen Zugriff auf die Lizenzseite).

    Downloads
  • v1.2.5 7ab6358b9f

    alientim released this 2026-08-23 17:14:57 +02:00 | 104 commits to main since this release

    Das auf dem Lizenzserver hochgeladene Anbieter-Logo wird jetzt auch tatsaechlich auf der Lizenz-Seite der Kundeninstanz angezeigt (bisher wurde es zwar in jede Lizenz eingebettet, aber nie dargestellt). Reine Anzeige-Ergaenzung -- bereits ausgestellte Lizenzen muessen nicht neu erzeugt werden, das Logo steckt schon drin.

    Installation/Update wie gewohnt per sudo ./update.sh.

    Downloads
  • v1.2.4 f02db4c6b5

    alientim released this 2026-08-23 16:00:45 +02:00 | 105 commits to main since this release

    Meldet bei jeder Lizenz-Aktivierung und jedem Heartbeat zusaetzlich den Hostnamen dieser Instanz an den Master-Lizenzserver (rein informativ, fuer dessen neue Dashboard-Kachelansicht ab tesm-license v1.2.0). Fliesst in keine Sicherheitsentscheidung ein -- weiterhin allein der Fingerprint bindet eine Lizenz an ein System. Abwaerts-/vorwaerts-kompatibel in beide Richtungen (alter Client + neuer Master, neuer Client + alter Master funktionieren beide unveraendert).

    Installation/Update wie gewohnt per sudo ./update.sh.

    Downloads