# HBL Praxis Campus – eigenes Webhosting und Firmen-iPhone

Die vollständige Schritt-für-Schritt-Anleitung `HBL_Campus_Einrichtung.pdf` liegt diesem Paket bei und ist im Campus unter **Versand einrichten** verfügbar. Sie verwendet die Original-Logos und HBL-Schrift Inter. Das Postfach für den Versand ist fest **campus@hbl-dd.com**; die Master-Anmeldung und Berichtsempfänger sind davon unabhängig.

Dieses Paket ergänzt die bestehende private Lernplattform. Es ersetzt keinen Login und enthält keine Zugangsdaten. Mitarbeitende, Lernstände, Prüfungen und Auswertungen verbleiben in der Campus-Datenbank.

## Einmalig auf dem Webhosting

Erforderlich sind HTTPS, PHP 8.1 oder neuer, die PHP-Erweiterungen OpenSSL und SQLite3, ausgehende SSL-Verbindungen zu `mail.hbl-dd.com:465` und ein beschreibbarer privater Ordner ausserhalb des öffentlich erreichbaren Webverzeichnisses.

1. Den Ordner `hbl-campus` in das öffentliche Verzeichnis des vorhandenen **PHP-Webhostings** laden. Bei einer Wix-Hauptwebsite muss eine eigene HBL-Subdomain auf dieses PHP-Hosting zeigen; der Wix-Editor kann die Dateien nicht ausführen. Die Hosting-Betreuung richtet dafür beispielsweise `campus-bridge.hbl-dd.com` ein. Die Datei wäre dann unter `https://campus-bridge.hbl-dd.com/hbl-campus/bridge.php` erreichbar. Diese Beispiel-Adresse ist noch nicht eingerichtet. Die tatsächliche kanonische HTTPS-Adresse verwenden; die Campus-Verbindung folgt keinen Weiterleitungen.
2. Diese Adresse einmal im Browser öffnen. Die Brücke legt neben dem DocumentRoot den privaten Ordner `.hbl-campus-bridge` an. Im Hosting-Dateimanager darin `setup-code.txt` öffnen. Der Inhalt ist der Einrichtungscode. Er wird nicht öffentlich angezeigt.
3. Einrichtungscode auf der Brücken-Seite eintragen. Dort das Passwort des neuen Mailkontos `campus@hbl-dd.com` hinterlegen. Absender und SMTP-Benutzer sind fest auf dieses Postfach eingestellt; SMTP-Host `mail.hbl-dd.com`, Port 465 und Zertifikatsprüfung sind ebenfalls vorgegeben. Bei einem früher eingerichteten anderen Mailkonto muss das eigene Passwort des neuen Campus-Postfachs neu eingegeben werden.
4. Den angezeigten **Campus-Verbindungsschlüssel** im Master-Bereich des Campus unter **Versand einrichten** zusammen mit der tatsächlichen Brücken-URL speichern. Der Campus prüft zuerst die signierte Verbindung. Der Schlüssel wird im Campus verschlüsselt gespeichert und nicht zurückgegeben.
5. Den einmal angezeigten **iPhone-Schlüssel** direkt für den Kurzbefehl übernehmen. Dieser Schlüssel erlaubt nur das Abholen und Bestätigen bereitgestellter mobiler Nachrichten. Er wird im Campus weder benötigt noch gespeichert. Ein neuer iPhone-Schlüssel ersetzt den vorherigen.
6. Im Campus die gewünschten Empfänger der Testergebnisse und Monatsübersichten prüfen und eine Test-E-Mail an die Praxisleitung anfordern. Eine erfolgreiche SMTP-Annahme bestätigt keine Zustellung im Posteingang.

Falls der Standard-Datenordner nicht schreibbar ist, setzt die Hosting-Betreuung `HBL_BRIDGE_PRIVATE_DIR` auf einen absoluten, beschreibbaren Pfad **ausserhalb** des DocumentRoot. PHP muss dort private Dateien mit 0600 und das Verzeichnis mit 0700 anlegen können. Bei einem eigenen vertrauenswürdigen HTTPS-Reverse-Proxy kann die Betreuung `HBL_TRUST_PROXY=1` setzen; ansonsten erfolgt die HTTPS-Prüfung ausschliesslich anhand des Webservers.

## Einmalig auf dem Firmen-iPhone

Die vollständige Anleitung steht im Master-Bereich **Versand einrichten → iPhone-Kurzbefehl einrichten**. Es wird bewusst keine unsignierte `.shortcut`-Datei als angeblich installierbarer Kurzbefehl ausgegeben. Ohne Apple-Gerät lässt sich hier kein von Apple signierter Import herstellen.

Der Kurzbefehl wiederholt höchstens 20-mal:

1. POST an die eigene Brücken-URL. JSON `{"action":"iphone-pull"}`. Header `Content-Type: application/json` und `X-HBL-iPhone-Key: EIGENER_IPHONE_SCHLUESSEL`.
2. Wenn `hasMessage` falsch ist: Kurzbefehl beenden.
3. `id`, `receipt`, `recipient`, `text` aus der Antwort übernehmen.
4. Mit Apples Aktion **Nachricht senden** genau eine Nachricht mit `text` an `recipient` übergeben. **Beim Ausführen anzeigen** deaktivieren. Bei Dual-SIM die Firmenleitung verwenden. Die Nachrichten-App bestimmt anhand der Geräteeinstellungen SMS oder iMessage.
5. Erst danach POST an dieselbe URL mit denselben Headern und JSON `{"action":"iphone-receipt","id":"VORGANG_ID","receipt":"RUECKMELDUNG_AUS_ANTWORT"}`.

Den iPhone-Schlüssel in eine eigene Textvariable setzen, nicht in die URL. Keine feste Empfängergruppe verwenden. Für mehr als 20 Personen kann die Wiederholungszahl erhöht werden.

Zuerst im Campus **eine Testnachricht an die eigene Nummer bereitstellen**, den Kurzbefehl manuell ausführen und die iOS-Zugriffe freigeben. Danach das Protokoll im Campus aktualisieren. Die erste Ausführung und die Wahl der SIM-Leitung müssen auf dem konkreten iPhone geprüft werden.

Für den Regelbetrieb eine persönliche Automation **Montag 10:10 Uhr** einrichten und diesen Kurzbefehl ohne Rückfrage ausführen lassen. Die Bereitstellung im Campus erfolgt montags ab 10 Uhr **Europe/Zurich**. Auf die Gerätezeitzone achten, insbesondere auf Reisen. Das iPhone benötigt Strom, Internet für die Abholung und Mobilfunk bzw. die für Nachrichten erforderliche Verbindung. Der Tarif des Firmenhandys gilt weiterhin.

## Tatsächlicher Versandstatus und Ausfälle

- E-Mail: Erst die bestätigte SMTP-DATA-Annahme wird als angenommen protokolliert. Fehlende oder unklare Bestätigung wird nicht als Erfolg dargestellt.
- iPhone: Bereitgestellt, abgeholt und vom Kurzbefehl als übergeben gemeldet sind getrennte Zustände. Eine Kurzbefehls-Rückmeldung bestätigt keine Mobilfunkzustellung und keinen Empfang oder Lesestatus.
- Eine noch nicht abgeholte SMS-Bereitstellung läuft nach 30 Minuten ab. Der Campus zeigt das verpasste Zeitfenster an. Ein bewusster erneuter Wochenlauf kann weiterhin offene, eindeutig nicht abgeholte Vorgänge neu bereitstellen.
- Ein bereits abgeholter Vorgang wird nie automatisch erneut bereitgestellt. Fehlt die Rückmeldung, wird er nach 15 Minuten als unklar geführt. Auch der manuelle Wochenlauf sendet einen unklaren Vorgang nicht erneut.
- Vor einem Wochenlauf und nach relevanten Änderungen an Lernständen oder Mitarbeiterkonten werden die berechtigten Personen abgeglichen. Vollständig abgeschlossene oder deaktivierte Personen werden aus der noch nicht abgeholten Warteschlange genommen. Bereits an das iPhone übergebene Nachrichten können nicht zurückgerufen werden. Bei ausgefallenem Abgleich bleibt ein Fehler sichtbar; die 30-Minuten-Gültigkeit begrenzt die Bereitstellung.
- Ohne eingerichtete Brücke, Mailkonto und iPhone werden keine echten Nachrichten verschickt. Die Installation und das Speichern der Verbindung lösen keinen Teamversand aus.

## Betrieb und Schutz

Regelmässige verschlüsselte Sicherungen des privaten Brücken-Verzeichnisses erstellen; eine Sicherung der Konfiguration benötigt auch `storage.key`. Die SQLite-Datei enthält nur Versandzustände, Empfänger und die für die Abholung notwendigen Texte, keine Prüfungsantworten. Diese Dateien niemals in das öffentliche Webverzeichnis kopieren. Auch der private Ordner darf nicht separat vom Webserver ausgeliefert werden.

Der Campus sendet ausschliesslich HTTPS-Anfragen mit zeitlich begrenzter HMAC-Signatur und Replay-Schutz an die eigene HBL-Domain. Das iPhone verwendet einen separaten, eingeschränkten Schlüssel. Der Sites-Zugang und sein Service-Bearer werden nicht an die Brücke oder das iPhone weitergegeben. SMTP-Zertifikatsprüfungen bleiben aktiv. Unklare Mailannahmen werden wegen möglicher Doppelzustellung nicht wiederholt.

Nach einem Domain-, Hosting-, Mailpasswort- oder Gerätewechsel die Verbindung erneut auf dem echten System testen. Das Paket ist vorbereitet und lokal geprüft; das konkrete Webhosting und iPhone benötigen noch Installation, Freigabe und einen realen Verbindungstest.
