# Pithyx: Administration > Eine Box betreiben: Benutzer und Gruppen, Rechte, Speicher, Freigaben, Dateidienste, Netzwerk, Apps und Backups. ## Speicher und Pools > Festplatten, ZFS-Pools, Datasets, einen Pool importieren und erweitern, und warum manche Platten abgelehnt werden. Source: https://pithyx.org/de/docs/admin/storage/ Markdown: https://pithyx.org/de/docs/admin/storage.md Die App Speicher (nur für Administratoren) legt die ZFS-Pools an, die alle Daten der Box enthalten, und verwaltet sie. Pithyx nutzt die Systemplatte nie für einen Pool, zeigt für jede Platte, ob sie verwendet werden darf, und verlangt die Eingabe der Seriennummer, bevor eine Platte mit Daten gelöscht wird. Änderungen laufen im Hintergrund, und **Befehle anzeigen** listet die genauen Befehle auf, bevor etwas ausgeführt wird. ### Bewertung der Platten ![Speicher, Platten, mit der Spalte Für einen neuen Pool: zwei Systemplatten Nicht verfügbar, vier leere Platten Verfügbar und eine Platte mit Partitionen Bestätigung nötig](../../../../../assets/screenshots/storage-disks.de.webp) _Der Reiter Platten sagt für jede Platte, ob ein neuer Pool sie verwenden darf._ Die Spalte **Für einen neuen Pool** zeigt pro Platte eine von drei Bewertungen: **Verfügbar**, **Bestätigung nötig** oder **Nicht verfügbar**. Pithyx prüft die Bewertung direkt vor jedem Befehl eines Plans erneut, sodass eine Platte, die sich nach deinem Blick geändert hat, erkannt wird. Eine Platte ist **Nicht verfügbar**, wenn: - sie das System enthält (`/`, `/boot`, `/boot/efi` oder `/var/lib/pithyx`, auch über Partitionen, LVM, md oder einen anderen Pool): „Enthält das System. Wird nie für Pools verwendet.“ - sie schreibgeschützt ist oder ein Dateisystem darauf in Benutzung ist; - sie schon zu einem Pool gehört; - eine andere Platte dieselbe Seriennummer meldet, sodass sich beide nicht unterscheiden lassen; - sie Daten enthält, aber keine Seriennummer zum Bestätigen hat. Bei einer Platte ist **Bestätigung nötig**, wenn sie Partitionen, Dateisysteme oder andere Signaturen hat oder noch nicht geprüft wurde. Bei einer Platte mit Inhalt sagt Pithyx „Enthält Daten“ und listet die gefundenen Partitionen, Dateisysteme und Signaturen auf. Gib ihre Seriennummer genau so ein, wie sie angezeigt wird, um sie zu verwenden. Leere Platten sind **Verfügbar**. Eine Ersatzplatte (siehe unten) braucht immer ihre Seriennummer, auch wenn sie leer ist. > **Alles auf einer bestätigten Platte geht verloren:** > > Die Bestätigung mit der Seriennummer löscht die Platte: Pithyx führt bei Pool-Mitgliedern `zpool labelclear -f` aus, danach `wipefs --all` auf den Partitionen und der Platte. Es gibt kein Rückgängigmachen. Vergleiche die Seriennummer mit dem Aufkleber auf der Platte. Wenn sich eine Platte geändert hat, nachdem der Plan angezeigt wurde, wird nichts geändert, und du bekommst [`storage.plan.stale`](https://pithyx.org/de/docs/reference/errors/#storage.plan.stale). Ein Plan läuft nach 10 Minuten ab ([`storage.plan.expired`](https://pithyx.org/de/docs/reference/errors/#storage.plan.expired)); zeige ihn dann erneut an. ### Einen Pool anlegen ![Der Assistent Pool anlegen bei Schritt 2, Aufbau, für vier Platten mit empfohlenem RAID-Z1 und den Karten Spiegel, Spiegelpaare, RAID-Z1, RAID-Z2 und Stripe](../../../../../assets/screenshots/storage-layout.de.webp) _Schritt 2 des Assistenten vergleicht die Aufbauten für die gewählten Platten und markiert den empfohlenen._ Öffne Speicher und wähle **Pool anlegen…**. Der Assistent hat vier Schritte: **Platten**, **Aufbau**, **Verschlüsselung** und **Name und Prüfung**. Platten werden über ihre Namen unter `/dev/disk/by-id` angesprochen, sodass ein Pool einen geänderten Anschluss oder ein anderes Kabel übersteht. | Aufbau | Mindestanzahl Platten | Hinweise | | --------------------------------- | --------------------- | ------------------------------------------- | | Einzelne Platte (keine Redundanz) | 1 | genau eine Platte | | Stripe | 2 | fällt eine Platte aus, ist alles verloren | | Spiegel | 2 | | | Spiegelpaare | 4 | eine gerade Anzahl Platten | | RAID-Z1 / RAID-Z2 / RAID-Z3 | 3 / 4 / 5 | eine / zwei / drei Platten dürfen ausfallen | Der Assistent empfiehlt einen Aufbau: bei einer Platte einzeln, bei zwei Platten Spiegel, bei drei bis fünf Platten RAID-Z1, bei sechs oder mehr RAID-Z2. Bei Platten unterschiedlicher Größe zählt jede Platte so groß wie die kleinste, und der Assistent sagt dir, wie viel ungenutzt bleibt. Der Pool-Name beginnt mit einem Kleinbuchstaben, danach folgen Kleinbuchstaben, Ziffern, `-` oder `_`, höchstens 32 Zeichen. Die Namen `mirror`, `raidz`, `raidz1` bis `raidz3`, `draid`, `spare`, `log`, `cache`, `special`, `dedup` und `pithyx` sowie Namen, die mit `c0` beginnen, sind reserviert. Jeder neue Pool bekommt dieselben Optionen: `ashift=12`, `compression=lz4`, `xattr=sa`, `acltype=posixacl`, `atime=off`, `normalization=formD`. Danach legt Pithyx seine Dataset-Struktur unter `/pithyx` an: `shares`, `homes`, `apps`, `system` und `cache` (Kontingent 2,5 GiB, keine Kompression, keine automatischen Snapshots). Ein Pool, den Pithyx nicht angelegt hat, hat kein Dataset `pithyx`, und Pithyx legt darauf nichts an ([`storage.pool.not_prepared`](https://pithyx.org/de/docs/reference/errors/#storage.pool.not_prepared)). Weitere Pool-Aktionen: **Ersetzen…** (fragt immer nach der Seriennummer), **Hot Spare hinzufügen…**, **Spare entfernen**, **Offline nehmen**, **Online bringen** und **Pool löschen…**. > **Einen Pool löschen:** > > **Pool löschen…** listet jedes Dataset auf, das mit dem Pool verschwindet, und verlangt die Eingabe des Pool-Namens ([`storage.pool.name_mismatch`](https://pithyx.org/de/docs/reference/errors/#storage.pool.name_mismatch), wenn er abweicht). Löschen und Exportieren werden abgelehnt, solange Platten fehlen ([`storage.pool.disks_missing`](https://pithyx.org/de/docs/reference/errors/#storage.pool.disks_missing)) oder der Pool angehalten ist. Ein Pool zeigt einen dieser Zustände: Intakt, Beeinträchtigt, Ausgefallen, Offline, Nicht erreichbar, Entfernt, Angehalten, Unbekannt oder „Nicht angeschlossen“. Bei einem beeinträchtigten Pool wird eine Platte, die zurückkommt, von selbst neu aufgebaut (Resilver). Der Daemon holt eine zurückkehrende Platte mit `zpool online` und danach `zpool clear` zurück, jeweils mit 30 Sekunden Zeitlimit. ### Datasets und Wiederherstellungspunkte Unter **Erweitert** listet **Datasets** > **Datasets anzeigen** die Datasets mit Name, Belegt, Frei, Limit, Kompression und dem Ordner oder der Größe. Dataset-Namen bestehen aus Buchstaben, Ziffern, `.`, `-` und `_`, beginnen mit einem Buchstaben oder einer Ziffer und sind höchstens 64 Zeichen lang. - **Umbenennen…** verschiebt den Ordner; freigegebene Ordner folgen. - **Grenzen…** setzt Kontingent, Reservierung, Kompression und Record-Größe. Ein leeres Kontingent oder eine leere Reservierung bedeutet kein Limit. Kompression: aus, lz4, zle, zstd (Stufen 1 bis 19) oder gzip (1 bis 9). Record-Größe: eine Zweierpotenz von 4 KiB bis 1 MiB, Standard 128 KiB. - **Löschen…** verlangt den vollständigen Dataset-Namen und listet untergeordnete Datasets und Snapshots auf. Datasets für Home-Ordner, Apps und das System lassen sich weder umbenennen noch löschen ([`storage.dataset.managed`](https://pithyx.org/de/docs/reference/errors/#storage.dataset.managed)), und ein Dataset, das ein freigegebener Ordner nutzt, muss zuerst diesen freigegebenen Ordner verlieren. Pithyx legt noch keine Volumes (Blockgeräte) an: In dieser Version nutzt keins, denn iSCSI und virtuelle Maschinen gibt es noch nicht. Vorhandene Volumes auf einem Pool erscheinen in der Tabelle und unter Erweitert, wo du sie löschen kannst. Die Speicher-App hat keinen Bereich für Snapshots. Snapshots erscheinen in der Oberfläche als Wiederherstellungspunkte: ein Schalter pro freigegebenem Ordner unter Einstellungen > **Freigegebene Ordner**, der einmal am Tag einen Snapshot des Datasets des Ordners macht und die neuesten 7 behält, und **Frühere Versionen** in Dateien, um ältere Versionen zurückzuholen. Siehe [Freigegebene Ordner](https://pithyx.org/de/docs/admin/shared-folders/). Snapshots von Hand, Festhalten, das Zurücksetzen eines Datasets und andere Zeitpläne gibt es in der Oberfläche nicht. ### Importieren und exportieren **Pool importieren…** durchsucht die Labels aller Platten, wenn du **Platten durchsuchen** drückst; die Suche kann schlafende Platten wecken und läuft nie von selbst. Ein Pool wird zuerst schreibgeschützt als Vorschau importiert (angezeigt als „Schreibgeschützt (Vorschau)“): Es wird nichts eingehängt und nichts geändert. Wähle dann **Zur Nutzung importieren…**, was ihn erneut importiert und die Datasets einhängt, die sicher einzuhängen sind, oder **Exportieren**, um die Vorschau zu beenden ([`storage.import.preview_required`](https://pithyx.org/de/docs/reference/errors/#storage.import.preview_required), wenn du die Vorschau überspringst). Datasets, die sich nicht sicher einhängen lassen, bleiben ausgehängt (`canmount=noauto`) und nennen einen Grund: Sie würden einen Systemordner überdecken, etwas verdecken, das dort eingehängt ist, einen Ordner mit einem anderen Dataset teilen oder sind verschlüsselt und gesperrt. Freigegebene Ordner und Apps darauf halten an. Ein Pool, der zuletzt von einem anderen System benutzt wurde, zeigt „Von einem anderen System benutzt“. Er braucht **Trotzdem importieren (erzwingen)** und die Eingabe des Pool-Namens ([`storage.import.force_required`](https://pithyx.org/de/docs/reference/errors/#storage.import.force_required)). Ist der Name vergeben, wähle **Neuer Name für den Pool**. **Exportieren…** hängt die Datasets aus und listet auf, was dadurch nicht mehr verfügbar ist; die Daten bleiben auf den Platten, und der Pool kann in ein anderes System umziehen. ### Einen Pool erweitern **Platten hinzufügen…** fügt dem Pool eine neue Gruppe von Platten (ein Vdev) hinzu: einzeln, Spiegel (2 Platten), RAID-Z1 (3), RAID-Z2 (4) oder RAID-Z3 (5). Der Dialog warnt, wenn die neue Gruppe die Redundanz senkt, wenn sich ihr Aufbau von den vorhandenen unterscheidet (dafür muss der Pool-Name eingegeben werden) und dass sich die Platten nie wieder aus dem Pool entfernen lassen. **Um eine Platte erweitern…** erweitert eine RAID-Z-Gruppe um eine Platte. Der Pool bleibt nutzbar, der Schritt ist nicht umkehrbar und verlangt den Pool-Namen, es läuft immer nur eine Erweiterung ([`storage.pool.expanding`](https://pithyx.org/de/docs/reference/errors/#storage.pool.expanding)), und Daten, die schon auf dem Pool liegen, behalten ihr altes Verhältnis von Daten zu Parität, bis sie neu geschrieben werden. > **Note:** > > Die App Speicher hat keine Schaltfläche, um eine einzelne Platte später in einen Spiegel zu verwandeln. ### Verschlüsselung Die Pool-Verschlüsselung ist in dieser Version nicht verfügbar. Der Assistent fragt „Soll der Pool verschlüsselt werden?“, und die Antwort ist Pflicht; **Keine Verschlüsselung** funktioniert, und **Mit einem Schlüssel verschlüsseln** wird mit [`storage.encryption.unavailable`](https://pithyx.org/de/docs/reference/errors/#storage.encryption.unavailable) abgelehnt. Ein Pool lässt sich nachträglich nicht verschlüsseln. ### Zustand und Warnungen Administratoren bekommen eine Desktop-Benachrichtigung, wenn eine Speicherwarnung auftritt oder sich verschlimmert, und eine zweite, die mit „Behoben:“ beginnt und das Problem nennt, wenn es verschwindet. Die Warnungen betreffen: Pool angehalten, beeinträchtigt, ausgefallen oder offline, eine fehlende Platte, Datenfehler, Scrub-Fehler, einen zu 80 Prozent gefüllten Pool (Warnung) oder zu 90 Prozent gefüllten Pool (kritisch) und ausfallende oder bedenkliche SMART-Werte. Du kannst eine Warnung für dich stummschalten. - **Jetzt prüfen** (Scrub), anhalten, fortsetzen und stoppen. Ein Zeitplan pro Pool: Aus, Wöchentlich oder Monatlich (Standard Monatlich). - SMART wird mit `smartctl -n standby` gelesen (30 Sekunden Zeitlimit), sodass schlafende Platten weiterschlafen. Zustände: Gesund, Warnung, Fällt aus, Kein SMART, Unbekannt. Kurze Selbsttests laufen standardmäßig wöchentlich und lange monatlich; eine schlafende Platte wird übersprungen und später erneut versucht, nie geweckt. ## Freigegebene Ordner > Freigegebene Ordner anlegen, bearbeiten und löschen, festlegen, wer sie nutzen darf, und wie Papierkorb und Wiederherstellungspunkte ihre Dateien schützen. Source: https://pithyx.org/de/docs/admin/shared-folders/ Markdown: https://pithyx.org/de/docs/admin/shared-folders.md Ein freigegebener Ordner ist ein eigenes ZFS-Dataset auf einem Pool, mit eigenem Platz, eigenen Rechten und eigenen Snapshots. Administratoren legen sie unter Einstellungen > **Freigegebene Ordner** an; Benutzer sehen nur die Ordner, für die sie ein Recht haben. Gelöschte Dateien landen in einem Papierkorb (standardmäßig 30 Tage), und tägliche Wiederherstellungspunkte halten ältere Versionen sieben Tage lang vor. ### Einen freigegebenen Ordner anlegen 1. Öffne Einstellungen > **Freigegebene Ordner** und wähle **Freigegebenen Ordner anlegen…**. 2. Gib einen **Name** ein, wähle den **Pool** und, wenn du magst, eine **Beschreibung (optional)**. 3. Hake **Befehle anzeigen** an, wenn du sehen willst, was ausgeführt wird, und wähle dann **Freigegebenen Ordner anlegen**. Gibt es keinen Pool, sagt der Dialog: „Noch kein Pool ist für freigegebene Ordner bereit. Lege zuerst in Speicher einen Pool an.“ Der Name hat 1 bis 64 Zeichen: Buchstaben, Ziffern, Leerzeichen, Punkte, Bindestriche und Unterstriche, er beginnt nicht mit einem Punkt und ist ohne Beachtung der Groß- und Kleinschreibung eindeutig ([`fs.share.invalid`](https://pithyx.org/de/docs/reference/errors/#fs.share.invalid), [`fs.share.exists`](https://pithyx.org/de/docs/reference/errors/#fs.share.exists)). Die Beschreibung hat höchstens 200 Zeichen in einer Zeile. Die Namen `global`, `home`, `homes`, `printers`, `print$` und `ipc$` sind reserviert ([`fs.share.name_reserved`](https://pithyx.org/de/docs/reference/errors/#fs.share.name_reserved)); `home` und `homes` sind die [Home-Ordner](https://pithyx.org/de/docs/admin/home-folders/). Das Dataset bekommt einen aus dem Ordnernamen abgeleiteten Namen (Kleinbuchstaben, Akzente aufgelöst, andere Zeichen zu `-`) unter `/pithyx/shares/`, eingehängt unter `//`. Neue Ordner starten mit eingeschalteten Wiederherstellungspunkten. Um die Größe eines freigegebenen Ordners zu begrenzen, setze in Speicher ein Kontingent auf sein Dataset (**Grenzen…**); der Dialog hat kein Größenfeld. > **Note:** > > Einen vorhandenen Ordner als freigegebenen Ordner einzutragen, funktioniert nur auf Entwicklungsmaschinen ([`fs.share.folder_dev_only`](https://pithyx.org/de/docs/reference/errors/#fs.share.folder_dev_only)). Auf einer normalen Box ist jeder freigegebene Ordner ein neues Dataset. ### Regeln für Ordner ![Der Dialog Photos bearbeiten mit den Schaltern für den Netzwerkzugriff und den Rechten: die Gruppe family mit Lesen und schreiben, die Benutzer mit dem Zugriff, den sie insgesamt bekommen](../../../../../assets/screenshots/shared-folders-edit.de.webp) _Der Bearbeiten-Dialog einer Freigabe: Netzwerkzugriff pro Protokoll und Rechte pro Gruppe und Benutzer._ Der Bearbeiten-Dialog hat drei Teile. - **Name und Beschreibung.** Das Umbenennen ändert nur den Namen, den Benutzer sehen; das Dataset behält seinen Namen. - **Rechte.** Pro Benutzer und pro Gruppe: Kein Zugriff, Lesen oder Lesen und schreiben. Ein Benutzer bekommt das Meiste, was ihm selbst oder einer seiner Gruppen gegeben ist, und Administratoren können immer alles lesen und ändern. Jeder Benutzer ist in der Gruppe users, angezeigt als „alle Benutzer“. Änderungen gelten sofort. Siehe [Berechtigungen](https://pithyx.org/de/docs/admin/permissions/). - **Netzwerkzugriff.** Die Schalter **Über SMB anbieten**, **Über SFTP zeigen**, **Über WebDAV anbieten** und **Über FTP anbieten**, standardmäßig alle an, und **Verschlüsselung über SMB verlangen** (standardmäßig aus; ältere Clients ohne SMB-Verschlüsselung können sich dann nicht verbinden). Ein Benutzer braucht sowohl das Protokollrecht als auch den Schalter am Ordner. Siehe [Dateidienste](https://pithyx.org/de/docs/admin/file-services/). Die Übersichtstabelle zeigt Name, Pool, Belegt, Beschreibung, Rechte und Wiederherstellungspunkte. Ein Benutzer ohne jedes Recht sieht den Ordner gar nicht ([`fs.share.not_found`](https://pithyx.org/de/docs/reference/errors/#fs.share.not_found)). Ist sein Pool nicht angeschlossen, angehalten oder nicht eingehängt, ist der Ordner nicht verfügbar ([`fs.share.unavailable`](https://pithyx.org/de/docs/reference/errors/#fs.share.unavailable)). > **Einen freigegebenen Ordner löschen:** > > Beim Löschen musst du den Ordnernamen eingeben und wählen: **Daten behalten** (das Dataset und die Dateien bleiben und sind weiter in Speicher sichtbar) oder **Daten endgültig löschen** (Dataset, Dateien und jeder Snapshot, kein Rückgängigmachen). ### Papierkorb und Aufbewahrung Jeder freigegebene Ordner hat an seiner Wurzel einen versteckten Ordner `.pithyx-trash`. Löschen in Dateien verschiebt Elemente dorthin, ebenso Löschen über SMB, WebDAV und FTP. Löschen über SFTP entfernt Dateien endgültig. Der Papierkorb listet, woher jedes Element kam, wann es gelöscht wurde und wann es endgültig verschwindet, und bietet **Wiederherstellen**, **Endgültig löschen** und **Papierkorb leeren**. Wie Benutzer damit arbeiten, steht unter [Dateien](https://pithyx.org/de/docs/user/files/#der-papierkorb). Die Aufbewahrung gilt pro Ordner: standardmäßig 30 Tage, 0 behält Elemente, bis der Papierkorb geleert wird, höchstens 3650 Tage. Eine Bereinigung läuft stündlich. Nur Administratoren können die Aufbewahrung ändern, und der Desktop hat dafür heute keine Einstellung; sie lässt sich nur über die API setzen (`PUT /api/shares/{shareId}/trash`, [`fs.trash.retention_invalid`](https://pithyx.org/de/docs/reference/errors/#fs.trash.retention_invalid) bei einem ungültigen Wert). Der Papierkorb zeigt „Gelöschte Elemente bleiben {days} Tage erhalten.“ ### Wiederherstellungspunkte Wiederherstellungspunkte sind tägliche Snapshots; die neuesten 7 bleiben erhalten (eine Box, die eine Weile aus war, behält ihre letzten Punkte, statt sie zu verlieren). Sie brauchen nur Platz für Dateien, die sich geändert haben oder gelöscht wurden, und eine gelöschte Datei gibt ihren Platz frei, sobald der letzte Punkt, der sie hält, abläuft. Jeder Ordner hat in der Spalte **Wiederherstellungspunkte** einen Schalter („Täglich, 7 Tage behalten“ oder „Aus“); **Was sind Wiederherstellungspunkte?** erklärt sie den Benutzern. Benutzer stellen ältere Versionen mit **Frühere Versionen** in Dateien wieder her, und Windows zeigt sie als „Vorgängerversionen“. Sie helfen gegen versehentliches Löschen und Ransomware, ersetzen aber kein Backup auf einem anderen Gerät, weil sie auf denselben Platten liegen. Ein freigegebener Ordner, der aus einem vorhandenen Ordner registriert wurde (nur auf Entwicklungsmaschinen), hat keine Wiederherstellungspunkte, weil er kein eigenes Dataset hat. ### Verschlüsselung über SMB Der Schalter **Verschlüsselung über SMB verlangen** pro Ordner setzt `server smb encrypt = required` für diesen Ordner; sonst wird verschlüsselt, wenn der Client es verlangt. Der Server verlangt immer SMB 3 und Signierung. Das ist getrennt von der Pool-Verschlüsselung, die nicht verfügbar ist (siehe [Speicher](https://pithyx.org/de/docs/admin/storage/#verschl%C3%BCsselung)). ## Benutzer und Gruppen > Benutzer und Gruppen anlegen, ihnen Rechte geben, Konten deaktivieren oder löschen, und was mit Home-Ordnern passiert. Source: https://pithyx.org/de/docs/admin/users-and-groups/ Markdown: https://pithyx.org/de/docs/admin/users-and-groups.md Administratoren verwalten Konten unter Einstellungen > **Benutzer** und Einstellungen > **Gruppen**. Jeder Pithyx-Benutzer ist zugleich ein Linux-Konto mit eigener Benutzer-ID, sodass Dateien, die er anlegt, ihm gehören. Passwörter haben mindestens 8 Zeichen, und nur ein Administrator kann für einen anderen Benutzer ein neues Passwort setzen. ### Einen Benutzer anlegen Wähle **Benutzer anlegen** und fülle aus: - **Benutzername**: Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche, beginnend mit einem Buchstaben oder Unterstrich, höchstens 32 Zeichen. Systemnamen wie `root`, `daemon`, `sshd`, `pithyx`, `docker` und `users` sowie Namen, die mit `systemd-` beginnen, werden abgelehnt ([`auth.username.reserved`](https://pithyx.org/de/docs/reference/errors/#auth.username.reserved)). Ein Name, den ein Systemkonto schon benutzen darf, wird mit [`users.account.refused`](https://pithyx.org/de/docs/reference/errors/#users.account.refused) abgelehnt. - **Anzeigename (optional)**: höchstens 64 Zeichen. - **Passwort**: 8 bis 1024 Zeichen. Allgemein bekannte Passwörter werden abgelehnt ([`auth.password.too_common`](https://pithyx.org/de/docs/reference/errors/#auth.password.too_common)); weitere Regeln für den Aufbau gibt es nicht. - **Gruppen**. Jeder Benutzer ist außerdem in der Gruppe users. Benutzer-IDs stammen aus dem Bereich 20000 bis 29999 und werden nie wieder vergeben. Gruppen-IDs stammen aus dem Bereich 30000 bis 39999. Die Shell ist `/usr/sbin/nologin`, es sei denn, der Benutzer hat das Recht zur SSH-Anmeldung und SSH-Anmeldungen sind eingeschaltet. Ein neuer Benutzer kann sich am Desktop anmelden, SMB nutzen und die Apps Dateien und Betrachter verwenden; das kannst du im Rechte-Dialog ändern. Das Passwort wird auch für die Linux- und Samba-Konten gesetzt. Ein Benutzer, der noch keines hat, ist markiert mit „Noch nicht bereit für SMB und SFTP: Der Benutzer meldet sich einmal im Web an, oder du setzt ein neues Passwort.“ Abzeichen in der Liste: Administrator, Zwei-Faktor, Deaktiviert. ### Gruppen Wähle **Gruppe anlegen** unter Einstellungen > **Gruppen**. Eine Gruppe hat einen Namen (dieselben Regeln wie bei Benutzernamen, und er darf nicht mit `pithyx-` beginnen), eine **Beschreibung (optional)** mit bis zu 200 Zeichen und Mitglieder. Rechte, die einer Gruppe gegeben werden, gelten für alle ihre Mitglieder. Das Löschen einer Gruppe lässt ihre Mitglieder bestehen; Dateien behalten die Gruppen-ID, und sie wird nie an eine andere Gruppe vergeben. Die eingebaute Gruppe users enthält jeden Benutzer und lässt sich nicht umbenennen, löschen oder von Hand mit Mitgliedern versehen ([`users.group.builtin`](https://pithyx.org/de/docs/reference/errors/#users.group.builtin)). ### Sonderrechte Der Rechte-Dialog eines Benutzers oder einer Gruppe hat vier Sonderrechte: „Administrator (darf alles ändern)“, „Am Desktop anmelden“, „Über SSH mit einer Shell anmelden“ und „Neu starten und herunterfahren“. Weitere Abschnitte betreffen Dateidienste, Apps und freigegebene Ordner. Wie sich Rechte verbinden, steht unter [Berechtigungen](https://pithyx.org/de/docs/admin/permissions/). Ohne „Am Desktop anmelden“ kann sich ein Benutzer nicht am Web-Desktop anmelden; wer das Recht verliert, wird mit der nächsten Anfrage abgemeldet. ### Deaktivieren und löschen **Deaktivieren** nimmt dem Benutzer alle Rechte und meldet ihn ab; **Aktivieren** gibt die Rechte zurück. Du kannst dich nicht selbst deaktivieren ([`users.user.self`](https://pithyx.org/de/docs/reference/errors/#users.user.self)), und der letzte Administrator kann weder deaktiviert noch gelöscht werden noch das Recht verlieren ([`users.user.last_admin`](https://pithyx.org/de/docs/reference/errors/#users.user.last_admin)). **Löschen** verlangt die Eingabe des Benutzernamens und fragt, was mit dem Home-Ordner des Benutzers passiert: **Behalten** (die Vorgabe), **Dateien in einen freigegebenen Ordner verschieben** oder **Mit allen Dateien löschen**, siehe [Home-Ordner](https://pithyx.org/de/docs/admin/home-folders/#wenn-ein-benutzer-gel%C3%B6scht-wird). Das Konto verschwindet, Dateien, die der Benutzer in freigegebenen Ordnern angelegt hat, bleiben, und die Benutzer-ID wird nie an jemand anderen vergeben. Rechte, Gruppenmitgliedschaften sowie die Jobs und Benachrichtigungen des Benutzers werden entfernt. Um ein Passwort zurückzusetzen, nutze **Neues Passwort** beim Benutzer: Der Benutzer wird überall abgemeldet, und SMB und SFTP verwenden ebenfalls das neue Passwort. Pithyx hat kein Zurücksetzen per E-Mail. Hat der einzige Administrator sein Passwort vergessen, ist der Wiederherstellungsschlüssel aus der Ersteinrichtung der einzige Weg, siehe [Sicherheit](https://pithyx.org/de/docs/admin/security/#der-wiederherstellungsschl%C3%BCssel). ### Home-Ordner Jeder Benutzer bekommt einen privaten Home-Ordner, ein Dataset `/pithyx/homes/` unter `//homes/`, im Besitz des Benutzers. Die Liste zeigt seinen Pfad oder „Noch kein Pool“, bis es einen Pool mit dem Pithyx-Layout gibt. Sein Pool, die Quotas und die Homes gelöschter Benutzer stehen unter [Home-Ordner](https://pithyx.org/de/docs/admin/home-folders/). ## Home-Ordner > Jeder Benutzer bekommt einen privaten Home-Ordner auf dem Home-Pool; Administratoren wählen den Pool, setzen Quotas und entscheiden, was mit dem Home eines gelöschten Benutzers passiert. Source: https://pithyx.org/de/docs/admin/home-folders/ Markdown: https://pithyx.org/de/docs/admin/home-folders.md Status: draft Jeder Benutzer bekommt einen eigenen Home-Ordner: einen privaten Ort für Dateien, den nur dieser Benutzer und die Administratoren öffnen können. Benutzer sehen ihn als **home** in Dateien und über jeden Dateidienst; Administratoren sehen zusätzlich jedes andere Home unter **homes**. Einstellungen > **Home-Ordner** zeigt, auf welchem Pool die Homes liegen, ihren Platz und ihre Quotas sowie die Homes gelöschter Benutzer. ### Wo Benutzer ihn finden | Wo | Das eigene Home | Alle Homes (nur Administratoren) | | -------------- | --------------------------------------- | ------------------------------------------------------------------ | | Dateien | **home**, ganz oben in der Seitenleiste | **homes** in der Seitenleiste, das jedes Home als Ordner auflistet | | SMB | `\\\home` | `\\\homes` | | SFTP | Der Ordner `home` | Der Ordner `homes`, ein Ordner pro Benutzer | | WebDAV und FTP | Der Ordner `home` ganz oben | Der Ordner `homes`, ein Ordner pro Benutzer | Ein Home wird wie ein freigegebener Ordner benutzt: Es hat seinen eigenen [Papierkorb](https://pithyx.org/de/docs/user/files/#der-papierkorb), Dateien darin gehören dem Benutzer, und der Benutzer braucht das Recht für ein Protokoll, um es darüber zu erreichen (siehe [Dateidienste](https://pithyx.org/de/docs/admin/file-services/)). Niemand sonst kann Zugriff auf ein Home bekommen, und es erscheint nie unter Einstellungen > **Freigegebene Ordner**. Apps, die die freigegebenen Ordner des Benutzers lesen dürfen, sehen auch sein eigenes Home, nie das eines anderen. > **Caution:** > > Dateien, die in der SMB-Freigabe `homes` gelöscht werden, landen in keinem Papierkorb; sie sind weg. Jedes Home ist ein eigenes Dataset, und Samba kann keine Datei darüber hinweg verschieben. Über `home`, in Dateien, SFTP, WebDAV und FTP funktioniert der Papierkorb wie gewohnt. ### Der Home-Pool Jedes Home ist ein Dataset `/pithyx/homes/`, eingehängt unter `//homes/`. Sobald es den ersten Pool mit dem Pithyx-Layout gibt, wird er zum Home-Pool, und jeder Benutzer ohne Home bekommt dort eines; ein Benutzer, der vorher angelegt wurde, bekommt sein Home, sobald der Pool da ist. Später angelegte Benutzer bekommen ihres sofort. Die Seite **Benutzer** zeigt den Pfad jedes Homes oder „Noch kein Pool“. Um alle Homes auf einen anderen Pool umzuziehen, wähle den Pool unter **Umziehen nach** und dann **Home-Ordner umziehen**. Ein Pool wird nur angeboten, solange er online, beschreibbar, entsperrt ist und das Pithyx-Layout hat; außerdem braucht er Platz für alle Homes ([`homes.pool.no_space`](https://pithyx.org/de/docs/reference/errors/#homes.pool.no_space)). Der Umzug läuft als Job, ein Home nach dem anderen: 1. Das Home wird schreibgeschützt, sodass man es lesen, aber nicht ändern kann, während es kopiert wird. 2. Ein Snapshot davon wird mit Dateien, Eigentümern, Rechten und Papierkorb auf den neuen Pool kopiert. 3. Das Home wird vom neuen Pool genutzt, und die alte Kopie wird mit ihren Snapshots gelöscht. Kann ein Home nicht umziehen, bleibt es, wo es war, und lässt sich wieder ändern; die vorher umgezogenen Homes bleiben umgezogen, und der Home-Pool bleibt der alte, bis jedes Home angekommen ist. Starte den Umzug erneut, sobald die Ursache behoben ist. Es läuft immer nur ein Umzug ([`homes.move.running`](https://pithyx.org/de/docs/reference/errors/#homes.move.running)). Ein Home auf einem Pool, der fehlt (zerstört oder exportiert und nicht wieder importiert), lässt sich nicht umziehen; der Umzug lässt es, wo es ist. Kommt der Pool nicht zurück, **lösche** das Home auf dieser Seite: Der Benutzer bekommt ein neues, leeres Home auf dem Home-Pool. ### Quotas **Standard-Quota** gilt für jedes Home ohne eigene Quota; lass das Feld leer für keine Grenze. **Quota** bei einem Home setzt die eigene des Benutzers: **Standard-Quota verwenden**, **Keine Grenze** oder **Eigene Quota**. Eine Quota ist mindestens 1 MiB groß ([`homes.quota.invalid`](https://pithyx.org/de/docs/reference/errors/#homes.quota.invalid)) und zählt die Dateien und die Snapshots des Homes. Ist ein Home voll, schlägt Schreiben fehl, bis Dateien gelöscht und der Papierkorb geleert ist. ### Wenn ein Benutzer gelöscht wird Beim Löschen eines Benutzers unter Einstellungen > **Benutzer** fragt Pithyx, was mit dem Home-Ordner passiert: - **Behalten** (die Vorgabe): Das Home bleibt, umbenannt in `.deleted-`, damit der Name für einen neuen Benutzer frei ist. Administratoren sehen es unter **homes**. - **Dateien in einen freigegebenen Ordner verschieben**: Ein neuer Ordner mit dem Namen des Benutzers im gewählten freigegebenen Ordner bekommt alle Dateien, danach wird das Home samt Papierkorb gelöscht. Das läuft als Job. - **Mit allen Dateien löschen**: Das Home wird mit seinen Dateien, seinem Papierkorb und seinen Snapshots gelöscht, nachdem du den Benutzernamen eingegeben hast. Ein behaltenes Home erscheint auf der Seite **Home-Ordner** mit „Benutzer gelöscht“. **In Freigabe verschieben** und **Löschen** tun dort später dasselbe wie oben; **Löschen** fragt nach dem Ordnernamen. Ein neuer Benutzer mit demselben Namen bekommt nie ein altes Home: Ein Home, das einer anderen Benutzer-ID gehört, wird vorher umbenannt. ### Grenzen - Homes haben noch keinen Ordner `Desktop` für die Desktop-Elemente. - Ein Home wird nie mit anderen Benutzern geteilt; dafür gibt es freigegebene Ordner. ## Berechtigungen > Wie Rechte an Benutzer und Gruppen vergeben werden, wie sich der Zugriff auf freigegebene Ordner, Protokolle und Apps verbindet und wann eine Änderung wirkt. Source: https://pithyx.org/de/docs/admin/permissions/ Markdown: https://pithyx.org/de/docs/admin/permissions.md Pithyx vergibt Rechte an Benutzer und an Gruppen. Die wirksamen Rechte eines Benutzers sind die Vereinigung seiner eigenen Rechte und der Rechte aller seiner Gruppen, einschließlich der eingebauten Gruppe users. Es gibt keine Verbotsregeln, und Administratoren haben jedes Recht. Ein deaktivierter Benutzer hat keines. ### Das Modell Ein Recht ist eines von: - ein Sonderrecht: Administrator, am Desktop anmelden, über SSH mit einer Shell anmelden, neu starten und herunterfahren; - ein Protokoll: SMB, SFTP, WebDAV oder FTP; - Zugriff auf einen freigegebenen Ordner: Kein Zugriff, Lesen oder Lesen und schreiben (das höchste gewinnt); - Zugriff auf eine App. Der Rechte-Dialog eines Benutzers oder einer Gruppe sagt es deutlich: Der Benutzer hat diese Rechte und alles, was seine Gruppen ihm geben; es gibt keine Regeln, die ein Recht wegnehmen. Eine Gruppe überstimmt nie einen Benutzer, und was eine Gruppe gewährt, kannst du nicht verbieten. ### Zugriff auf freigegebene Ordner Lege die Stufen **Kein Zugriff**, **Lesen** und **Lesen und schreiben** pro Benutzer oder Gruppe im Rechte-Dialog fest oder pro Ordner im Bearbeiten-Dialog des Ordners, der auch zeigt, was ein Benutzer am Ende „bekommt“. Administratoren lesen und schreiben immer jeden Ordner. Pithyx bringt das Dateisystem damit in Einklang: Es legt pro Ordner Linux-Gruppen an und setzt POSIX-ACLs, sodass SMB, SFTP, WebDAV, FTP und die App „Dateien“ dieselben Rechte sehen. ACL-Änderungen von einem SMB-Client werden ignoriert. Ein Ordner ohne Zugriff ist versteckt, nicht verweigert ([`fs.share.not_found`](https://pithyx.org/de/docs/reference/errors/#fs.share.not_found)); Schreiben mit Leserecht ergibt [`fs.share.read_only`](https://pithyx.org/de/docs/reference/errors/#fs.share.read_only). ### Zugriff über Protokolle Ein Benutzer erreicht einen Ordner nur dann über ein Protokoll, wenn beide es erlauben: Der Benutzer (oder eine Gruppe) hat das Protokollrecht, und der Ordner hat den passenden Schalter **Über ... anbieten**. Ein neuer Benutzer hat nur SMB. Die serverseitigen Schalter stehen unter [Dateidienste](https://pithyx.org/de/docs/admin/file-services/). SSH mit einer Shell ist ein Recht, kein Protokoll: Es braucht das Recht und den Schalter **SSH-Anmeldungen**. Anmeldungen über Protokolle verwenden nur das Passwort; die Zwei-Faktor-Anmeldung gilt für den Web-Desktop. ### Zugriff auf Apps Dateien und Betrachter werden per Recht vergeben (neue Benutzer bekommen beide), Info steht allen offen, und Speicher, Einstellungen, Ressourcenmonitor, Protokoll-Center und Store sind nur für Administratoren. Bei Apps aus dem Store ist **Wer die App nutzen darf** entweder **Alle**, **Nur Administratoren** oder **Ausgewählte Gruppen und Nutzer**; Administratoren dürfen jede App nutzen. Pro App können Administratoren Berechtigungen ausschalten, um sie der App zu nehmen. Mehr dazu unter [Apps und der Store](https://pithyx.org/de/docs/admin/apps-and-store/). ### Wann eine Änderung wirkt Änderungen gelten sofort. Offene Sitzungen werden über den WebSocket neu autorisiert, und ein Benutzer, der die Desktop-Anmeldung verliert, wird getrennt. Bei WebDAV und FTP wird das Recht bei jeder Anfrage geprüft. Ein korrektes Protokollpasswort wird 5 Minuten gemerkt, und ein neues Passwort beendet das sofort. Offene Fenster einer App bekommen eine Änderung der Berechtigungen innerhalb weniger Minuten. Websitzungen enden nach 7 Tagen ohne Nutzung oder nach insgesamt 30 Tagen; Deaktivieren, Löschen oder Zurücksetzen des Passworts beendet sie sofort. ## Dateidienste > SMB, SFTP, WebDAV und FTP ein- oder ausschalten, mit ihren Ports, Standardwerten und Grenzen. Source: https://pithyx.org/de/docs/admin/file-services/ Markdown: https://pithyx.org/de/docs/admin/file-services.md Dateidienste lassen andere Computer freigegebene Ordner über das Netzwerk öffnen. Einstellungen > **Dateidienste** hat einen Schalter pro Dienst: SMB, SFTP, WebDAV und FTP. Benutzer melden sich mit ihrem Pithyx-Benutzernamen und Passwort an. Pithyx hat kein NFS und keinen Gastzugang. Bei einer frischen Installation ist SMB an und die anderen Dienste sind aus. Welcher Benutzer welchen Dienst nutzen darf, wird pro Benutzer oder Gruppe festgelegt (siehe [Berechtigungen](https://pithyx.org/de/docs/admin/permissions/)); welche Ordner ein Dienst anbietet, wird pro Ordner festgelegt ([Freigegebene Ordner](https://pithyx.org/de/docs/admin/shared-folders/)). Ein Benutzer, dessen Passwort Pithyx für SMB und SFTP noch nicht kennt, muss sich einmal im Web anmelden, oder ein Administrator setzt ein neues Passwort. ### SMB Schalte **Freigegebene Ordner über SMB anbieten** ein; die Standard-Arbeitsgruppe ist `WORKGROUP` (1 bis 15 Zeichen: Buchstaben, Ziffern, Punkt, Bindestrich, Unterstrich, beginnend mit einem Buchstaben oder einer Ziffer; wird in Großbuchstaben gespeichert). SMB stellt Windows, macOS und Linux Netzlaufwerke auf Port 445 bereit. Es werden nur signierte Verbindungen aktueller Systeme (SMB 3) akzeptiert, verschlüsselt, wenn der Client es verlangt, und immer verschlüsselt bei freigegebenen Ordnern mit **Verschlüsselung über SMB verlangen** (siehe [Freigegebene Ordner](https://pithyx.org/de/docs/admin/shared-folders/#verschl%C3%BCsselung-%C3%BCber-smb)); Gäste werden abgelehnt, und NetBIOS ist aus. Pithyx schreibt `/etc/samba/smb.conf` bei jeder Änderung selbst; eigene Samba-Einstellungen gehören in `/etc/samba/pithyx.local.conf`, die Pithyx einbindet und nie beschreibt. Die Datei wird mit `testparm` geprüft, bevor Samba neu lädt. Verbinde dich im Windows-Explorer mit `\\\`, unter macOS oder Linux mit `smb://`. Die Box macht sich im Netzwerk nicht bekannt (kein WS-Discovery, kein mDNS), daher verbinden sich Clients über die Adresse. Gelöschtes geht in den Papierkorb, und die täglichen Wiederherstellungspunkte erscheinen in Windows als „Vorgängerversionen“. Ändert sich der Zugriff eines Benutzers (ein Recht auf einen freigegebenen Ordner, eine Gruppenmitgliedschaft), beendet Pithyx seine offenen SMB-Verbindungen. Der Computer verbindet sich innerhalb von Sekunden von selbst neu und hat sofort die neuen Rechte; Dateien, die der Benutzer über SMB offen hatte, werden geschlossen, wie nach einem kurzen Netzwerkausfall. ### SFTP Schalte **Freigegebene Ordner über SFTP anbieten** ein. Es ist verschlüsselte Dateiübertragung über SSH, zum Beispiel mit FileZilla, WinSCP oder dem Befehl `sftp`: `sftp://`. Benutzer sehen nur ihre freigegebenen Ordner und bekommen keine Shell. SFTP nutzt das `sshd` des Systems über eine Drop-in-Datei, nur mit Passwort-Anmeldung. Das Ausschalten von SFTP hindert nur Pithyx-Benutzer daran, hereinzukommen; SSH für andere Konten wird nicht gestoppt. Das Einschalten führt `systemctl enable --now ssh.service` aus. Die sshd-Konfiguration wird mit `sshd -t` geprüft und zurückgesetzt, wenn sie abgelehnt wird. SSH mit einer Shell ist ein eigener Schalter, siehe [Sicherheit](https://pithyx.org/de/docs/admin/security/#ssh). ### WebDAV Wird vom Daemon selbst unter `/webdav/` auf der Webadresse der Box angeboten (`https://:7484/webdav/`), mit Basic-Authentifizierung über Pithyx-Name und -Passwort. Die Wurzel listet die freigegebenen Ordner, die der Benutzer nutzen darf; Gelöschtes geht in den Papierkorb. Ein Benutzer braucht das WebDAV-Recht und den Ordnerschalter **Über WebDAV anbieten**. > **Noch keine Verschlüsselung:** > > WebDAV läuft über das HTTPS der Box. Programme, die Zertifikate prüfen (Windows, macOS), verbinden sich, sobald das Gerät dem Root-Zertifikat der Box vertraut; siehe [Zertifikate](https://pithyx.org/de/docs/admin/certificates/). ### FTP Für Geräte und Programme, die weder SFTP noch WebDAV kennen, etwa Scanner. **Freigegebene Ordner über FTP mit TLS anbieten** nutzt explizites FTPS (`AUTH TLS`); es zeigt das Zertifikat der Box (siehe [Zertifikate](https://pithyx.org/de/docs/admin/certificates/)), und die Seite zeigt dessen SHA-256-Fingerabdruck. **Auch unverschlüsseltes FTP erlauben** ist standardmäßig aus und trägt eine Warnung; wird es wieder ausgeschaltet, enden unverschlüsselte Sitzungen. - Steuerport 21, passive Datenports 50000 bis 50099. Nur der passive Modus funktioniert (`PORT` und `EPRT` werden mit „502 Only passive mode“ beantwortet). - Leerlauf-Zeitlimit 10 Minuten, Daten-Zeitlimit 30 Sekunden. - Fehlgeschlagene Anmeldungen sind auf 5 pro Benutzer und 30 pro Adresse in 5 Minuten begrenzt. ### Grenzen - Nur SMB 3; ältere Clients können sich nicht verbinden. - SFTP akzeptiert nur Passwörter. - Rechte lassen sich nicht von einem Client aus ändern (SMB-ACL-Änderungen werden ignoriert). - Anmeldungen über Protokolle nutzen keine Zwei-Faktor-Anmeldung. - Die Box wird im Netzwerk nicht bekannt gemacht (kein WS-Discovery, kein mDNS). ## Netzwerk > Netzwerkkarten, statische Adressen, Bonds, VLANs, DNS und die Bestätigung nach 60 Sekunden, die dich davor schützt, dich auszusperren. Source: https://pithyx.org/de/docs/admin/network/ Markdown: https://pithyx.org/de/docs/admin/network.md Einstellungen > **Netzwerk** (nur für Administratoren) zeigt die Netzwerkkarten der Box und ändert ihre Adressen, Bonds, VLANs, den Hostnamen, die Nameserver und die Standardroute. Jede Änderung wartet 60 Sekunden auf deine Bestätigung und wird ohne sie von selbst zurückgenommen, sodass eine falsche Adresse dich nicht aussperren kann. Wenn du dich doch aussperrst, setzt das Konsolenmenü auf der Box selbst das Netzwerk zurück. ### Karten und Adressen Die Seite listet Netzwerkkarten, Bonds und VLANs mit ihrem Zustand (Verbunden, Kein Kabel, Aus), der IPv4-Methode (Automatisch (DHCP), Statisch, Aus, Außerhalb von Pithyx eingestellt), Adressen, Gateway, Nameservern, Hardware-Adresse, MTU, Geschwindigkeit und Duplex. Eine Karte ohne Einstellungen nutzt DHCP. Pro Schnittstelle kannst du sie ein- oder ausschalten, IPv4 per DHCP, statisch oder aus wählen sowie IPv6 automatisch (Router und DHCPv6), statisch oder aus. Eine statische Adresse wird mit ihrer Präfixlänge geschrieben, zum Beispiel `192.168.1.10/24` oder `2001:db8::10/64`; das Gateway ist optional und muss im Netzwerk liegen. Die MTU liegt zwischen 1280 und 9000 (576 bis 9000 bei ausgeschaltetem IPv6); leer bedeutet 1500. **Zurück zu DHCP** entfernt die eigenen Einstellungen einer Karte. Änderungen werden als Entwurf gesammelt („Noch nicht angewendete Änderungen“) und gemeinsam mit **Anwenden …** übernommen oder mit **Änderungen verwerfen** verworfen. Pithyx lehnt eine Änderung ab, die die Box ohne jede Schnittstelle mit Adresse zurückließe ([`network.config.unreachable`](https://pithyx.org/de/docs/reference/errors/#network.config.unreachable)). Pithyx schreibt dafür Dateien für systemd-networkd und systemd-resolved; es gibt keine Einstellung für WLAN oder Bridge. Die Firewall stellst du bei den Dateidiensten ein (siehe [Sicherheit](https://pithyx.org/de/docs/admin/security/#offene-ports)). ### Bonds **Bond hinzufügen** fasst mindestens eine Karte zusammen (Karten mit eigenen Einstellungen müssen vorher zurück zu DHCP) und zwar in einem Modus: - **Active-Backup**: Eine Karte trägt den Verkehr, eine andere übernimmt, wenn ihr Kabel ausfällt. Funktioniert mit jedem Switch; du kannst eine primäre Karte wählen. - **LACP (802.3ad)**: alle Karten gemeinsam; die Switch-Ports müssen eine LACP-Gruppe bilden. Die LACP-Rate ist Langsam (alle 30 Sekunden) oder Schnell (jede Sekunde). - **Adaptiver Lastausgleich**: Alle Karten senden und empfangen ohne Hilfe des Switches. Namen von Bonds und VLANs haben bis zu 15 Kleinbuchstaben, Ziffern, Punkte, Bindestriche oder Unterstriche, beginnen mit einem Buchstaben und dürfen nicht mit einem Präfix beginnen, das Docker, die Netzwerke der Apps, Container oder VPNs nutzen: `px-`, `veth`, `docker`, `br-`, `ve-`, `vb-`, `vz-`, `vt-`, `virbr`, `tun`, `tap` oder `wg`. ### VLANs **VLAN hinzufügen** braucht ein Elternteil (eine Karte oder einen Bond) und eine VLAN-ID von 1 bis 4094, so wie der Switch-Port sie markiert (802.1Q). ### DNS, Suchdomains und die Standardroute Die Karte „Hostname und Nameserver“ enthält: - **Hostname**: Buchstaben, Ziffern und Bindestriche, 1 bis 63 Zeichen, kein Bindestrich am Anfang oder Ende. Windows-Netzwerke sehen die ersten 15 Zeichen. - **Nameserver**: bis zu 4. Leer nutzt die, die DHCP bekannt gibt; gesetzte ersetzen sie. - **Suchdomains**: bis zu 6. - **Standardroute über**: Automatisch oder eine gewählte Schnittstelle, die eingeschaltet ist und Einstellungen und ein Gateway hat. ### Der Bestätigungs-Timer ![Einstellungen, Netzwerk, mit dem Banner Noch 54 Sekunden, um die neuen Netzwerkeinstellungen zu behalten und den Knöpfen Behalten und Jetzt rückgängig machen](../../../../../assets/screenshots/network-confirm.de.webp) _Nach Anwenden zählt die Seite herunter. Ohne Behalten kehrt die Box zu den vorherigen Einstellungen zurück._ Nach **Anwenden …** zeigt ein Banner „Noch {seconds} Sekunden, um die neuen Netzwerkeinstellungen zu behalten“ mit **Behalten** und **Jetzt rückgängig machen**. Ohne Bestätigung innerhalb von 60 Sekunden, nach **Jetzt rückgängig machen**, nach einem fehlgeschlagenen Anwenden ([`network.apply.failed`](https://pithyx.org/de/docs/reference/errors/#network.apply.failed)) oder nach einem Neustart des Daemons kommen die vorherigen Einstellungen zurück. Es kann immer nur eine Änderung warten. Wenn die Seite nicht mehr antwortet, weil sich die Adresse geändert hat, öffne die Box unter ihrer neuen Adresse und behalte die Änderung dort; der Dialog listet die Adressen auf. > **Note:** > > Backups enthalten keine Netzwerkeinstellungen (siehe [Backup und Wiederherstellung](https://pithyx.org/de/docs/admin/backup/)), weil Karten auf anderer Hardware anders heißen. ### Ausgesperrt: das Konsolenmenü Auf dem eigenen Bildschirm der Box zeigt die Konsole die Adressen und ein Menü, das kein Passwort braucht, weil der physische Zugang der Beweis ist: - `[s]` Eine statische Adresse setzen: Kartennummer, Adresse mit Präfixlänge, Gateway (leer für keines) und Nameserver (leer behält sie). Es gilt derselbe 60-Sekunden-Timer. - `[r]` Das Netzwerk auf DHCP zurücksetzen: Nach „Reset every network card to DHCP and remove bonds, VLANs and name servers? [y/N]“ geht jede Karte zurück auf DHCP. Der Hostname bleibt. Kein Timer. - Solange eine Änderung wartet: `[k]` behalten, `[u]` rückgängig machen. Von der Konsole aus lassen sich nur statische IPv4-Adressen setzen. ## Sicherheit > Transport, offene Ports, physischer Zugriff, SSH, Zwei-Faktor-Anmeldung, der Wiederherstellungsschlüssel und was die Box verlässt. Source: https://pithyx.org/de/docs/admin/security/ Markdown: https://pithyx.org/de/docs/admin/security.md Pithyx behält alles auf der Box: keine Telemetrie, kein Cloud-Konto, kein Nach-Hause-Telefonieren. Der Web-Desktop spricht HTTPS mit einem Zertifikat der eigenen Zertifizierungsstelle der Box. Diese Seite behandelt Transport, offene Ports, physischen Zugriff, SSH, Zwei-Faktor-Anmeldung, den Wiederherstellungsschlüssel und die wenigen Verbindungen, die die Box von sich aus aufbaut. ### HTTPS und Zertifikate Die Box liefert den Desktop und WebDAV unter `https://:7484` aus, über TLS 1.2 oder 1.3 mit HTTP/2. Die Ports 80 und 443 leiten dorthin um, außer für die Domains des [Reverse Proxys](https://pithyx.org/de/docs/admin/reverse-proxy/), und eine Anfrage mit reinem `http://` auf 7484 wird auf `https://` am selben Port umgeleitet. Die Box ist ihre eigene Zertifizierungsstelle, deshalb warnt ein Browser vor ihrem Zertifikat, bis das Gerät dem Root-Zertifikat der Box vertraut: Lade es unter Einstellungen > **Zertifikate** herunter und installiere es einmal pro Gerät (siehe [Zertifikate](https://pithyx.org/de/docs/admin/certificates/)). FTP über TLS zeigt dasselbe Zertifikat. Die Zertifizierungsstelle darf nur lokale Namen und private Adressen signieren, außer ein Administrator legt eine ohne diese Grenze an. Ein Gerät, das ihr vertraut, akzeptiert von der Box also nie ein Zertifikat für eine öffentliche Website. Die Box sendet keinen HSTS-Header: Browser lassen niemanden an einer Zertifikatswarnung vorbei, wenn ein Host HSTS nutzt, und das Zertifikat der Box ist so lange nicht vertrauenswürdig, bis ein Gerät ihrem Root-Zertifikat vertraut. Das Sitzungs-Cookie ist `HttpOnly`, `SameSite=Strict` und `Secure`. Anfragen, die etwas ändern, brauchen den Header `X-Pithyx-Request`. SMB 3 und SFTP verschlüsseln ihren Verkehr selbst. Die einzige Ausnahme ist das Live-System des Installers: Es spricht reines HTTP, weil es noch kein Zertifikat hat und nach keinem Passwort fragt. ### Offene Ports Pithyx hat eine Firewall, die nur die Weboberfläche und die eingeschalteten Dateidienste hereinlässt, über IPv4 und IPv6: der Web-Desktop und WebDAV auf 7484, 80 und 443 für die Umleitung und den Reverse Proxy, die Ports aktiver Streams des Reverse Proxys, SMB auf 445 (ab dem ersten Start an), SFTP und SSH auf 22, FTP auf 21 mit den passiven Ports 50000 bis 50099. Schaltest du einen Dienst unter Einstellungen > **Dateidienste** aus, ist auch sein Port zu. Alles andere wird verworfen, außer Antworten auf eigene Verbindungen der Box, DHCP-Antworten und den üblichen ICMP-Nachrichten (darunter Ping) sowie denen, die IPv6 braucht. Die Backends der Apps veröffentlichen gar keine Ports. Mit **Nur private Netze dürfen die Dateidienste nutzen** (Abschnitt **Firewall** auf derselben Seite, standardmäßig aus) antworten SMB, SFTP, SSH und FTP nur Computern in privaten Netzen (10.x, 172.16 bis 31.x, 192.168.x, Link-local und IPv6-ULA); die Weboberfläche bleibt in jedem Fall erreichbar. Lass es aus, wenn du die Box über einen Router aus einem anderen Netz oder über ein VPN mit öffentlichen Adressen erreichst. Lassen sich die Regeln nicht anwenden, ist die Einstellung trotzdem gespeichert, und der Fehler ist [`network.firewall.failed`](https://pithyx.org/de/docs/reference/errors/#network.firewall.failed). Pithyx bietet keinen eigenen Fernzugriff; lass die Box hinter einem Router und erreiche sie von außen lieber über ein VPN, statt diese Ports weiterzuleiten. ### Physischer Zugriff Wer die Konsole der Box bedienen kann, vor Ort oder über die Fernwartung (BMC, IPMI), kann root werden: Das Bootmenü hat kein Passwort, und die Systemplatte ist nicht verschlüsselt. Ein Passwort an der Konsole würde also nichts schützen, deshalb fragen das Konsolenmenü und das [Recovery-Menü](https://pithyx.org/de/docs/install/updates/#das-recovery-men%C3%BC) nach keinem und lassen dich nur bestätigen, was du tust. An der Konsole gibt es überhaupt keine Anmeldung: tty1 zeigt nur das Konsolenmenü, die anderen Konsolen sind abgeschaltet, und root bleibt gesperrt. Stell die Box dort auf, wo Fremde nicht hinkommen, und sichere ihre Fernwartung. Jede Box schreibt bei der Installation ihre eigene ZFS-Host-ID, damit zwei vom selben Stick installierte Boxen nie als dasselbe System gelten. Ein Pool von vor einer Neuinstallation gilt deshalb als von einem anderen System benutzt und braucht den erzwungenen Import (siehe [Wiederherstellung](https://pithyx.org/de/docs/install/recovery/#die-pools-wieder-importieren)). Pool-Verschlüsselung gibt es in dieser Version nicht; der Speicher-Assistent sagt, sie kommt mit dem Schlüsseltresor. Ein Schlüssel in einem Tresor auf der Systemplatte schützt nur gegen gestohlene Platten, nicht gegen jemanden, der die ganze Box oder ihre Konsole hat. ### SSH SSH ist standardmäßig aus. Zwei getrennte Schalter auf der Seite **Dateidienste**: - **Freigegebene Ordner über SFTP anbieten**: nur Dateiübertragung, keine Shell. - **SSH-Anmeldungen** mit dem Schalter **Benutzer mit dem Recht zur SSH-Anmeldung mit einer Shell anmelden lassen**. Benutzer mit dem Recht „Über SSH mit einer Shell anmelden“ bekommen eine Shell mit ihren eigenen Rechten, mit Passwort oder öffentlichem Schlüssel, ohne Weiterleitung, Tunnel oder X11. Eine Shell erreicht mit den Rechten des Benutzers das ganze System, daher gib das Recht nur Leuten, die es brauchen. Das Ausschalten eines der beiden stoppt SSH für die eigenen Konten des Systems nie; Pithyx hält `sshd` nie an. Eine Anmeldung mit Shell begrüßt dich mit dem Pithyx-Logo, der Version und einem Hinweis, dass Änderungen von Hand in der Shell die Box beschädigen oder von Pithyx oder einem Update rückgängig gemacht werden können (vorerst auf Englisch). Die Host-Schlüssel entstehen beim ersten Start und gehören zum Konfigurationsbackup. Der Administrator, den du im Installer angelegt hast, ist in der Gruppe `sudo` und bekommt mit `sudo` und seinem eigenen Passwort root (er muss sich seit der Installation einmal an der Weboberfläche angemeldet haben, damit das System das Passwort kennt). Andere Administratoren bekommen kein `sudo`. Root selbst bleibt gesperrt; was du damit machst, entscheidest du. `sudo`, `nano`, `htop`, `curl`, `wget` und `git` sind installiert. ### Zwei-Faktor-Anmeldung Jeder Benutzer kann die Zwei-Faktor-Anmeldung (TOTP) im Kontomenü unter **Zwei-Faktor-Authentifizierung** einschalten: den QR-Code scannen oder den Schlüssel eingeben, einen Code eingeben, **Einschalten** wählen und die 10 Wiederherstellungscodes aufbewahren, die einmal angezeigt werden; jeder gilt einmal. Die Codes nutzen SHA-1, 6 Stellen und 30 Sekunden. Gib bei der Anmeldung den Code ein oder wähle „Stattdessen einen Wiederherstellungscode verwenden“; die Abfrage ist 5 Minuten gültig. Zum Ausschalten braucht es das Passwort. Nach 5 fehlgeschlagenen Versuchen für einen Benutzer von einer Adresse oder 30 von einer Adresse in 5 Minuten werden weitere Versuche eine Zeit lang abgelehnt. Sitzungen enden nach 7 Tagen ohne Nutzung oder nach insgesamt 30 Tagen. SMB, SFTP, WebDAV und FTP nutzen nur das Passwort. ### Der Wiederherstellungsschlüssel Die Ersteinrichtung zeigt den Wiederherstellungsschlüssel einmal an (`PTHX-` gefolgt von 26 Zeichen). Er ist der einzige Weg, das Administratorpasswort zurückzusetzen. Wähle dazu auf der Anmeldeseite „Passwort vergessen?“ und gib dann den Schlüssel, den Benutzernamen eines Administrators und ein neues Passwort ein. Das meldet diesen Benutzer überall ab, schaltet seine Zwei-Faktor-Anmeldung aus und stellt einen neuen Wiederherstellungsschlüssel aus; der alte wird ungültig. Es gibt einen Schlüssel für die ganze Box, und er gehört zum Konfigurationsbackup. Ohne den Schlüssel und das Passwort muss das System neu installiert werden. Andere Benutzer bitten einen Administrator um ein neues Passwort. ### Was die Box verlässt Die Box schickt keine Daten an das Pithyx-Projekt. Das sind die ausgehenden Verbindungen, die Pithyx selbst aufbaut: - **Systemupdates**: einmal am Tag zu einer Zeit, die jede Box zufällig wählt (abschaltbar mit **Täglich nach Updates suchen** unter Einstellungen > **Updates**), und bei **Jetzt prüfen** liest die Box die Kanaldatei ihrer Update-Quelle (standardmäßig die Releases des Projekts auf GitHub) und die Paketlisten von Debian von `deb.debian.org`. Ein Update, das du installierst, lädt seine Datei von derselben Quelle. Siehe [Systemupdates](https://pithyx.org/de/docs/install/updates/). - **App-Kataloge**: Git über HTTPS oder SSH zu jedem aktivierten Katalog-Repository (der offizielle und der Community-Katalog sind an und werden standardmäßig von GitHub abgerufen), einmal täglich zur eingestellten Zeit mit einer zufälligen Verzögerung von bis zu einer Stunde, wenn du einen Katalog hinzufügst, und bei **Jetzt prüfen**. Schalte einen Katalog aus, um das zu beenden. - **Container-Images** von Katalog-Apps aus der Registry, die der Katalog nennt, außer das Paket bringt sie mit. - **Zeit**: Ist **Zeitserver** unter Einstellungen > **Regionale Einstellungen** leer, nutzt die Box die Debian-Vorgaben über systemd-timesyncd, das öffentliche Zeitserver kontaktiert. - **Apps**, denen du die Berechtigung „Internet“ erlaubst, bekommen ein zweites Netzwerk mit ausgehendem Zugriff ins Internet; andere Apps haben keines. Geräte in deinem lokalen Netzwerk erreichen nur Apps mit der Berechtigung „Lokales Netzwerk“. Logs bleiben auf der Box unter `/var/log/pithyx/`. Geheimnisse werden in Logs maskiert. Passwörter werden als Argon2id-Hashes gespeichert. ## Apps und der Store > Apps aus Katalogen oder einer Datei installieren, den App-Pool wählen, Update-Regeln festlegen und wie Backends in Docker laufen. Source: https://pithyx.org/de/docs/admin/apps-and-store/ Markdown: https://pithyx.org/de/docs/admin/apps-and-store.md Nur Administratoren installieren Apps, in der App Store. Eine App ist ein Frontend, das der Daemon ausliefert, plus optional ein Backend aus Containern. Apps kommen aus Katalogen (Git-Repositorys mit einem signierten Index) oder aus einer Paketdatei (`.pithyxapp`). Alle App-Daten liegen auf einem Pool, den du bei der ersten Installation wählst, nie auf der Systemplatte. ### Der Store Der Store hat den Tab **Installiert**, **Updates**, solange Updates warten (mit ihrer Zahl), **Offiziell** und **Community**, solange dieser Katalog an ist, und **Eigene**, sobald du einen eigenen Katalog hinzugefügt hast, und ein Zahnrad für die **Store-Einstellungen**. Offizielle Apps werden vom Pithyx-Projekt geprüft, gebaut und signiert; Community-Apps stammen von Entwicklern außerhalb des Projekts und werden vom Projekt geprüft, bevor sie veröffentlicht werden; **Eigene** zeigt Apps von Katalogen, die du hinzugefügt hast und die das Projekt nicht prüft. Die Abzeichen lauten „Pithyx“, „Community“ und „Nicht geprüft“ (auch für Apps, die aus einer Datei installiert wurden). Die Suche umfasst Name, Beschreibung und Entwickler. Benutzer öffnen installierte Apps über das Pithyx-Menü; siehe [Apps](https://pithyx.org/de/docs/user/apps/). ### Aus einer Datei installieren Wähle **Aus Datei installieren** im Tab **Installiert** (oder **Aus Datei aktualisieren** in den Details einer App) und wähle ein Paket. Der Dialog listet die Berechtigungen auf, die die App anfordert, die Ordner, die sie braucht, ob sie ein Backend mitbringt, eine Warnung, wenn ein Container als root läuft, besondere Rechte, **Wer sie nutzen darf** und **Pool für App-Daten**. Bei einem Paket aus einer Datei warnt er: „Dieses Paket stammt aus einer Datei und ist nicht geprüft.“ Grenzen eines Uploads: die Datei höchstens 256 MB, entpackt höchstens 512 MB und 10 000 Einträge, das Manifest höchstens 64 KB ([`app.package.too_large`](https://pithyx.org/de/docs/reference/errors/#app.package.too_large)). Ein geprüftes Paket wartet 15 Minuten auf deine Bestätigung. Die IDs `org.pithyx.*` werden aus Dateien abgelehnt. Eine Version kann installiert, aktualisiert, neu installiert (ersetzt ihre Dateien) oder herabgestuft werden; ein Herabstufen kann abgelehnt werden ([`app.package.downgrade_unsupported`](https://pithyx.org/de/docs/reference/errors/#app.package.downgrade_unsupported)), nutze dann **Zurück zur vorigen Version**. **Deinstallieren** verlangt von dir, **Daten behalten** (eine erneute Installation findet sie wieder, mit der Benutzer-ID der App; der Installationsdialog sagt das dann) oder **Daten löschen** (Datenbanken, Einstellungen, Dateien und Snapshots; nicht umkehrbar) zu wählen. Freigegebene Ordner, die in die App eingebunden sind, bleiben in beiden Fällen. Das Deaktivieren einer App („Nutzer können die App öffnen“ aus) behält ihre Daten und ihren Zugriff. Eine App fragt nach Speicher; du ordnest jeden angeforderten Ordner einem Ordner in einem freigegebenen Ordner zu, schreibgeschützt oder mit Lesen und Schreiben: Wähle den freigegebenen Ordner, öffne den gewünschten Ordner (oder lege ihn mit **Neuer Ordner** dort an) und speichere; der freigegebene Ordner selbst geht auch. Erforderliche müssen zugeordnet sein, sonst startet das Backend nicht. Der Installationsdialog bietet die Zuordnung als letzten Schritt an und zeigt **App öffnen** erst, wenn jeder erforderliche Ordner einen hat; bis dahin sagt das Fenster der App, dass sie auf einen Ordner wartet. Der Schalter „Debug-Meldungen an das Protokoll-Center senden“ schaltet das Debug-Logging für eine App ein. ### Der App-Pool Bei der ersten Installation wählst du **Pool für App-Daten**: „Alle Apps speichern ihre Daten auf diesem Pool. Er lässt sich nicht ändern, solange eine App installiert ist.“ Ohne Pool sagt der Store, dass du zuerst in Speicher einen anlegen sollst. Der Pool muss importiert, online (oder degradiert), beschreibbar, entsperrt und von Pithyx eingerichtet sein. Jede App bekommt ein Dataset `/pithyx/apps/`, eingehängt unter `//.pithyx/apps/`. Das Datenverzeichnis von Docker ist `//.pithyx/docker`. Fehlt der Pool oder ist er gesperrt, zeigen Apps darauf „Pool nicht verfügbar“, und niemand kann sie öffnen, bis er zurück ist. App-Container laufen mit Benutzer-IDs von 40000 bis 49999. ### Updates und Rollback ![Die Store-Einstellungen mit der Update-Regel Administratoren benachrichtigen, der täglichen Prüfzeit 03:00, dem Kanal Stabil und der Liste der Kataloge](../../../../../assets/screenshots/store-update-settings.de.webp) _Die Store-Einstellungen: was mit neuen Versionen passiert, wann die Box prüft und welchem Kanal sie folgt._ Öffne das Zahnrad, dann **Updates**. Die Regel „Wenn ein Katalog eine neuere Version hat“ ist **Installieren**, **Administratoren benachrichtigen** (Standard) oder **Nichts tun** (das Update wird nur im Tab **Updates** aufgeführt). Ein Update, das neue Berechtigungen oder besondere Rechte verlangt, installiert sich nie von selbst. Die Zeit der täglichen Prüfung ist standardmäßig 03:00 (Zeitzone der Box) plus eine feste zufällige Verzögerung von 0 bis 3600 Sekunden pro Box; **Jetzt prüfen** führt sie sofort aus. Eine App kann in ihren Details einer eigenen Regel folgen. Administratoren bekommen die Benachrichtigungen „App-Updates“ und „Katalog nicht abgerufen“. Vor einem Update legt Pithyx einen Snapshot des Datasets der App an. Startet die neue Version nicht, kommt die alte zurück. **Zurück zu** und die Versionsnummer (zum Beispiel **Zurück zu 1.2.0**) kehrt zur vorigen Version zurück, mit den Daten der App, wie sie vor dem Update waren; seitdem gemachte Änderungen und Snapshots gehen verloren. Es wird nur die eine vorige Version aufbewahrt. Der Kanal ist **Stabil** (Versionen, die die Eigentümer der Kataloge freigegeben haben, Standard) oder **Beta** (jede neue Version, sobald ein Katalog sie veröffentlicht, vor ihrer Freigabe). ### Kataloge und Vertrauen Der offizielle und der Community-Katalog sind standardmäßig beide an; der Tab **Community** sagt, dass seine Apps von Entwicklern außerhalb des Projekts stammen, vom Projekt geprüft, aber nicht wie eigene verbürgt. Schalte den Community-Katalog in den Store-Einstellungen aus, wenn du nur offizielle Apps willst; das erneute Einschalten fragt „Community-Katalog nutzen?“. Keiner von beiden lässt sich entfernen ([`store.catalog.built_in`](https://pithyx.org/de/docs/reference/errors/#store.catalog.built_in)). Um einen eigenen hinzuzufügen, gib eine **URL des Repositorys** ein: `https://...` für einen öffentlichen Katalog oder `git@host:owner/repository.git` für einen privaten (keine Zugangsdaten in der URL, höchstens 500 Zeichen; [`store.catalog.url_invalid`](https://pithyx.org/de/docs/reference/errors/#store.catalog.url_invalid)). Für einen privaten Katalog über SSH erzeugt die Box einen ed25519-Deploy-Key und zeigt seine öffentliche Zeile; füge sie dem Repository als schreibgeschützten Deploy-Key hinzu und wähle **Jetzt abrufen**. Der Host-Schlüssel des Servers wird bei der ersten Verbindung festgehalten. Ein Abruf bricht nach 3 Minuten ab. Der Abrufstatus ist Aus, Noch nicht abgerufen, Aktuell, Abruf fehlgeschlagen oder Wird abgerufen; ein fehlgeschlagener Abruf behält die letzte geprüfte Kopie. Die Indizes des offiziellen und des Community-Katalogs tragen eine Ed25519-Signatur, die gegen im Daemon eingebaute Schlüssel geprüft wird, und der Hash jeder Datei wird geprüft. Eigene Kataloge sind unsigniert: „Apps aus deinen eigenen Katalogen prüft das Pithyx-Projekt nicht. Füge nur Kataloge hinzu, denen du vertraust.“ Die IDs `org.pithyx.*` kommen nur aus dem offiziellen Katalog. ### Backends und Docker Ein Backend ist eine Compose-Teilmenge mit Images, die per Digest festgelegt sind, geprüft gegen eine feste Allowlist. Die Box betreibt es in Docker (`docker.io` von Debian), das der Daemon nur startet, solange eine App mit Backend installiert und ihr Pool verfügbar ist. Container laufen in einem User-Namespace, in einem eigenen internen Netzwerk ohne Internet, außer die App hat die Berechtigung „Internet“, und erreichen keine Dienste des Hosts. Andere Geräte in deinem Netzwerk (Router, Drucker, andere Server) erreichen sie nur mit der Berechtigung „Lokales Netzwerk“; „Internet“ allein schließt sie nicht ein. Container, die nicht als root laufen, haben keine Linux-Capabilities. Pithyx 1.0.0 lehnt den Docker-Socket und Rechte für den ganzen Host ab ([`app.elevated.unsupported`](https://pithyx.org/de/docs/reference/errors/#app.elevated.unsupported)). Ein Container als root ist nur erlaubt, wenn die App es angibt, und der Installationsdialog warnt davor. Ein Backend mit dem Lifecycle `always` läuft, wann immer es kann; `onDemand` startet, wenn ein Benutzer die App öffnet (eine Anfrage wartet bis zu 30 Sekunden), und hält 10 Minuten nach dem Schließen des letzten Fensters an. Ein fehlgeschlagener Start wird nach 1 Minute wiederholt. Die Ausgabe der Container geht ins Protokoll-Center als Quelle `app/`. ## Reverse Proxy > Proxy-Hosts und Weiterleitungs-Hosts auf den Ports 443 und 80 nach Domain, mit Zertifikaten, Zugriffsregeln und der Pithyx-Anmeldung, sowie TCP- und UDP-Streams. Source: https://pithyx.org/de/docs/admin/reverse-proxy/ Markdown: https://pithyx.org/de/docs/admin/reverse-proxy.md Der eingebaute Reverse Proxy macht andere Dienste unter eigenen Domains auf den Ports 443 und 80 erreichbar: Eine Anfrage für `media.home.arpa` geht an den Dienst dahinter, mit einem Zertifikat für diesen Namen. Die Box selbst bleibt auf Port 7484; jeder Name, den du nicht eingerichtet hast, geht wie bisher dorthin (oder bekommt 404, wenn du das wählst). Streams leiten einen TCP- oder UDP-Port der Box an einen anderen Host weiter. Alles liegt unter Einstellungen > **Reverse Proxy** (nur Administratoren), gilt ab der nächsten Anfrage ohne Neustart und ist Teil des Konfigurations-Backups. ### Bevor du anfängst Lass jede Domain in deinem DNS-Server oder Router auf die Box zeigen (ein A- oder AAAA-Eintrag mit der Adresse der Box, oder ein Platzhalter-Eintrag für `*.apps.home.arpa`). Der Proxy beantwortet nur Namen, die ihn erreichen. Ohne HTTPS auf der Box (Entwicklung oder Simulation) antwortet er nur mit einfachem HTTP, und ein Entwicklungs-Daemon lauscht auf den Proxy-Ports nur, wenn `PITHYX_DEV_PROXY_PORTS` sie nennt. ### Proxy-Hosts **Proxy-Host hinzufügen** öffnet die Einstellungen eines Hosts: - **Domains**: bis zu 50 Namen, getrennt durch Kommas oder Leerzeichen. Ein führendes `*.` deckt eine beliebige Ebene davor ab (`*.apps.home.arpa` beantwortet `photos.apps.home.arpa`, nicht `a.b.apps.home.arpa`); ein genauer Name gewinnt gegen einen Platzhalter. Ein Name gehört nur zu einem Host ([`proxy.domain.taken`](https://pithyx.org/de/docs/reference/errors/#proxy.domain.taken)). Ein ausgeschalteter Host beantwortet nichts; seine Namen gelten als unbekannt. - **Ziel**: Protokoll, Host und Port des Dienstes. Bei `https` wählst du, wie sein Zertifikat geprüft wird: gegen die vertrauenswürdigen Stellen des Systems, gegen die eigene Zertifizierungsstelle der Box (Geräte mit einem Zertifikat aus Einstellungen > **Zertifikate**) oder gar nicht, für ein selbstsigniertes Zertifikat. - **Das Ziel ist ein Dienst auf dieser Box selbst**: nötig für ein Ziel wie `localhost`, den Namen der Box oder eine ihrer Adressen ([`proxy.target.on_box`](https://pithyx.org/de/docs/reference/errors/#proxy.target.on_box)), zum Beispiel um die Weboberfläche auf 7484 unter einer Domain zu erreichen. Die Ports 80 und 443 der Box werden immer abgelehnt, weil die Anfrage wieder beim Proxy ankäme ([`proxy.target.loop`](https://pithyx.org/de/docs/reference/errors/#proxy.target.loop)). - **WebSockets weiterleiten**: standardmäßig an; ausgeschaltet bekommen Upgrades 403 ([`proxy.websockets.disabled`](https://pithyx.org/de/docs/reference/errors/#proxy.websockets.disabled)). Antworten fließen ungepuffert durch, Server-Sent Events und große Downloads kommen also beim Browser an, sobald sie entstehen. Mit Zielen spricht der Proxy HTTP/1.1. #### HTTPS - **Zertifikat**: **Von der Zertifizierungsstelle der Box** stellt im Speicher ein Zertifikat für die Domains des Hosts aus (397 Tage, erneuert 30 Tage vor dem Ende und immer, wenn sich die Zertifizierungsstelle ändert). Jede Domain muss im Bereich der Zertifizierungsstelle liegen ([`tls.name.not_permitted`](https://pithyx.org/de/docs/reference/errors/#tls.name.not_permitted)); deine eigene Domain nimmst du mit einer neuen Zertifizierungsstelle in Einstellungen > **Zertifikate** in den Bereich auf. **Eigenes hochladen** nimmt ein Zertifikat mit Kette und unverschlüsseltem Schlüssel im PEM-Format, das jede Domain abdeckt ([`proxy.certificate.name_mismatch`](https://pithyx.org/de/docs/reference/errors/#proxy.certificate.name_mismatch)), zum Beispiel eines für eine öffentliche Domain. Ein abgelaufener oder kaputter Upload wird durch das eigene Zertifikat der Box ersetzt, und der Host zeigt **Kein Zertifikat**, wenn er keines hat. - Die Box wählt das Zertifikat nach dem Namen, den der Browser beim TLS-Handshake nennt, auf 443 und auf 7484; ein Name ohne Host bekommt das Zertifikat der Box. - **HTTP auf HTTPS umleiten** (standardmäßig an) beantwortet einfaches HTTP auf 80 mit einer Umleitung auf 443 (301 für GET und HEAD, sonst 308). Ausgeschaltet antwortet der Host auch auf 80. - **HTTP/2 anbieten** (standardmäßig an) lässt Browser auf 443 HTTP/2 nutzen. - **HSTS senden** setzt `Strict-Transport-Security: max-age=31536000` auf HTTPS-Antworten. > **HSTS:** > > Mit HSTS lehnt ein Browser für den Namen ein Jahr lang einfaches HTTP und jede Zertifikatswarnung ab, auch wenn du es wieder ausschaltest. Nutze es nur mit einem Zertifikat, dem jedes Gerät vertraut. #### Zugriff Der Proxy prüft in dieser Reihenfolge: die erlaubten und gesperrten Adressen, Basic Auth, dann die Pithyx-Anmeldung. - **Erlaubte Adressen** und **Gesperrte Adressen**: IP-Adressen oder Bereiche wie `192.168.1.0/24`. Eine gesperrte Adresse kommt nie herein; mit erlaubten Adressen nur diese ([`proxy.address.denied`](https://pithyx.org/de/docs/reference/errors/#proxy.address.denied)). Die Box sieht die Adresse, von der die Verbindung kommt. - **Basic Auth**: Benutzer mit einem Passwort, nach dem der Browser vor allem anderen fragt. Passwörter werden als Argon2id-Hashes gespeichert und nie angezeigt; lass das Feld leer, um ein gespeichertes Passwort zu behalten. Fehlversuche zählen zu denselben Grenzen wie fehlgeschlagene Anmeldungen. Das Ziel bekommt den Header `Authorization` nicht. - **Pithyx-Anmeldung verlangen**: Eine Seite des Hosts schickt Besucher ohne Zugang zur Anmeldung der Box, standardmäßig auf dem aufgerufenen Namen und Port 7484 (oder an die **Anmeldeadresse** der Seite). Nach der Anmeldung dort kommt der Browser mit einem Einmal-Ticket (30 Sekunden) zu `/.pithyx/auth` auf dem Host zurück, der ein Cookie des Hosts setzt und zur Seite weitergeht. Anfragen, die keine Seite laden, bekommen 401 ([`proxy.auth.required`](https://pithyx.org/de/docs/reference/errors/#proxy.auth.required)). Das Cookie gehört zur Sitzung auf der Box: Abmelden von der Box, eine widerrufene Sitzung, das verlorene Recht zur Desktop-Anmeldung oder das Entfernen aus den Benutzern und Gruppen des Hosts beendet den Zugang bei der nächsten Anfrage. **Benutzer** und **Gruppen** begrenzen, wer hereinkommt ([`proxy.access.denied`](https://pithyx.org/de/docs/reference/errors/#proxy.access.denied)); ohne beide kommt jeder herein, der sich anmelden darf, Administratoren immer. Das Ziel bekommt den Benutzer in `X-Pithyx-User`, `X-Pithyx-User-Id`, `X-Pithyx-Groups` und `X-Pithyx-Admin`. Der Pfad `/.pithyx/auth` eines solchen Hosts gehört dem Proxy. Benutzer und Gruppen werden mit Namen gespeichert: Nach dem Umbenennen einer Gruppe passe den Host an. > **Note:** > > Die Anmeldung läuft über die Weboberfläche der Box. Erreichst du einen Host von außen nur über 443, setze die **Anmeldeadresse** auf einen Host, der zur Weboberfläche der Box führt, etwa einen Proxy-Host für `nas.example.org` mit dem Ziel `https://localhost:7484`. #### Header - Das Ziel bekommt nie eingehende `X-Pithyx-*`-, `X-Forwarded-*`-, `Forwarded`- oder Trace-Header und auch nicht die eigenen Cookies der Box (`pithyx_*`); eine Antwort kann diese Cookies auch nicht setzen. - **X-Forwarded-For, -Proto und -Host senden** (standardmäßig an) nennt dem Ziel die Adresse des Clients, das Protokoll und den aufgerufenen Namen. - **Den aufgerufenen Namen als Host senden** gibt den `Host` des Browsers weiter; sonst bekommt das Ziel seinen eigenen Host und Port. **Host-Header** setzt stattdessen einen eigenen `Host`. - **Anfrage-Header** und **Antwort-Header**: einer pro Zeile als `Name: Wert`; `Name:` allein entfernt den Header. Header, die der Proxy selbst steuert (`Host`, `Connection`, `X-Forwarded-*`, `X-Pithyx-*`, `Strict-Transport-Security` und andere), werden abgelehnt ([`proxy.header.invalid`](https://pithyx.org/de/docs/reference/errors/#proxy.header.invalid)). #### Grenzen und Protokoll - **Größter Upload in MB**: leer für keine Grenze. - **Verbindungs-Timeout** (1 bis 300 Sekunden, Standard 10) und **Antwort-Timeout** (1 bis 86400 Sekunden, Standard 100: wie lange das Ziel schweigen darf). Ein ruhender WebSocket bleibt bis zu einem Tag offen. Ein unerreichbares Ziel ergibt 502 ([`proxy.target.unavailable`](https://pithyx.org/de/docs/reference/errors/#proxy.target.unavailable)), ein zu langsames 504 ([`proxy.target.timeout`](https://pithyx.org/de/docs/reference/errors/#proxy.target.timeout)). - **Zugriffslog schreiben** (standardmäßig an): jede Anfrage im Log Center unter der Quelle `proxy/`, mit Methode, Name, Pfad (ohne die Abfrage, die Geheimnisse enthalten kann), Status, Dauer, Adresse des Clients und, hinter einer Anmeldung, dem Benutzer. Die Liste zeigt für jeden Host, ob sein Ziel beim Öffnen der Seite geantwortet hat; **Ziel prüfen** schaut noch einmal nach. ### Weiterleitungs-Hosts Ein Weiterleitungs-Host schickt Browser von seinen Domains mit 301, 302, 307 oder 308 zu einer anderen Adresse. Mit **Pfad und Abfrage behalten** geht eine Anfrage für `/a?b=1` an die Zieladresse, gefolgt von `/a?b=1`. Auf 443 zeigt er ein Zertifikat vor wie ein Proxy-Host. ### Namen ohne Host **Namen ohne Host** legt fest, was 443 und 80 mit einem Namen tun, den kein aktiver Host hat: **Auf die Weboberfläche auf Port 7484 umleiten** (Standard, wie ohne Reverse Proxy) oder **Mit „nicht gefunden“ (404) antworten** ([`proxy.host.unknown`](https://pithyx.org/de/docs/reference/errors/#proxy.host.unknown)). Die Prüfung `/api/install-id` des Installers auf Port 80 antwortet immer. ### Streams Ein Stream leitet einen Port der Box, TCP, UDP oder beides, Byte für Byte an einen Host und Port weiter, für Dienste, die kein HTTP sprechen. Die Firewall öffnet den Port, solange der Stream aktiv ist. Die eigenen Ports der Box werden abgelehnt (21, 22, 80, 443, 445, 7484 und die passiven FTP-Ports 50000 bis 50099, [`proxy.stream.port_reserved`](https://pithyx.org/de/docs/reference/errors/#proxy.stream.port_reserved)), ebenso Ports, die ein anderes Programm belegt ([`proxy.stream.port_in_use`](https://pithyx.org/de/docs/reference/errors/#proxy.stream.port_in_use)), und Ports unter 1024, außer du bestätigst sie. Ein UDP-Client behält seine eigene Verbindung zum Ziel, bis er eine Minute lang schweigt; ein Stream nimmt bis zu 512 TCP-Verbindungen und 1024 UDP-Clients gleichzeitig an. ### Sicherheit Der Proxy läuft im Daemon, der als root läuft, und nur Administratoren dürfen Ziele festlegen. Anfragen, die der Proxy selbst geschickt hat, erkennt er und lehnt sie mit 508 ab ([`proxy.loop.detected`](https://pithyx.org/de/docs/reference/errors/#proxy.loop.detected)). Die Einstellungen sind im Konfigurations-Backup als Teil **Reverse Proxy**; hochgeladene Zertifikate kommen mit dem Teil **Zertifikate** (Dateien `proxy-host-.pem` und `.key` neben denen der Box). ### Noch nicht gebaut Lastverteilung mit Health-Checks, Regeln pro Pfad, Ratenbegrenzung und Let's Encrypt kommen später. ## Zertifikate > HTTPS auf 7484, die Box als eigene Zertifizierungsstelle, ihr auf deinen Geräten vertrauen, Zertifikate für andere Geräte und ein eigenes Zertifikat. Source: https://pithyx.org/de/docs/admin/certificates/ Markdown: https://pithyx.org/de/docs/admin/certificates.md Die Box spricht HTTPS auf Port 7484 mit einem Zertifikat ihrer eigenen Zertifizierungsstelle; die Ports 80 und 443 leiten dorthin um, außer für die Domains des [Reverse Proxys](https://pithyx.org/de/docs/admin/reverse-proxy/), die eigene Zertifikate vorzeigen. Installiere das Root-Zertifikat der Zertifizierungsstelle einmal auf jedem Gerät, dann vertraut der Browser der Box, lädt aus seinem Cache, und FTPS-Programme akzeptieren sie. Alles auf dieser Seite findest du unter Einstellungen > **Zertifikate** (nur Administratoren). ### Warum der Browser warnt Beim ersten Öffnen von `https://:7484` warnt der Browser, dass die Verbindung nicht privat ist: Er kennt nicht, wer das Zertifikat der Box signiert hat. Das ist so gewollt. Fahre zur Seite fort, melde dich an und vertraue der Box wie unten beschrieben; danach ist die Warnung auf diesem Gerät weg. Bis dahin behalten Chromium-basierte Browser nichts von der Box in ihrem Cache: Jedes Neuladen lädt den Desktop neu, und jedes App-Fenster lädt seine App neu. ### Der Box auf einem Gerät vertrauen Wähle unter **Dieser Box vertrauen** **Root-Zertifikat herunterladen** (die Datei `pithyx-root-ca.crt`; jeder darf sie herunterladen, auch vor der Anmeldung, unter `/api/system/tls/root-ca.crt`). Bevor du ihr vertraust, vergleiche ihren SHA-256-Fingerabdruck mit dem auf der Seite. Dann: - **Windows**: Öffne die Datei, wähle **Zertifikat installieren**, **Lokaler Computer** und dann den Speicher **Vertrauenswürdige Stammzertifizierungsstellen**. - **macOS**: Öffne die Datei in der Schlüsselbundverwaltung (Schlüsselbund **System**), öffne das Zertifikat und stelle **Vertrauen** auf **Immer vertrauen**. - **iPhone und iPad**: Öffne die Datei in Safari, installiere das Profil unter Einstellungen, Allgemein, VPN und Geräteverwaltung und schalte es unter Einstellungen, Allgemein, Info, Zertifikatsvertrauenseinstellungen ein. - **Android**: Einstellungen, Sicherheit, Verschlüsselung und Anmeldedaten, Zertifikat installieren, CA-Zertifikat, dann die Datei wählen. - **Linux**: Kopiere die Datei nach `/usr/local/share/ca-certificates/` und führe `sudo update-ca-certificates` aus. - **Firefox** hat einen eigenen Speicher: Einstellungen, Datenschutz und Sicherheit, Zertifikate, Zertifikate anzeigen, Zertifizierungsstellen, Importieren, und ihm für Websites vertrauen. ### Die Zertifizierungsstelle Die Zertifizierungsstelle hat zwei Teile: ein Root-Zertifikat (ECDSA P-384, 20 Jahre), dem Geräte vertrauen, und eine Zwischenzertifizierungsstelle (ECDSA P-256, 5 Jahre), die jedes Zertifikat signiert. Die Zwischenstelle erneuert sich ein Jahr vor ihrem Ende selbst; Geräte merken davon nichts, weil sie dem Root-Zertifikat vertrauen. Die erste Zertifizierungsstelle ist per Name Constraints auf lokale Namen und private Adressen begrenzt: die Endungen `local`, `lan`, `home.arpa`, `internal` und `localhost`, den Hostnamen der Box, die Suchdomains des Netzes und die Adressbereiche 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.64.0.0/10, 169.254.0.0/16, 127.0.0.0/8, fc00::/7, fe80::/10 und ::1. Ein Gerät, das dem Root-Zertifikat vertraut, akzeptiert nichts anderes von ihr; selbst wer die Box übernimmt, kann also kein Zertifikat für eine öffentliche Website fälschen. Root und Zwischenstelle tragen beide die Grenze. **Neue Zertifizierungsstelle anlegen…** ersetzt Root und Zwischenstelle. Mit **Nur lokale Namen und private Adressen** (Standard) kannst du eigene Domains ergänzen, etwa `home.example.org`; jede gilt für alle Namen darunter. Ohne die Grenze darf die Zertifizierungsstelle jeden Namen signieren, und ein Gerät, das ihr vertraut, würde ein gefälschtes Zertifikat für jede Website akzeptieren, wenn die Box übernommen würde. Nach einer neuen Zertifizierungsstelle muss jedes Gerät dem neuen Root-Zertifikat erneut vertrauen; für andere Geräte ausgestellte Zertifikate bleiben nur dort gültig, wo das alte Root-Zertifikat noch vertraut wird, und die Liste markiert sie mit **Frühere Zertifizierungsstelle**. Auch eine Umbenennung der Box braucht eine neue Zertifizierungsstelle, wenn du sie über ihren bloßen Hostnamen erreichst, weil der alte Hostname Teil der Grenze ist. ### Das eigene Zertifikat der Box Das Zertifikat der Box gilt für ihren Hostnamen, `.local`, den Hostnamen in jeder Suchdomain, `localhost`, jede Adresse ihrer Netzwerkkarten (nicht die der App-Container) und die Loopback-Adressen, soweit die Zertifizierungsstelle sie signieren darf. Es läuft 397 Tage, erneuert sich 30 Tage vor seinem Ende und wird sofort neu ausgestellt, wenn sich eine Adresse oder der Hostname ändert. **Namen des Box-Zertifikats** zeigt, wofür es gilt; **Weitere Namen** ergänzt Namen wie eine Domain, die auf die Box zeigt. Sie müssen innerhalb der Grenze der Zertifizierungsstelle liegen (sonst [`tls.name.not_permitted`](https://pithyx.org/de/docs/reference/errors/#tls.name.not_permitted)). ### Zertifikate für andere Geräte **Zertifikat ausstellen…** erstellt ein Serverzertifikat für einen Drucker, Router oder einen anderen Server in deinem Netz: Namen und Adressen (ein führendes `*.` für eine Wildcard), 1 bis 825 Tage und ein ECDSA-Schlüssel oder, für Geräte, die ihn brauchen, RSA mit 2048 Bit. Der Browser lädt das Zertifikat mit der Zwischenstelle (`.crt`) und den privaten Schlüssel (`.key`) herunter. Die Box behält den Schlüssel nicht. In der Liste kannst du das Zertifikat ohne Schlüssel erneut herunterladen und einen Eintrag entfernen; die Box führt keine Sperrliste, ein entferntes Zertifikat bleibt also gültig, bis es endet. ### Ein eigenes Zertifikat **Eigenes Zertifikat** nimmt ein Zertifikat, das du anderswo bekommen hast, etwa für deine eigene Domain: das Zertifikat mit seinen Zwischenzertifikaten und den privaten Schlüssel, beide in PEM und den Schlüssel ohne Passwort. Die Box zeigt es auf 7484, 443 und für FTPS, solange es gültig ist, und ihr eigenes wieder, sobald es abgelaufen ist oder nach **Eigenes Zertifikat entfernen**. Der Upload wird mit [`tls.custom.invalid`](https://pithyx.org/de/docs/reference/errors/#tls.custom.invalid), [`tls.custom.key_mismatch`](https://pithyx.org/de/docs/reference/errors/#tls.custom.key_mismatch) oder [`tls.custom.expired`](https://pithyx.org/de/docs/reference/errors/#tls.custom.expired) abgelehnt. Let's Encrypt ist noch nicht eingebaut. ### Hinter einem Reverse Proxy Um andere Dienste hinter die Box zu stellen, nimm ihren eigenen [Reverse Proxy](https://pithyx.org/de/docs/admin/reverse-proxy/). Ein Reverse Proxy anderswo vor der Box verbindet sich mit `https://:7484`. Lass ihn dem Root-Zertifikat der Box vertrauen (oder, weniger streng, die Prüfung für dieses eine Backend auslassen), WebSocket-Upgrades für `/ws` und App-Sockets durchreichen und seine Anfragen mit dem Hostnamen senden, den der Browser benutzt hat. Die Box sieht die Adresse des Proxys als Client, daher gilt die Grenze für fehlgeschlagene Anmeldungen pro Adresse für alle hinter dem Proxy gemeinsam. ### Sicherung Root, Zwischenstelle, das Zertifikat der Box, ein hochgeladenes Zertifikat, die weiteren Namen und die Liste der ausgestellten Zertifikate gehören zur Konfigurationssicherung (Teil **Zertifikate**). Stellst du sie auf einem neuen System wieder her, kommt dieselbe Zertifizierungsstelle zurück, und Geräte vertrauen ihr weiter; die Box stellt ihr eigenes Zertifikat für die Namen des neuen Systems neu aus. ## Backup und Wiederherstellung > Die Konfiguration der Box in einer verschlüsselten Datei sichern und wiederherstellen, und was das Backup nicht abdeckt. Source: https://pithyx.org/de/docs/admin/backup/ Markdown: https://pithyx.org/de/docs/admin/backup.md Einstellungen > **Backup und Wiederherstellung** sichert die Konfiguration der Box (Benutzer, freigegebene Ordner, Dateidienste, Zeitpläne und mehr) in einer passwortgeschützten Datei und stellt sie später wieder her. Die Dateien auf deinen Pools sichert es nicht. Backups sind manuell: Es gibt keinen Zeitplan. ### Ein Backup erstellen 1. Öffne Einstellungen > **Backup und Wiederherstellung** und wähle „Backup erstellen“. 2. Gib ein Backup-Passwort ein und wiederhole es. Es muss die üblichen Passwortregeln erfüllen (mindestens 8 Zeichen, kein allgemein bekanntes Passwort). 3. Wähle **Erstellen und herunterladen**. Die Datei heißt `pithyx-config--.pithyxbackup`. > **Das Passwort lässt sich nicht wiederherstellen:** > > Ohne das Backup-Passwort lässt sich das Backup nicht wiederherstellen. Pithyx bewahrt es nicht auf, und niemand kann es zurückholen. Bewahre es und die Datei an einem anderen Ort als dieser Box auf. Die Datei ist mit AES-256-GCM verschlüsselt, unter einem Schlüssel, der aus dem Passwort mit Argon2id abgeleitet wird (64 MiB, 3 Durchgänge). Das Archiv darf bis zu 16 MB groß sein und entpackt 256 MB ([`system.backup.too_large`](https://pithyx.org/de/docs/reference/errors/#system.backup.too_large)). Es enthält Passwort-Hashes und Schlüssel, schütze es also wie ein Geheimnis. ### Was es enthält Kategorien, die du bei der Wiederherstellung wählen kannst: - **Benutzer und Gruppen**: Konten, Gruppen, Passwörter (auch für SMB und SFTP), Zwei-Faktor-Anmeldung, der Wiederherstellungsschlüssel, persönliche Einstellungen und Desktop-Anordnungen. - **Freigegebene Ordner und Dateidienste**: freigegebene Ordner mit ihren Rechten und die Einstellungen für SMB, SFTP, WebDAV und FTP. - **Speicher-Einstellungen**: Snapshot-Zeitpläne (Wiederherstellungspunkte), Scrub- und Selbsttest-Zeitpläne. - **Systemeinstellungen**: Sprache, Formate, Zeitzone, Zeitserver und Aufbewahrung der Logs. - **Zertifikate und Schlüssel**: die Zertifizierungsstelle und die Zertifikate der Box, hochgeladene Zertifikate von Hosts des Reverse Proxys und die SSH-Host-Schlüssel, soweit vorhanden. - **Reverse Proxy**: Proxy-Hosts (mit Basic-Auth-Benutzern als Hashes), Weiterleitungs-Hosts, Streams, was unbekannte Namen bekommen, und die Anmeldeadresse. - **Apps**: die App-Registry, Berechtigungen, Ordnerzuordnungen, Kataloge und der App-Pool. Die Dateien und Daten der Apps bleiben auf dem Pool. Nicht enthalten: Dateien auf Pools, App-Daten, Logs, Docker-Daten, Sitzungen, Jobs, Benachrichtigungen, der Index des Papierkorbs und die Netzwerkeinstellungen (Karten heißen auf anderer Hardware anders). ### Wiederherstellen ![Einstellungen, Backup und Wiederherstellung, nach Backup prüfen: wann und wo das Backup entstand, sein Inhalt und die Teile zum Wiederherstellen, mit dem Knopf Wiederherstellen](../../../../../assets/screenshots/backup-checked.de.webp) _Backup prüfen zeigt, was die Datei enthält; geändert wird erst, wenn du Wiederherstellen wählst._ 1. Wähle die Datei, gib ihr Passwort ein und wähle **Backup prüfen**. Noch ändert sich nichts. 2. Die Seite zeigt „Dieses Backup enthält“: wann es erstellt wurde, von welchem Host, die Pithyx-Version und Zahlen zu Benutzern, Gruppen und freigegebenen Ordnern. 3. Hake unter „Was wiederhergestellt wird“ die Teile an, wähle dann **Wiederherstellen…** und **Jetzt wiederherstellen**. Ein geprüftes Backup wartet 15 Minuten ([`system.backup.restore_expired`](https://pithyx.org/de/docs/reference/errors/#system.backup.restore_expired)). Jeder gewählte Teil ersetzt den aktuellen vollständig; Dateien auf deinen Pools bleiben unberührt; Pithyx startet danach neu. Das Wiederherstellen der Benutzer meldet alle ab, auch dich; melde dich mit einem Konto und Passwort aus dem Backup an. Vor der Wiederherstellung wird die Datenbank nach `pithyx.db.pre-restore-.bak` daneben kopiert. Schlägt die Wiederherstellung fehl, wird nichts geändert. Einige Schritte (Linux-Konten, Passwörter für SFTP, SSH und SMB, Zeitzone, Zertifikate, SSH-Host-Schlüssel) können Probleme melden; das Protokoll-Center hat die Details. Ein Backup einer neueren Pithyx-Version lässt sich nicht wiederherstellen ([`system.backup.too_new`](https://pithyx.org/de/docs/reference/errors/#system.backup.too_new)); ein falsches Passwort ergibt [`system.backup.password_wrong`](https://pithyx.org/de/docs/reference/errors/#system.backup.password_wrong). Die Wiederherstellung funktioniert in den Einstellungen einer Box, die die Ersteinrichtung abgeschlossen hat; sie ist nicht Teil der Einrichtung selbst. ## Logs und Überwachung > Das Protokoll-Center, der Ressourcenmonitor und Benachrichtigungen: was sie zeigen, wie lange Daten bleiben und was sie kosten. Source: https://pithyx.org/de/docs/admin/logs-and-monitoring/ Markdown: https://pithyx.org/de/docs/admin/logs-and-monitoring.md Zwei Administrator-Apps zeigen, was die Box tut: das Protokoll-Center (Meldungen des Daemons, des Systems und der Apps) und der Ressourcenmonitor (CPU, Arbeitsspeicher, Netzwerk, Platten und Temperaturen). Benachrichtigungen erreichen Menschen nur im Desktop; es gibt keine E-Mail und keinen Push. ### Das Protokoll-Center ![Das Protokoll-Center im dunklen Design mit der Suche network, den Stufen Info, Warnung und Fehler, dem Zeitraum Letzte 24 Stunden und dem Detailbereich einer Warnung](../../../../../assets/screenshots/logs-center.de.webp) _Das Protokoll-Center mit Suche, Filtern für Stufe und Zeitraum und den Details des gewählten Eintrags._ Im Protokoll-Center kannst du Meldungen oder eine Request-ID suchen und nach **Stufen** (Debug, Info, Warnung, Fehler), nach Zeitraum (letzte Stunde, 24 Stunden, 7 Tage, 30 Tage, gesamte Zeit) und nach Quelle filtern: „Pithyx-Daemon“, „System · {name}“ für Journal-Units (Kernel, Samba, SSH, ZFS, systemd-networkd, timesyncd, Docker, smartmontools und andere) und „App · {name}“. Die Details zeigen Zeit, Stufe, Quelle, Benutzer, Request-ID und ob der Eintrag im Archiv liegt. Seiten fassen standardmäßig 200 Einträge, höchstens 1000. **Als Text exportieren** (`.log`) und **Als JSON-Zeilen exportieren** (`.jsonl`) schreiben bis zu 1 000 000 Einträge. Logs liegen in einer Datenbank auf der Systemplatte unter `/var/log/pithyx/`, funktionieren also ohne Pool. Die Aufbewahrung stellst du mit **Aufbewahrung** ein: standardmäßig 30 Tage (1 bis 365) und höchstens 4 GB (64 MB bis 4 GB); die ältesten Einträge gehen zuerst. Das optionale Archiv auf einem Pool ist standardmäßig aus. Wenn es an ist, werden Einträge einmal am Tag auf den Pool kopiert, und zwar bevor die aktuellen Logs welche verwerfen, was die Platten des Pools etwa einmal am Tag weckt. Archivtage: 1 bis 3650 (Standard 365); Größe 0,25 bis 1024 GB (Standard 10 GB). Ist der Pool nicht verfügbar, warten Einträge auf der Systemplatte. Der Daemon schreibt außerdem JSON-Dateien `/var/log/pithyx/daemon.json*`, die bei 20 MB rotieren, mit 10 Dateien. Geheimnisse werden in Logs maskiert. App-Meldungen kommen über das SDK an: `info`, `warn` und `error` immer, `debug` nur, solange ein Administrator es in den Details der App eingeschaltet hat. Eine Meldung hat höchstens 4000 Zeichen und höchstens 20 Datenfelder; eine App darf 20 Meldungen pro Sekunde loggen (Spitze 200). Die Ausgabe von Backend-Containern landet in der Quelle `app/`. Eine Zeile auf stdout ist Info, eine Zeile auf stderr eine Warnung, und eine Zeile, die ein JSON-Objekt mit einem Text `level` ist (`debug` oder `trace`, `info`, `warn` oder `warning`, `error`, `fatal` oder `critical`), behält diese Stufe. Eine solche JSON-Zeile zeigt ihr `message` (oder `msg`) als Meldung und ihre übrigen Felder (höchstens 32, jedes auf 1024 Zeichen gekürzt) als Daten; ein W3C-Feld `traceparent` verbindet sie mit der Anfrage, sodass die Suche nach der Request-ID sie neben den Zeilen des Daemons findet. Eine `debug`-Zeile bleibt nur, solange ein Administrator die Debug-Meldungen der App eingeschaltet hat. ### Der Ressourcenmonitor ![Der Ressourcenmonitor, Leistung, mit CPU, Arbeitsspeicher mit dem ZFS-Cache, Netzwerk und Festplatten, eine Platte beschäftigt mit einem Scrub](../../../../../assets/screenshots/monitor-performance.de.webp) _Die Ansicht Leistung über die letzte Minute, hier während eines Scrubs._ Der Ressourcenmonitor hat die Ansichten **Leistung** und **Prozesse**, mit Zeiträumen von einer Minute, 10 Minuten und einer Stunde. Er misst jede Sekunde, und nur, solange jemand zuschaut; der Verlauf wird eine Stunde lang im Arbeitsspeicher gehalten. Der Verlauf deckt also nur die Zeit ab, in der der Monitor irgendwo geöffnet war: Solange niemand zuschaut, wird nichts gemessen. Er zeigt die CPU insgesamt und pro Kern sowie den Arbeitsspeicher aufgeteilt in Programme, ZFS-Cache (ARC), Seiten-Cache und Frei, dazu Swap. Der ZFS-Cache gibt Speicher sofort ab, sobald Programme ihn brauchen. Der Netzwerkverkehr wird pro Schnittstelle gezeigt, Lesen, Schreiben und Auslastung pro Platte (aus den Zählern des Kernels, sodass eine schlafende Platte weiterschläft) und Temperaturen von den Sensoren; Plattentemperaturen werden hier nicht gelesen. Die Prozessliste zeigt Name, PID, Benutzer, CPU (Anteil aller Kerne zusammen) und Speicher, mit einem Filter. Einstellungen > **Info-Center** zeigt Version, Hostname, Kernel, CPU, Arbeitsspeicher und Laufzeit. ### Benachrichtigungen Jeder Benutzer hat im Desktop eine Liste (bis zu 200 Einträge, 30 Tage aufbewahrt). Administratoren bekommen Speicherwarnungen (beeinträchtigte oder ausgefallene Pools, fehlende Platten, Datenfehler, 80 und 90 Prozent voll, ausfallende SMART-Werte), Job-Ergebnisse und die Store-Hinweise „App-Updates“ und „Katalog nicht abgerufen“. Apps mit der Berechtigung, Benachrichtigungen zu zeigen, können an den Benutzer senden, der sie nutzt.