Private
Public Access
74 lines
3.2 KiB
Markdown
74 lines
3.2 KiB
Markdown
# Projektdateien auf einen Raspberry Pi kopieren
|
|
|
|
Das Skript `tools/upload_to_pi.sh` kopiert den gewählten lokalen Ordner per
|
|
SSH und `rsync` auf **einen** Pi. Ohne `--source` ist das Projektverzeichnis
|
|
die Quelle. Es löscht keine Dateien auf dem Pi. Benutzer, Host und absoluter
|
|
Zielpfad werden beim Aufruf angegeben. Der Nutzer-Screenshot vom 14. Oktober
|
|
2026 zeigt einen erfolgreichen SSH-Login als `marcinator_2` auf
|
|
`raspi5wlan.local` und Projektdateien unter `~/halloween`.
|
|
|
|
## Voraussetzungen
|
|
|
|
- Auf dem Laptop: `ssh` und `rsync`.
|
|
- Auf dem Pi: aktivierter SSH-Zugang und `rsync`.
|
|
- Der Benutzer muss im Zielpfad schreiben dürfen.
|
|
- Für den optionalen Autostart: Pi-Software laut `SOFTWARE.md` vorbereiten,
|
|
insbesondere `.venv` im Zielordner; `sudo` muss auf dem Pi nutzbar sein.
|
|
- Vor dem ersten Upload den Pi per `ssh BENUTZER@HOST` erreichen und den
|
|
angezeigten Hostschlüssel anhand des eigenen Geräts prüfen. Bei einem
|
|
geänderten Hostschlüssel die Ursache klären, nicht die Prüfung abschalten.
|
|
|
|
## Ablauf
|
|
|
|
`BENUTZER`, `HOST` und `ZIEL` durch die geprüften Werte ersetzen. `ZIEL`
|
|
muss ein absoluter Pfad ohne Leerzeichen sein.
|
|
|
|
```bash
|
|
BENUTZER='BENUTZER'
|
|
HOST='HOST'
|
|
ZIEL='/home/BENUTZER/halloween'
|
|
|
|
bash tools/upload_to_pi.sh --user "$BENUTZER" --host "$HOST" --remote-dir "$ZIEL"
|
|
bash tools/upload_to_pi.sh --user "$BENUTZER" --host "$HOST" --remote-dir "$ZIEL" --apply
|
|
```
|
|
|
|
Der erste Aufruf zeigt nur die geplanten Befehle. Der zweite legt den
|
|
Zielordner an und überträgt die Dateien. Ein anderer Quellordner kann mit
|
|
`--source /absoluter/pfad` angegeben werden. Anschließend auf dem Pi prüfen:
|
|
|
|
```bash
|
|
ssh "$BENUTZER@$HOST" "ls -la '$ZIEL'"
|
|
```
|
|
|
|
Soll die WebUI auf dem Pi nach jedem Neustart automatisch laufen, beim
|
|
Upload `--install-service` ergänzen:
|
|
|
|
```bash
|
|
bash tools/upload_to_pi.sh --user "$BENUTZER" --host "$HOST" --remote-dir "$ZIEL" --install-service
|
|
bash tools/upload_to_pi.sh --user "$BENUTZER" --host "$HOST" --remote-dir "$ZIEL" --install-service --apply
|
|
```
|
|
|
|
Der erste Befehl ist wieder nur eine lokale Vorschau. Der zweite überträgt
|
|
die Dateien, installiert/aktualisiert die systemd-Unit mit `sudo` auf dem Pi
|
|
und startet den Dienst. Bei späteren Updates startet der Dienst so mit dem
|
|
neuen Code neu. Er bindet weiterhin nur an `127.0.0.1` des Pi; vom Laptop
|
|
aus ist der SSH-Tunnel aus `SOFTWARE.md` nötig. Es öffnet sich kein
|
|
Browserfenster von selbst.
|
|
|
|
Das Skript lässt `.git`, `.venv`, `data`, `preview`, `references`,
|
|
`__pycache__`, `.env` und übliche Schlüsseldateien aus. So bleiben
|
|
Laufzeiteinstellungen auf dem Pi und die großen Konzeptdateien lokal.
|
|
Es synchronisiert vorhandene Dateien, löscht aber
|
|
keine alten Dateien auf dem Pi. Zugangsdaten und andere Geheimnisse gehören
|
|
nicht in den Quellordner. Für zwei Pis den Upload mit den jeweils geprüften
|
|
Zielwerten separat ausführen.
|
|
|
|
## Bestätigter Stand
|
|
|
|
Der Nutzer-Screenshot vom 14. Oktober 2026 bestätigt SSH-Zugang und vorhandene
|
|
Projektdateien auf dem Pi: unter anderem `run.py`, `halloween/`, `tools/`,
|
|
`tests/` und die Requirements-Dateien. Zeitpunkt und Methode der bisherigen
|
|
Übertragung sowie die Übereinstimmung mit dem aktuellen lokalen Stand sind
|
|
offen. Installation der Python-Pakete, WebUI-Start, Kamera, SSH-Tunnel und
|
|
systemd-Autostart sind damit noch nicht bestätigt.
|