Files
proxmox-snapshot-service/handbuch/docs/holen/web.md
T
duffyduckandClaude Opus 5 59e7224297 Handbuch auf MkDocs-Basis, mit Bildschirmfotos aus dem Programm
26 Kapitel in vier Teilen, in der Reihenfolge, in der man sie braucht:
erst sichern, dann Dateien holen, dann ganze Maschinen wiederherstellen,
dahinter der Nachschlagteil.

Gebaut wird mit MkDocs + Material. Bewusst ohne Netzabhaengigkeiten:
keine Schriften vom CDN (font: false), Volltextsuche mit deutschem
Stemming liegt neben den Seiten. Im Notfall steht vielleicht das halbe
Netz - dann nuetzt eine Doku im Internet nichts.

  handbuch/bauen.sh              baut handbuch/site/
  handbuch/bauen.sh ansehen      Vorschau auf 127.0.0.1:8000

install.sh nimmt das gebaute Handbuch mit nach
/usr/share/doc/pvesnap/handbuch/ - falls es vorliegt. Auf dem Host selbst
wird nichts gebaut, mkdocs gehoert nicht auf einen Hypervisor.

Die 28 Bildschirmfotos sind nicht abfotografiert, sondern erzeugt: Der
echte Programmcode laeuft in einem Pseudo-Terminal gegen einen erfundenen
Proxmox-Host (Attrappen fuer pvesh, perl und rbd), pyte baut den Bildschirm
nach, heraus faellt ein SVG. Damit stimmen sie garantiert mit dem Programm
ueberein, sind reproduzierbar und enthalten keine echten Daten. Die
Werkstatt dafuer liegt unter handbuch/werkstatt/ samt LIESMICH.md.

Nebenbei: die Schlussmeldung von install.sh warb noch mit --exchange,
das mit dem eingebauten Austauschlaufwerk weggefallen ist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 12:39:30 +02:00

6.5 KiB

Die Web-Oberfläche

pvesnap-web zeigt Snapshots im Browser. Gedacht für die Fälle, in denen der Explorer 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

./install.sh --with-webexplorer --port 8823

Danach läuft die Oberfläche dauerhaft auf http://<host>:8823/ und startet mit dem System.

./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:

nano /etc/pvesnap/web.conf
systemctl restart pvesnap-web

Dienst verwalten

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:

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/<id> 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 <nummer> 8823 Port, auf dem gelauscht wird
-b, --bind <adresse> 0.0.0.0 Netzwerkadresse; 127.0.0.1 = nur lokal
-a, --auth pve|token|none pve Anmeldeart
--require-privilege <recht> VM.Snapshot nötiges Recht auf dem Gast
--allow-user <user@realm> dieser Benutzer darf alles (mehrfach möglich)
-t, --token <schlüssel> zufällig Zugangsschlüssel selbst vorgeben
--no-token Kurzform für --auth none
-p, --path <verzeichnis> 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:

    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
```