# SCREENUS 26.7 – Kundeninstallation und Pflege

Aktives Theme: **screenus-26.7**. Paket: **os-theme-screenus**, Version **26.7.1**.
Öffentliches Repository: https://packages.screenus.de/opnsense/26.7

## Einmalige Kundeninstallation

Die Firewall muss OPNsense 26.7 verwenden. Erst auf einer Testfirewall prüfen. Der Bootstrap installiert nur das Theme und den SCREENUS-Paketkatalog; er schaltet weder Firewall-Regeln noch Dienste um.

1. Den mitgelieferten `bootstrap-26.7.sh` über einen geprüften Verwaltungszugang nach `/tmp/` der Kundenfirewall übertragen und als root ausführen:

```sh
sh /tmp/bootstrap-26.7.sh
```

Alternativ kann die Datei über HTTPS heruntergeladen werden. Vor Ausführung mit der freigegebenen lokalen Kopie bzw. deren separat übermittelter SHA256-Prüfsumme vergleichen; nicht ungeprüft direkt in eine Shell leiten.

```sh
fetch -o /tmp/bootstrap-26.7.sh https://packages.screenus.de/opnsense/bootstrap-26.7.sh
```

2. Unter System → Einstellungen → Allgemein `screenus-26.7` auswählen. Für einen reinen Theme-Wechsel ohne die weiteren Aktionen dieser allgemeinen Seite:

```sh
php /usr/local/share/screenus-theme/select-theme.php screenus-26.7 opnsense
```

Der letzte Parameter muss dem tatsächlichen bisherigen Theme-Namen entsprechen. Bei Abweichung bricht der Helfer ab. Vor jeder Änderung wird ein geschützter Rücksetzpunkt erstellt, anschließend wird die unveränderte übrige Konfiguration geprüft.

## Updates beim Kunden

Der zusätzliche Paketkatalog bleibt eingerichtet. Das Theme erscheint als Paket der Quelle SCREENUS. Gezielt nur dieses Paket aktualisieren:

```sh
pkg update -r SCREENUS
pkg upgrade -r SCREENUS os-theme-screenus
pkg check -s os-theme-screenus
```

Der Name `screenus-26.7` bleibt bei Updates gleich; eine erneute Theme-Auswahl ist nicht notwendig. Danach Browser mit Strg+F5 neu laden. Es gibt bewusst keinen ungeprüften zeitgesteuerten Installationsjob und keinen automatischen Firewall-Neustart. Installation auf weiteren Kundenfirewalls erfolgt erst im jeweiligen freigegebenen Wartungsablauf.

## Neue Version veröffentlichen (SCREENUS)

1. Nur die Dateien in `source/screenus-26.7` ändern. Keine Dark-Varianten ergänzen.
2. Paketversion erhöhen, z. B. `node build-26.7.cjs 26.7.2`. Bereits veröffentlichte Versionsnummern nie mit anderem Inhalt überschreiben.
3. Die erzeugten Verzeichnisse `release-26.7/stage`, `metadata` und `plist` auf einen FreeBSD/OPNsense-26.7-Buildhost übertragen. Dort mit `pkg create -m metadata -r stage -p plist -o dist` bauen.
4. Paket zunächst testen: Installation, Darstellung, Theme-Wechsel/Rückweg und `pkg check -s`. Nur CSS/JS/Bilder/Fonts und Metadaten gehören hinein; keine Kundenkonfigurationen oder Geheimnisse.
5. Im Repository-Staging alte und neue Pakete unter `26.7/All` vorhalten und den Katalog neu signieren. Der aktuelle Signaturschlüssel liegt geschützt auf der SCREENUS-Firewall unter `/root/screenus-package-signing/repository.key`, nicht auf dem Webserver. Zugriff ausschließlich über den geprüften administrativen SSH-Zugang. Den Schlüssel niemals in dieses Verzeichnis, ein Kundenpaket oder auf den öffentlichen Webserver kopieren.

```sh
pkg repo /PFAD/ZUM/STAGING/26.7 rsa:/root/screenus-package-signing/repository.key
```

6. Öffentlichen Schlüssel, signierte Katalogdateien und Pakete übertragen. Bei Veröffentlichungen zuerst die neuen Paketdateien, dann den signierten Katalog austauschen. Alte Pakete für noch zwischengespeicherte Kataloge vorhalten. Neue Version auf einer Pilotfirewall mittels SCREENUS-Repository testen, erst danach breit ausrollen.

Für eine neue OPNsense-Hauptreihe wird ein eigener geprüfter Zweig benötigt. Dieses Paket verweigert die Installation außerhalb von 26.7. Vor einem OPNsense-Hauptupgrade auf das Hersteller-Theme wechseln und den SCREENUS-Katalog bis zur passenden Freigabe deaktivieren.

## Sicherheit / Rückweg

- HTTPS mit automatisch erneuertem Zertifikat auf wh.screenus.de.
- Signierter Paketkatalog; öffentlicher Schlüssel ist im Bootstrap zusätzlich per SHA256 festgelegt:
  `2d3934e6c1f46f42bdbe8b120a71a162c8d6091ef8852fcafd08d740df19d8fe`.
- OPNsense-Repository bleibt unverändert; SCREENUS enthält nur das Theme-Paket.
- Vor Deinstallation auf `opnsense` wechseln, danach `pkg delete os-theme-screenus`.
- Entfernen der Repository-Anbindung separat: nur `/usr/local/etc/pkg/repos/SCREENUS.conf` und `/usr/local/etc/pkg/keys/SCREENUS.pub` entfernen, keine Herstellerdateien.
- Ein eigener privater Signing-Key-Backup-/Recovery-Prozess ist erforderlich; vorhandene Firewall-Backups dürfen nicht ungeprüft als Sicherung dieses außerhalb von config.xml liegenden Schlüssels angenommen werden.

## Verifiziert am 21.09.2026

Live auf SCREENUS OPNsense 26.7.4_1: Theme-Namenswechsel, Entfernung der 20 alten SCREENUS-Auswahlverzeichnisse, Paketintegrität, HTTPS-Katalogabruf mit Signaturprüfung und vollständige Paket-Neuinstallation aus dem Repository. Theme-Auswahl blieb erhalten. Keine Netzwerk-/VPN-Konfigurationsänderung; relevante Dienst-Prozess-IDs blieben während dieses Arbeitsabschnitts unverändert.

Alte SCREENUS-Themes sind auf der Firewall aus dem Webverzeichnis entfernt und im geschützten Archiv `/root/screenus-obsolete-themes-20260921-101513` rückholbar. Die drei Herstellerverzeichnisse opnsense, opnsense-auto und opnsense-dark bleiben Bestandteil des OPNsense-Corepakets.
