# Einrichtung Stand **15.10.2026**. Grotti auf dem Haus-PC installieren und den Browser öffnen. Die Drucker brauchen vorher Moonraker (Rinkhals auf Kobra 3 und S1). ## Was du brauchst - Python 3.11 - PostgreSQL (leere Datenbank `grotti` reicht; Schema legt Grotti an) - Drucker im selben Netz, Moonraker auf Port 80 - Dieses Repo und eine `config.json` ## Einmalig einrichten Im Projektordner: ```powershell cd D:\Projekte\Grotti python -m venv .venv .\.venv\Scripts\pip install -r requirements.txt copy config.example.json config.json ``` `config.json` anpassen. Die wichtigsten Schlüssel: | Schlüssel | Bedeutung | | --- | --- | | `host`, `port` | Wo die Oberfläche lauscht. Standard `127.0.0.1:8770`. | | `database_url` | PostgreSQL-Verbindung. | | `data_dir` | Uploads, Vorschaubilder, Cache. Standard `data`. | | `watch_dir` | Slice-Ordner (meist unter **Einstellungen** setzen). Leer = nur manueller Upload. Standard-Vorschlag: Ordner `slice` im Repo. | | `token` | Optionaler Shared-API-Token (Übergang). Mit Benutzerverwaltung nutzt du API-Tokens unter Einstellungen. | | `fqdn` | Öffentliche Basis-URL für QR auf Spulen-Etiketten. Leer = Request-Host. | | `auto_queue` | `false` stoppt neue „wenn frei“-Starts. | | `energy`, `telegram`, `alerts` | Kosten im Protokoll und Telegram — später auch unter Einstellungen. | | `secret_key` | Für Login-Sessions. Beim ersten Start wird ein Wert erzeugt, wenn leer. | Drucker beim ersten Start über `drucker.json` (Seed). Danach pflegt man sie unter [Einstellungen](Anleitung-Einstellungen.md). ```json [{ "name": "Kobra 3 da26", "host": "10.10.1.60" }] ``` Die Familie (Kobra 3 oder S1) liest Grotti aus dem Namen. ## Starten ```powershell .\.venv\Scripts\python.exe server.py ``` Dann öffnen. Beim ersten Start legst du den Admin-Benutzer an. Nach Code-Änderungen an Python oft neu starten. ![Druckerwand nach dem Start](../web/static/doku/wand-uebersicht.png) ## Sicherheit - Druckstart über die API nur mit `confirm: true` (Dateien-UI: ein Klick). - Keine freie G-code-Konsole; Firmware-Neustart über Grotti ist gesperrt. - Benutzer und API-Tokens unter Einstellungen. Für Zugriff aus dem Internet: Reverse Proxy mit TLS, nicht den Entwickler-Server öffentlich freigeben. - `config.json` und `data/` bleiben lokal, nicht im Git. ## Weiter - [Oberfläche](Anleitung-Oberflaeche.md) — Navigation und Sidebar - [Dateien senden](Anleitung-Dateien.md) — erster Druck - Ausführlich im `README.md` im Projektordner