Private
Public Access
Initiales Halloween-Projekt
This commit is contained in:
commit
e071fbad2a
36 files changed
+2220
No files matched your search
@@ -0,0 +1,66 @@
|
||||
# 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: `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.
|
||||
|
||||
Es wurde bisher keine Verbindung zu einem Pi, keine Übertragung und keine
|
||||
Installation der systemd-Unit am Gerät geprüft.
|
||||
Reference in new issue
Block a user