# Die Web-Oberfläche `pvesnap-web` zeigt Snapshots im Browser. Gedacht für die Fälle, in denen der [Explorer](explorer.md) nicht passt: Jemand ohne SSH-Zugang soll etwas herausbekommen, oder die Dateien sollen direkt auf dem Arbeitsplatzrechner landen statt auf dem Hypervisor. Sie liest **ausschließlich**. Ändern oder löschen kann sie nichts. --- ## Als Dienst einrichten ```bash ./install.sh --with-webexplorer --port 8823 ``` Danach läuft die Oberfläche dauerhaft auf `http://:8823/` und startet mit dem System. ```bash ./install.sh --with-webexplorer --port 8443 --bind 10.0.0.5 # nur auf einer IP ./install.sh --with-webexplorer --port 8823 --no-start # erst später starten ``` Alle Aufrufparameter des Dienstes stehen in **`/etc/pvesnap/web.conf`**: ``` PVESNAP_WEB_ARGS=--bind 0.0.0.0 --port 8823 --auth pve ``` Dort lässt sich nachträglich alles ändern — Port, Adresse, Anmeldeart, Rechte: ```bash nano /etc/pvesnap/web.conf systemctl restart pvesnap-web ``` ### Dienst verwalten ```bash systemctl status pvesnap-web # läuft er? systemctl restart pvesnap-web # nach Änderungen in web.conf systemctl stop pvesnap-web # anhalten (hängt offene Snapshots aus) systemctl disable pvesnap-web # nicht mehr automatisch starten journalctl -u pvesnap-web -f # Protokoll, auch fehlgeschlagene Anmeldungen ``` --- ## Von Hand starten Für einen einmaligen Einsatz, ohne etwas zu installieren: ```bash pvesnap-web # Gast und Snapshot im Browser wählen pvesnap-web 101 # nur diesen Gast anbieten pvesnap-web 101 auto-taeglich-20260809-023000 # Snapshot gleich öffnen ``` ++ctrl+c++ beendet und hängt den Snapshot wieder aus. --- ## Wer darf was sehen? Das ist der Punkt, an dem sich diese Oberfläche von einem schnell hingeworfenen Dateiserver unterscheidet. ### Anmeldung mit den Proxmox-Benutzern Die Oberfläche zeigt dieselbe Anmeldemaske wie Proxmox — Benutzername, Passwort, Realm-Auswahl. Geprüft wird über `POST /access/ticket` auf der lokalen Proxmox-API, also genau den Weg, den auch das Proxmox-Webinterface geht. Alle Realms (`pam`, `pve`, LDAP, AD …) funktionieren damit automatisch. Zwei-Faktor-Anmeldungen werden **abgewiesen** statt halb durchgewinkt. ### Ein Passwort allein reicht nicht Sonst könnte jeder Proxmox-Benutzer sämtliche Dateien aller Gäste lesen. Zusätzlich muss der Benutzer auf dem jeweiligen Gast das Recht **`VM.Snapshot`** besitzen — geprüft auf `/`, `/vms`, `/vms/` und dem Pool des Gastes. In der Gastliste tauchen nur Gäste auf, für die das zutrifft. `root@pam` sieht wie in Proxmox alles. Anpassen: ``` --require-privilege VM.Backup # anderes Recht verlangen --allow-user backup@pve # einzelne Benutzer generell zulassen --auth token # stattdessen Schlüssel in der Adresse --auth none # ohne Anmeldung (nur im vertrauten Netz) ``` Ohne Proxmox (`--path`) gibt es keine Benutzer — dort wird automatisch ein Zugangsschlüssel erzeugt und beim Start als vollständige Adresse ausgegeben. --- ## Bedienung Snapshot anklicken, durchklicken. | | | |---|---| | **Einzelne Datei** | wird direkt heruntergeladen | | **Verzeichnis** | kommt als ZIP | | **Mehrfachauswahl** | ebenfalls als ZIP | Die ZIP-Dateien werden **im Strom erzeugt** — es wird nichts auf dem Host zwischengespeichert. Ein 200-GB-Verzeichnis braucht also keinen freien Platz, nur Geduld. --- ## Parameter | Parameter | Vorgabe | Bedeutung | |---|---|---| | `-P`, `--port ` | `8823` | Port, auf dem gelauscht wird | | `-b`, `--bind ` | `0.0.0.0` | Netzwerkadresse; `127.0.0.1` = nur lokal | | `-a`, `--auth pve\|token\|none` | `pve` | Anmeldeart | | `--require-privilege ` | `VM.Snapshot` | nötiges Recht auf dem Gast | | `--allow-user ` | — | dieser Benutzer darf alles (mehrfach möglich) | | `-t`, `--token ` | zufällig | Zugangsschlüssel selbst vorgeben | | `--no-token` | — | Kurzform für `--auth none` | | `-p`, `--path ` | — | beliebiges Verzeichnis statt eines Snapshots | | `--cleanup` | — | hängengebliebene Einbindungen lösen und beenden | | `-v`, `--verbose` | — | ausführliches Protokoll | | `-V`, `--version` | — | Version anzeigen | --- ## Beispiele === "Über einen SSH-Tunnel" Der sicherste Weg — nichts liegt im Netz offen: ```bash # auf dem Host pvesnap-web --bind 127.0.0.1 --port 8823 # am eigenen Rechner ssh -L 8823:localhost:8823 root@pve # dann im Browser: http://localhost:8823/ ``` Als Dienst: in `web.conf` `--bind 127.0.0.1` setzen. === "Ein Team ohne Snapshot-Rechte" ```bash pvesnap-web --port 8823 --require-privilege VM.Backup ``` Wer sichern darf, darf auch aus einer Sicherung lesen — das ist meist die passendere Grenze. === "Ein einzelner Dienstleister" ```bash pvesnap-web --port 8823 --allow-user dienstleister@pve ``` Unabhängig von den Proxmox-Rechten. Danach wieder entfernen. === "Schnell etwas herausgeben" ```bash pvesnap-web --port 8823 --auth token ``` Der Zugangsschlüssel steht in der Adresse, die beim Start ausgegeben wird. Kein Proxmox-Benutzer nötig. === "Ein beliebiges Verzeichnis" ```bash pvesnap-web --path /mnt/restore --port 8823 ``` Etwa ein bereits gemountetes Backup. Braucht kein Proxmox. --- ## Sicherheit !!! danger "HTTP, nicht HTTPS" Die Verbindung ist **unverschlüsselt**. Passwörter gehen im Klartext über das Netz. Über unsichere Netze deshalb immer einen SSH-Tunnel legen — siehe oben. Innerhalb eines vertrauenswürdigen Verwaltungsnetzes ist es vertretbar, an einer offenen Firewall-Regel nach draußen nicht. Was sonst gilt: * Es wird ausschließlich **gelesen**. Die Oberfläche kann nichts ändern oder löschen. * Pfade außerhalb des eingebundenen Snapshots werden abgewiesen — über die Adresszeile kommt man nicht an den Rest des Hosts. * **Fehlgeschlagene Anmeldungen** landen mit Absender-IP im Journal: ```bash journalctl -u pvesnap-web | grep -i "anmeldung\|failed" ``` * Beim Beenden (++ctrl+c++ oder `systemctl stop pvesnap-web`) wird ein offener Snapshot wieder ausgehängt. !!! tip "Nicht dauerhaft laufen lassen, wenn nicht nötig" Wer die Oberfläche nur gelegentlich braucht, installiert sie ohne Autostart: ```bash systemctl disable pvesnap-web systemctl start pvesnap-web # bei Bedarf ```