diff --git a/README.md b/README.md index 05c03c4..9d41913 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,14 @@ PiCopy verwandelt deinen Raspberry Pi in ein eigenständiges Backup-Gerät. Stec | 🔄 | **Duplikat-Behandlung** | Überspringen / Überschreiben / Umbenennen | | ✅ | **MD5-Verifizierung** | Jede Datei nach dem Kopieren auf Integrität prüfen | | 🗑️ | **Quelle leeren** | Quelldateien nach erfolgreichem Kopieren löschen (Move-Modus) | +| 🔀 | **Mehrere Quellen** | Mehrere USB-Quell-Ports gleichzeitig auf ein Ziel kopieren | +| 💾 | **Interner Speicher** | Pi-interne SD-Karte als Kopierziel verwenden | | 🖧 | **NAS / SMB Upload** | Nach dem lokalen Backup auf ein Netzlaufwerk hochladen | +| 📁 | **Samba-Freigabe** | Internen Speicher als SMB-Netzwerkfreigabe bereitstellen | | 📡 | **WiFi-Fallback** | Erstellt einen eigenen Hotspot wenn kein WLAN verfügbar ist | +| 🔒 | **WireGuard VPN** | VPN-Verbindung für sicheren Fernzugriff | +| 📊 | **System-Monitoring** | CPU-Temperatur, RAM- und SD-Karten-Auslastung im Dashboard | +| 🕐 | **Kopier-Verlauf** | Die letzten 100 Kopiervorgänge werden gespeichert | | ⚡ | **Headless-Betrieb** | Kein Monitor, keine Tastatur nötig | | 🔁 | **Autostart** | Startet automatisch beim Pi-Boot via systemd | @@ -81,13 +87,15 @@ Zeigt den Live-Fortschritt mit: - Prozentualer Fortschritt + Fortschrittsbalken - Dateizähler (`23 / 147 Dateien`) - Übertragene Datenmenge (`1.2 GB / 3.5 GB`) -- Geschwindigkeit (`12.4 MB/s`) -- Verbleibende Zeit (`⏱ noch ca. 4 Min.`) +- Geschwindigkeit (`⚡ 12.4 MB/s`) +- Verbleibende Zeit (`⏱ ~4 Min.`) - Aktuelle Datei - Phasen-Anzeige: *Kopieren → Verifizieren → Quelle leeren* Nach dem Abschluss: Zusammenfassung mit ✕-Button (verschwindet nach 5 Minuten automatisch). +Ein laufender Kopiervorgang kann jederzeit über die *Abbrechen*-Schaltfläche gestoppt werden. + ### USB Port Konfiguration & Datei-Explorer ``` @@ -104,6 +112,14 @@ Nach dem Abschluss: Zusammenfassung mit ✕-Button (verschwindet nach 5 Minuten - **Grauer Punkt** = Port konfiguriert, kein Gerät eingesteckt - **Datei-Explorer** zum Durchsuchen der verbundenen Laufwerke +#### Mehrere Quell-Ports + +Es können mehrere USB-Ports als Quellen konfiguriert werden. Beim Start eines Kopiervorgangs werden alle verbundenen Quell-Ports nacheinander auf das Ziel kopiert, jeweils in einen eigenen Unterordner. Die Ports lassen sich über *Port-Zuweisung zurücksetzen* auf einmal löschen. + +#### Interner Speicher als Ziel + +Statt eines USB-Laufwerks kann der interne Speicher des Raspberry Pi (`/opt/picopy/internal`) als Kopierziel gewählt werden. Dies ist nützlich wenn kein Ziel-USB-Gerät vorhanden ist oder als Zwischenpuffer. + ### Kopier-Einstellungen | Einstellung | Standard | Beschreibung | @@ -127,6 +143,26 @@ Nach dem Abschluss: Zusammenfassung mit ✕-Button (verschwindet nach 5 Minuten | 📷+🎬 Beides | Fotos + Videos kombiniert | | ✕ Alle | Kein Filter – alle Dateien kopieren | +### Kopier-Verlauf + +Jeder abgeschlossene Kopiervorgang wird im Verlauf gespeichert (bis zu 100 Einträge). Der Verlauf zeigt: +- Start-Zeitpunkt und Dauer +- Anzahl kopierter, übersprungener und fehlerhafter Dateien +- Übertragene Datenmenge +- Eventuelle Fehlermeldung + +Der Verlauf kann über das Web-Interface vollständig gelöscht werden. + +### System-Monitoring + +Das Dashboard zeigt live: + +| Wert | Beschreibung | +|---|---| +| CPU-Temperatur | Aktuell in °C (aus `/sys/class/thermal/`) | +| RAM gesamt / genutzt | In MB und als Prozentwert | +| SD-Karte gesamt / genutzt | In GB und als Prozentwert | + ### Fernkopie – NAS / SMB Nach dem lokalen Kopieren lädt PiCopy auf konfigurierte NAS-Freigaben hoch: @@ -136,13 +172,28 @@ Nach dem lokalen Kopieren lädt PiCopy auf konfigurierte NAS-Freigaben hoch: 3. *Speichern & Verbindung testen* – PiCopy testet die Verbindung sofort 4. Mehrere NAS-Ziele möglich, jedes einzeln aktivierbar +### Samba-Freigabe (Interner Speicher) + +Der interne Speicher des Pi kann als SMB-Netzwerkfreigabe bereitgestellt werden: + +- Freigabename: `PiCopy` +- Samba wird bei erster Aktivierung automatisch installiert +- Zugreifbar von Windows, macOS und Linux im gleichen Netzwerk + +``` +\\\PiCopy +``` + ### WiFi-Einstellungen | Modus | Beschreibung | |---|---| -| **Heimnetz** | WLAN-Name und Passwort für die Router-Verbindung | +| **Heimnetz** | WLAN-Netzwerke scannen und verbinden | | **Hotspot (AP)** | Eigenes WLAN wenn kein Heimnetz erreichbar | +- Verfügbare Netzwerke können direkt im Web-Interface gescannt und ausgewählt werden +- Fällt die Heimnetz-Verbindung weg, wird der Hotspot automatisch aktiviert + **Hotspot-Standardwerte:** - SSID: `PiCopy` - Passwort: `PiCopy,` @@ -150,6 +201,19 @@ Nach dem lokalen Kopieren lädt PiCopy auf konfigurierte NAS-Freigaben hoch: Der Hotspot startet automatisch beim Boot wenn das konfigurierte WLAN nicht verfügbar ist. +### WireGuard VPN + +PiCopy unterstützt WireGuard für sicheren Fernzugriff (z. B. aus dem Internet): + +1. *WireGuard installieren* klicken – installiert `wireguard` und `openresolv` via apt +2. WireGuard-Konfigurationsdatei (`.conf`) in das Textfeld einfügen +3. *Verbinden* klicken +4. Optional: *Automatisch verbinden beim Start* aktivieren + +Zum Trennen *Trennen* klicken oder WireGuard über das Interface deinstallieren. + +> **Hinweis:** Der Private Key wird in der Anzeige maskiert (`****`), ist aber auf dem Pi gespeichert. + --- ## Ordnerstruktur auf dem Ziel @@ -167,6 +231,15 @@ Der Hotspot startet automatisch beim Boot wenn das konfigurierte WLAN nicht verf └── notes.txt ``` +Bei mehreren Quell-Ports erhält jede Quelle ihren eigenen Unterordner: + +``` +/ziel-laufwerk/ +└── 2024-01-15_143022/ + ├── Samsung_USB/ + └── SanDisk_Extreme/ +``` + --- ## Update @@ -243,7 +316,9 @@ sudo systemctl stop picopy | USB-Erkennung | `lsblk` + `udevadm` | | USB-Monitoring | `pyudev` (udev-Events) | | WiFi-Verwaltung | NetworkManager (`nmcli`) | +| VPN | WireGuard (`wg-quick`) | | NAS-Sync | `rclone` (SMB) | +| Netzwerkfreigabe | Samba (`smbd`) | | Service | systemd (Autostart, Auto-Restart) | **Dateipfade auf dem Pi:** @@ -252,9 +327,13 @@ sudo systemctl stop picopy |---|---| | `/opt/picopy/app.py` | Hauptanwendung | | `/opt/picopy/config.json` | Konfiguration (Ports, WiFi, Einstellungen) | -| `/opt/picopy/state.json` | Letzter Kopierstatus (persisted) | +| `/opt/picopy/state.json` | Letzter Kopierstatus (persistiert) | +| `/opt/picopy/history.json` | Kopier-Verlauf (max. 100 Einträge) | | `/opt/picopy/rclone.conf` | NAS-Zugangsdaten (rclone) | +| `/opt/picopy/internal/` | Interner Speicher als Kopierziel | | `/opt/picopy/logs/picopy.log` | Log-Datei | +| `/opt/picopy/version.txt` | Aktuelle Versionsnummer | +| `/etc/wireguard/picopy.conf` | WireGuard-Konfiguration | | `/etc/systemd/system/picopy.service` | Systemd-Service | ---