2.8 KiB
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. Die Pi-Adresse, der Benutzer
und der Zielpfad sind noch nicht am Gerät geprüft und werden beim Aufruf
angegeben.
Voraussetzungen
- Auf dem Laptop:
sshundrsync. - 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.mdvorbereiten, insbesondere.venvim Zielordner;sudomuss auf dem Pi nutzbar sein. - Vor dem ersten Upload den Pi per
ssh BENUTZER@HOSTerreichen 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.
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:
ssh "$BENUTZER@$HOST" "ls -la '$ZIEL'"
Soll die WebUI auf dem Pi nach jedem Neustart automatisch laufen, beim
Upload --install-service ergänzen:
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.
Es wurde bisher keine Verbindung zu einem Pi, keine Übertragung und keine Installation der systemd-Unit am Gerät geprüft.