# Installation auf dem Raspberry Pi Stand **18.10.2026**. Phase 1: Installation per `.deb`-Datei. Ein öffentliches apt-Repository kommt später. ## Voraussetzungen - Raspberry Pi OS **Bookworm** (64-Bit / arm64), Pi 4 oder 5 empfohlen - Netz zu den Druckern (Moonraker/Rinkhals) - ca. 1 GB freier Speicher für Paket + PostgreSQL ## Paket bauen (auf dem Pi oder arm64-Host) Im geklonten Repo: ```bash sudo apt install -y python3-venv rsync dpkg-dev bash packaging/build-deb.sh ``` Ergebnis: `packaging/dist/grotti__arm64.deb` ## Installieren ```bash sudo apt install ./packaging/dist/grotti_*_arm64.deb ``` Das zieht **PostgreSQL** mit, legt Benutzer `grotti`, Datenbank `grotti` und den Dienst an. - Oberfläche: `http://:8770/` - Config: `/etc/grotti/config.json` (wird bei Updates nicht überschrieben) - Daten: `/var/lib/grotti/` - Slice-Ordner: `/var/lib/grotti/slice` (unter Einstellungen änderbar) Beim ersten Aufruf Admin-Konto anlegen (wie gewohnt). ## Logging Logs gehen nach **journald**: ```bash journalctl -u grotti -f journalctl -u grotti --since "1h ago" journalctl -u grotti -n 200 ``` Log-Level in `/etc/grotti/config.json`: ```json "log_level": "INFO" ``` Werte: `DEBUG`, `INFO`, `WARNING`, `ERROR`. Danach: ```bash sudo systemctl restart grotti ``` ## Dienst ```bash sudo systemctl status grotti sudo systemctl restart grotti sudo systemctl stop grotti ``` ## Update Neue `.deb` bauen bzw. holen, dann erneut: ```bash sudo apt install ./packaging/dist/grotti_*_arm64.deb ``` Config und `/var/lib/grotti` bleiben erhalten. ## Deinstallieren ```bash sudo apt remove grotti # Dienst weg, Daten bleiben sudo apt purge grotti # zusätzlich /etc/grotti # optional Datenbank: # sudo -u postgres dropdb grotti # sudo -u postgres dropuser grotti # sudo rm -rf /var/lib/grotti ``` ## Umzug Windows → Pi 1. **Backup auf dem alten Rechner** (Einstellungen → Backup) oder `pg_dump` der PostgreSQL-Datenbank. 2. Auf dem Pi Grotti per `.deb` installieren (oben). 3. Backup einspielen (Einstellungen → Backup wiederherstellen) **oder** `pg_restore` in die DB `grotti`. 4. Slice-Ordner nach `/var/lib/grotti/slice` kopieren (rsync/scp). 5. Absolute Windows-Pfade in der DB umschreiben (Dry-Run zuerst): ```bash sudo -u grotti /opt/grotti/venv/bin/python /opt/grotti/scripts/pfade_umziehen.py \ --database-url 'postgresql:///grotti?host=/var/run/postgresql' \ --from 'D:/dein/slice' --to /var/lib/grotti/slice # prüfen, dann mit --apply ``` (Alternativ aus dem Repo-Clone mit derselben DB-URL.) 6. Unter Einstellungen: `watch_dir` = `/var/lib/grotti/slice`, ggf. `fqdn` auf die Pi-URL. 7. In Orca „Senden an Grotti“ auf `http://:8770/` umstellen. 8. `sudo systemctl restart grotti` und unter **Dateien → Ordner neu lesen**. ## Last auf dem Pi - Watcher und Toolpath-Cache liegen unter `/var/lib/grotti/`. Bei wenig Speicher Toolpath-Cache-Ordner (`data/toolpath`) gelegentlich leeren. - Wenige SSE-Clients sind unkritisch; viele offene Browser-Tabs mit Kamera-Stream belasten CPU/Netz. - Empfohlen: Pi 4/5 mit SSD oder schneller SD, nicht parallel schwere Builds auf demselben Gerät. ## Hinweise - Standard lauscht auf `0.0.0.0:8770` (LAN). Für Internet: Reverse Proxy mit TLS. - Drucker unter **Einstellungen** anlegen (kein vorgefülltes `drucker.json` nötig). - Öffentliches `apt install grotti` ohne Datei: kommt mit dem Repo-Server (Phase 2). - `.deb` auf dem Ziel-Pi bauen (`bash packaging/build-deb.sh`), damit arm64-Wheels (`psycopg`, `cryptography`) passen.