feat(nextcloud-files): Nextcloud-Kennung auf der Anmeldeseite, Anleitungen und Changelog
- Anmeldebildschirm zeigt Name, Logo und Themenfarbe der Nextcloud (GET server, server/logo) - Kennung wird 10 Minuten zwischengespeichert, Adresswechsel leert sie, Logo nur nach Bytes erkannt und mit CSP-Sandbox ausgeliefert - Anmeldekarte neu gestaltet (Kennungskopf, Hinweis zum Passwort am Fuss), Kontoleiste mit kleiner Kachel - Fokusfang in leeren Ordnern, damit die Rücktaste dort funktioniert - Changelog, Anwender-, Administrations- und Betriebshandbuch (Brute-Force-Ausnahme, Proxy-Grenzen) - e2e-Skripte wiederholbar gemacht Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -356,6 +356,23 @@ Das Modul „Nextcloud-Status“ (Gruppe Infrastruktur) aktivieren Sie wie jedes
|
||||
- **Benachrichtigungen:** Jeder Benutzer mit Zugriff auf das Modul kann über die Glocke auf einer Kachel für sich Benachrichtigungen einschalten. Tessera schickt dann eine E-Mail und, solange Tessera geöffnet ist, eine Meldung auf dem Bildschirm, wenn die Cloud rot wird und wenn sie wieder in Ordnung ist (eine Nachricht je Änderung). Für die E-Mails muss der Mailversand eingerichtet sein (Kapitel 6) und der Empfänger eine Adresse im Profil haben. Ob das Konto aktiv ist und das Modul noch genutzt werden darf, prüft Tessera erst beim Senden; sonst wird nichts verschickt. Scheitert der Versand, versucht Tessera es bis zu dreimal. Ändern Sie die Adresse einer roten Cloud und die neue Adresse antwortet in Ordnung, geht an die Abonnenten die Nachricht „wieder in Ordnung“.
|
||||
- **Logo:** Entweder ein hochgeladenes Bild (PNG, JPEG, GIF oder WebP, höchstens 1 MB; SVG wird bewusst nicht angenommen) oder die Adresse eines Bildes. Eine https-Adresse lädt der Browser des Betrachters direkt – der Server ruft sie nie ab. Eine http-Adresse holt der Tessera-Server beim Speichern genau einmal ab, und zwar nur aus dem Internet: interne und private Adressen (auch über Weiterleitungen) lehnt er ab, bevor überhaupt eine Anfrage gesendet wird; der Abruf hat ein Zeitlimit, nimmt höchstens 1 MB und nur PNG, JPEG, GIF oder WebP an (geprüft an den Bytes, nicht am Dateityp des Servers). Das Ergebnis wird wie ein Upload gespeichert, die Adresse selbst nicht. Beides zugleich gibt es nicht: ein Upload ersetzt die Adresse und umgekehrt.
|
||||
|
||||
### Dateien: Nextcloud anbinden
|
||||
|
||||
Das Modul „Dateien“ (Gruppe Infrastruktur) aktivieren Sie wie jedes Modul im Marktplatz; wer es nutzen soll, bekommt die Freigabe „Benutzen“. **Die Adresse der Nextcloud eintragen und prüfen** dürfen Administratoren und Benutzer mit der Freigabestufe „Verwalten“ (Reiter „Einstellungen“ im Modul); vergeben Sie diese Stufe nur an Personen, denen Sie das zutrauen, denn die Adresse ruft der Tessera-Server selbst auf. Wer nur „Benutzen“ hat, sieht den Reiter nicht.
|
||||
|
||||
- **Adresse:** Tragen Sie die Adresse so ein, wie Ihre Benutzer die Nextcloud im Browser aufrufen, möglichst mit `https://` (zum Beispiel `https://cloud.ihre-firma.de`). Es gibt genau eine Nextcloud für die ganze Installation. Interne Adressen sind erlaubt. „Verbindung prüfen“ ruft nur die öffentliche Statusseite ab und nennt Version oder den Grund, warum es nicht klappt. Tessera folgt nie einer Weiterleitung: Leitet die Adresse um (zum Beispiel von `http` auf `https`), tragen Sie die endgültige Adresse ein.
|
||||
- **Vertrauenswürdige Domains:** Meldet die Prüfung „Nextcloud lehnt diese Adresse ab“, muss der Rechnername der Adresse in der Nextcloud unter `trusted_domains` stehen (`config.php`, oder `occ config:system:set trusted_domains 1 --value=<Rechnername>`).
|
||||
- **Zugang der Benutzer:** Jeder Benutzer meldet sich mit seinem eigenen Nextcloud-Konto an. Tessera speichert nur ein von Nextcloud ausgestelltes App-Passwort (verschlüsselt), nie das Passwort. Konten mit Zwei-Faktor-Anmeldung melden sich über den Browser an; das Passwortfenster genügt für sie nicht.
|
||||
- **Ausnahme für den Tessera-Server in der Nextcloud (wichtig):** Nextcloud sperrt nach mehreren fehlgeschlagenen Anmeldungen die Absender-Adresse (Brute-Force-Schutz). Alle Tessera-Benutzer kommen von **derselben Adresse**, nämlich der des Tessera-Servers; eine Sperre träfe also alle gleichzeitig. Tessera begrenzt Fehlversuche deshalb selbst (höchstens drei je Benutzer in 15 Minuten und acht für den ganzen Server in 30 Minuten) und **hält alle Anfragen an die Nextcloud für bis zu 15 Minuten an**, sobald Nextcloud „zu viele Anfragen“ meldet; Benutzer sehen dann eine Wartezeit. Tragen Sie die Adresse des Tessera-Servers in die Ausnahmeliste der Nextcloud ein, dann kommt es dazu gar nicht erst. Auf dem Nextcloud-Server:
|
||||
|
||||
`occ config:app:set bruteForce whitelist_0 --value=<IP-Adresse des Tessera-Servers>`
|
||||
|
||||
Nehmen Sie bei weiteren Adressen `whitelist_1`, `whitelist_2` und so weiter; auch ein Netzbereich wie `192.168.13.0/24` ist möglich. Von welcher Adresse die Anfragen in der Nextcloud ankommen, sehen Sie im Zugriffsprotokoll des Webservers der Nextcloud; läuft die Nextcloud hinter einem Proxy, ist das oft die Adresse des Proxys. Eine bereits bestehende Sperre heben Sie mit `occ security:bruteforce:reset <IP-Adresse>` auf.
|
||||
- **Adresse ändern:** Ändern Sie die Adresse, während Benutzer verbunden sind, fragt Tessera ausdrücklich nach. Nach dem Wechsel gelten alle bestehenden Verbindungen als abgelaufen, jeder meldet sich neu an (die alten App-Passwörter gelten nur für die alte Nextcloud und werden nie an die neue geschickt). Offene Browser-Anmeldungen werden verworfen.
|
||||
- **Benutzer löschen:** Löschen Sie einen Tessera-Benutzer, bleibt dessen App-Passwort in der Geräteliste seines Nextcloud-Kontos stehen. Entfernen Sie es dort (Einstellungen → Sicherheit), oder lassen Sie es vorher über „Abmelden“ in Tessera widerrufen. Ohne Tessera-Konto kann niemand den Zugang nutzen, aber er bleibt in Nextcloud eingetragen.
|
||||
- **Kein Dashboard-Widget:** Das Modul bringt keine Dashboard-Kachel mit.
|
||||
- **Betrieb:** Netzwerkfreigaben, eigene Zertifizierungsstellen, die Größenbegrenzung des Proxys für das Hochladen und Fehlerbilder stehen im Betriebshandbuch, Abschnitt „Dateien (Nextcloud)“.
|
||||
|
||||
### Domains: AutoDNS anbinden
|
||||
|
||||
Das Modul „Domains“ (Gruppe Domains) aktivieren Sie wie jedes Modul im Marktplatz; wer es nutzen soll, bekommt die Freigabe „Benutzen“. **Die Anbindung einrichten, Kunden und Kontakte anlegen und Domains registrieren** dürfen Administratoren und Benutzer mit der Freigabestufe „Verwalten“ – vergeben Sie diese Stufe nur an Personen, denen Sie Bestellungen auf Ihre Kosten zutrauen, denn eine Registrierung im Live-System ist verbindlich und kostenpflichtig.
|
||||
|
||||
@@ -18,6 +18,7 @@ Diese Anleitung richtet sich an alle Kolleginnen und Kollegen, die Tessera im Ar
|
||||
- [Domains](#domains)
|
||||
- [Proxmox](#proxmox)
|
||||
- [Nextcloud-Status](#nextcloud-status)
|
||||
- [Dateien (Nextcloud)](#dateien-nextcloud)
|
||||
- [Kantinenabrechnung](#kantinenabrechnung)
|
||||
- [Handelsware](#handelsware)
|
||||
7. [Persönliche Einstellungen](#persönliche-einstellungen)
|
||||
@@ -241,6 +242,47 @@ Pro Änderung kommt genau eine Nachricht; solange die Störung anhält, wiederho
|
||||
|
||||
**Die Dashboard-Kachel „Nextcloud-Status“:** Wer das Modul nutzen darf, kann sich eine Übersicht auch auf das Dashboard legen („Widget hinzufügen“). Sie zeigt drei Zähler (Grün, Gelb, Rot, bei Bedarf „Ohne Bewertung“) und darunter die roten und gelben Clouds mit Kundenname und Grund; sind alle Clouds in Ordnung, steht dort eine kurze Bestätigung. Ein Klick öffnet das Modul. Die Kachel liest nur den gespeicherten Stand und löst selbst keine Prüfung aus.
|
||||
|
||||
### Dateien (Nextcloud)
|
||||
|
||||
Das Modul zeigt Ihre Dateien aus der Firmen-Nextcloud direkt in Tessera: ansehen, hochladen, herunterladen, ordnen. Es steht in der Seitenleiste in der Gruppe **Infrastruktur**. Jeder arbeitet nur in seinem eigenen Nextcloud-Konto; niemand sieht die Dateien eines Kollegen. Die Adresse der Nextcloud stellt ein Administrator (oder jemand mit der Freigabe „Verwalten“) einmal im Reiter **Einstellungen** ein. Steht dort noch nichts, sagt Ihnen die Seite das.
|
||||
|
||||
**Anmelden:** Beim ersten Öffnen sehen Sie den Anmeldebildschirm mit Name, Logo und Farbe Ihrer Nextcloud, damit Sie wissen, wo Sie sich anmelden. Es gibt zwei Wege:
|
||||
|
||||
- **Mit Benutzername und Passwort:** Tragen Sie Ihren Nextcloud-Benutzernamen (oder Ihre E-Mail-Adresse) und Ihr Nextcloud-Passwort ein und klicken Sie auf „Anmelden“.
|
||||
- **Im Browser anmelden:** für Konten mit Zwei-Faktor-Anmeldung. Klicken Sie auf „Im Browser anmelden“, dann auf „Anmeldung bei Nextcloud öffnen“. Es öffnet sich die Nextcloud in einem neuen Tab. Melden Sie sich dort an und bestätigen Sie mit „Zugriff gewähren“. Tessera wartet so lange („Warten auf Bestätigung in Nextcloud …“) und zeigt danach Ihre Dateien. „Abbrechen“ bricht den Vorgang ab. Hat Ihr Konto Zwei-Faktor-Anmeldung und Sie versuchen es mit dem Passwort, weist Tessera Sie darauf hin und macht den Weg über den Browser zum Hauptknopf.
|
||||
|
||||
**Was Tessera speichert:** Ihr Passwort speichert Tessera nicht. Es schickt es einmal an Nextcloud und bekommt einen eigenen Zugang für Tessera zurück („App-Passwort“); nur dieser wird verschlüsselt aufbewahrt. In Ihren Nextcloud-Einstellungen unter „Sicherheit“ steht er als Gerät und lässt sich dort jederzeit widerrufen. Wenn Sie in Tessera auf **Abmelden** klicken (oben rechts, mit Rückfrage), entfernt Tessera den Zugang auch in Nextcloud. Ihre Dateien bleiben dabei unverändert.
|
||||
|
||||
**Dateien ansehen:** Oben zeigt eine Pfadleiste, wo Sie sind; ein Klick auf einen Teil des Pfads springt dorthin. Über „Liste“ und „Raster“ wählen Sie die Ansicht (Tessera merkt sich Ihre Wahl), über „Sortieren nach“ die Reihenfolge nach Name, Größe oder Änderungsdatum. Jede Datei hat eine Kachel in der Farbe ihres Typs (zum Beispiel PDF, XLSX, ZIP); bei Bildern erscheint das Vorschaubild. Ein Doppelklick auf einen Ordner öffnet ihn. Ganz unten steht der belegte Speicherplatz. Ist Ihr Speicher in Nextcloud unbegrenzt, steht dort nur, wie viel belegt ist.
|
||||
|
||||
**Arbeiten mit Dateien:** Über „Neuer Ordner“ legen Sie einen Ordner an. Über das Menü an jeder Zeile (oder mit der rechten Maustaste) finden Sie Öffnen, Herunterladen, Umbenennen, Verschieben, „In Nextcloud öffnen“ und Löschen. Beim Verschieben wählen Sie den Zielordner in einer Ordnerauswahl. **Löschen** verschiebt in den Papierkorb Ihrer Nextcloud, nach einer Rückfrage; dort holen Sie die Dateien bei Bedarf wieder heraus. Alles gilt auch für mehrere Einträge: Setzen Sie Häkchen oder halten Sie Strg (Umschalt für einen Bereich) gedrückt; eine Leiste oben nennt dann die Anzahl und bietet Herunterladen, Verschieben und Löschen für die ganze Auswahl.
|
||||
|
||||
**Hochladen:** Ziehen Sie Dateien oder ganze Ordner aus dem Dateimanager auf die Seite. Eine gestreifte Fläche nennt das Ziel („In „…“ ablegen“); legen Sie die Dateien auf eine Ordnerzeile, landen sie in diesem Ordner. Alternativ klicken Sie auf „Hochladen“ und wählen Dateien aus. Große Dateien gehen automatisch in Stücken hoch. Am unteren Rand erscheint die **Übertragungsleiste**: Jede Datei hat einen Fortschrittsbalken, „Abbrechen“ stoppt sie, „Erneut versuchen“ wiederholt eine fehlgeschlagene, „Erledigte entfernen“ räumt auf. Die Leiste lässt sich ein- und ausklappen.
|
||||
|
||||
**Gibt es den Namen schon?** Tessera überschreibt nie stillschweigend. Es fragt in der Übertragungsleiste: „Ersetzen“ (die vorhandene Datei wird durch die neue ersetzt), „Beide behalten“ (die neue bekommt einen eigenen Namen) oder „Überspringen“.
|
||||
|
||||
**Herunterladen:** Eine einzelne Datei lädt Ihr Browser direkt herunter. Ordner und Mehrfachauswahl kommen als ZIP-Datei.
|
||||
|
||||
**Tastatur:**
|
||||
|
||||
| Taste | Wirkung |
|
||||
|---|---|
|
||||
| Pfeiltasten | Eintrag wählen (mit Umschalt: Auswahl erweitern) |
|
||||
| Enter | Ordner oder Datei öffnen |
|
||||
| Rücktaste oder Alt + Pfeil nach oben | Einen Ordner nach oben |
|
||||
| Leertaste | Eintrag zur Auswahl hinzufügen oder entfernen |
|
||||
| Strg + A | Alles auswählen |
|
||||
| F2 | Umbenennen |
|
||||
| Entf | Löschen (mit Rückfrage) |
|
||||
| Esc | Auswahl aufheben |
|
||||
| Kontextmenütaste oder Umschalt + F10 | Menü des Eintrags |
|
||||
|
||||
**„Die Verbindung ist abgelaufen“:** Das passiert, wenn der Zugang in Nextcloud widerrufen wurde, Nextcloud ihn nicht mehr annimmt oder der Administrator die Adresse der Nextcloud geändert hat. Tessera zeigt dann wieder den Anmeldebildschirm mit einem Hinweis; melden Sie sich einfach neu an.
|
||||
|
||||
**„Nextcloud sperrt Anfragen vom Tessera-Server“:** Nextcloud schützt sich gegen Ausprobieren von Passwörtern und sperrt dafür eine Absender-Adresse zeitweise. Weil alle Tessera-Benutzer von derselben Adresse kommen, schickt Tessera dann bis zum Ende der Sperre (meist höchstens 15 Minuten) keine Anfragen mehr und nennt die Wartezeit. Tippen Sie das Passwort in der Zwischenzeit nicht wiederholt ein; warten Sie die Zeit ab. Bleibt die Meldung häufiger, sagen Sie Ihrem Administrator Bescheid: Er kann die Adresse des Tessera-Servers in der Nextcloud von dieser Sperre ausnehmen.
|
||||
|
||||
**Wenn etwas nicht klappt:** „Nextcloud ist gerade nicht erreichbar“ heißt, dass die Nextcloud nicht antwortet; prüfen Sie dort, ob sie läuft, und klicken Sie auf „Erneut versuchen“. Fehlt der Speicherplatz, nennt die Meldung beim Hochladen, wie viel noch frei ist.
|
||||
|
||||
### Kantinenabrechnung
|
||||
|
||||
Das Modul bereitet die Kantinenabrechnung für die Gehaltsabrechnung vor. Es steht in der Seitenleiste in der Gruppe **Finanzbuchhaltung**. Sie laden die CSV-Datei der Kantine hoch, Tessera prüft sie und erstellt daraus die Lohndatei für DATEV.
|
||||
|
||||
@@ -183,6 +183,18 @@ Images, die Compose-Datei selbst muss bei Bedarf separat auf dem Server aktualis
|
||||
werden. Vor grösseren Änderungen an der Compose-Struktur die auf dem Server
|
||||
tatsächlich liegende Datei prüfen, nicht blind von der Repo-Version ausgehen.
|
||||
|
||||
### Dateien (Nextcloud)
|
||||
|
||||
Das Modul „Dateien“ spricht aus dem `api`-Container mit der Nextcloud der Installation (Adresse im Modul unter „Einstellungen“). Dafür gilt:
|
||||
|
||||
- **Ausgehender Zugriff:** Der `api`-Container braucht Netzwerkzugriff auf die eingetragene Nextcloud (http oder https, auch interne Adressen). Tessera ruft nur feste Pfade dieser einen Adresse auf, folgt keiner Weiterleitung und schickt nie Cookies.
|
||||
- **Zertifikate:** Das Zertifikat der Nextcloud wird immer geprüft, es gibt keinen Schalter, das abzustellen. Nutzt die Nextcloud ein Zertifikat einer eigenen (internen) Zertifizierungsstelle, legen Sie deren Zertifikat in den `api`-Container und setzen Sie `NODE_EXTRA_CA_CERTS=/pfad/zur/ca.pem` in dessen Umgebung (Compose-Datei des Servers, danach `up -d --force-recreate api`). Ohne das meldet „Verbindung prüfen“ im Modul, das Zertifikat ließe sich nicht prüfen.
|
||||
- **Nginx Proxy Manager (Tessera-Adresse):** Beim Hochladen schickt der Browser große Dateien in Stücken von 8 MiB durch `/api-proxy`. Der Proxy vor Tessera muss das durchlassen: `client_max_body_size` mindestens `10m` (besser `64m`) und Lese- und Sendezeitlimits (`proxy_read_timeout`, `proxy_send_timeout`) von mindestens 120 Sekunden. Bei der Nginx-Voreinstellung von 1 MiB bricht jeder größere Upload schon beim ersten Stück ab.
|
||||
- **Zusammenbau großer Dateien:** Nextcloud setzt die Stücke am Ende zu einer Datei zusammen. Dauert das länger als etwa 20 Sekunden, antwortet Tessera sofort und die Oberfläche fragt den Fortschritt ab; die Verbindung bleibt also nie lange offen. Unvollständige Uploads (Stücke ohne Abschluss, etwa nach einem Seitenwechsel) räumt Nextcloud nach 24 Stunden selbst auf.
|
||||
- **Zustand im Arbeitsspeicher:** Offene Browser-Anmeldungen (Zwei-Faktor), laufende Zusammenbauten, die Aufrufsperre gegen die Brute-Force-Sperre der Nextcloud und die zwischengespeicherte Kennung der Nextcloud (10 Minuten) liegen im Prozess des `api`-Containers. Ein Neustart verwirft sie: Wer gerade eine Browser-Anmeldung offen hatte, startet sie neu; angemeldete Benutzer bleiben angemeldet (ihre Zugänge liegen verschlüsselt in der Datenbank).
|
||||
- **Brute-Force-Ausnahme in der Nextcloud:** Tragen Sie die Adresse des Tessera-Servers dort in die Ausnahmeliste ein (Administrationshandbuch, Abschnitt „Dateien: Nextcloud anbinden“). Sonst kann eine Reihe falscher Anmeldungen die Nextcloud für alle Benutzer gleichzeitig sperren.
|
||||
- **Verschlüsselung:** Die gespeicherten App-Passwörter sind mit `TESSERA_ENCRYPTION_KEY` verschlüsselt (Kapitel 2). Ein anderer Schlüssel macht sie unlesbar; die Benutzer müssen sich dann neu verbinden.
|
||||
|
||||
## 4. Neue Fassung einspielen
|
||||
|
||||
Das ist der wichtigste Ablauf im Tagesgeschäft. Zwei Befehle:
|
||||
@@ -747,3 +759,4 @@ Für die Desktop-Auslieferung ist keine neue Pflichtvariable nötig.
|
||||
| Client meldet „Update fehlgeschlagen" | Download über den Proxy abgebrochen (Größengrenze/Zeitlimit, siehe zweite Zeile dieser Tabelle), oder die Signatur passt nicht – die Pakete stammen nicht aus dem CI-Bau mit dem aktuellen Schlüssel | Kontrollzeile `/api-proxy/desktop/update` (Abschnitt „Wo die Pakete im Abbild liegen"), den Pipeline-Lauf und die Proxy-Einstellungen prüfen. Der Anwender kommt über den Browser-Weg weiter. |
|
||||
| `/api-proxy/desktop/update` antwortet dauerhaft `204`, obwohl Pakete da sind | Manifest ohne `signature`/`updateVersion`: Pakete aus einem Bau vor der Update-Funktion oder mit `--no-sign` | Eine Änderung unter `apps/desktop/` pushen bzw. den Tag neu bauen lassen; im CI prüfen, dass die Secrets `TAURI_SIGNING_PRIVATE_KEY`/`_PASSWORD` gesetzt sind (Abschnitt „Updates in der App und der Signierschlüssel"). |
|
||||
| Eine Fehlermeldung aus der Desktop-App nennt als Herkunft „Desktop-App (unbekannt)“ ohne Version, Betreff-Kürzel `[Desktop]` | Der Client ist älter als diese Fassung: er meldet dem Server beim Start nur `desktop=1`, nicht Version, Stand und Betriebssystem (Parameter `dv`, `dc`, `dos`, aus denen `web` das Cookie `tessera_desktop_client` bildet) | Kein Fehler, die Meldung ist trotzdem als Desktop-App erkennbar. Client über „Auf Version … aktualisieren“ im Infobereich oder den Browser-Installer aktualisieren; danach stehen Betriebssystem, Version und Stand in der Meldung. |
|
||||
| Beim Hochladen in „Dateien“ bricht jede größere Datei beim ersten 8-MB-Stück ab (Fehler „Die Verbindung wurde unterbrochen“, im Proxy-Protokoll `413`) | Der Proxy vor Tessera (Nginx Proxy Manager) lässt keine Anfragen über seiner Größengrenze durch (`client_max_body_size`), oder sein Zeitlimit ist zu kurz | Für die Tessera-Adresse `client_max_body_size` auf mindestens `10m` und die Lese-/Sendezeitlimits auf mindestens 120 Sekunden stellen (Kapitel 3, Abschnitt „Dateien (Nextcloud)“). |
|
||||
|
||||
Reference in New Issue
Block a user