diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6ce5fd3..50c9a0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,10 @@ Alle Änderungen an Grotti. Format nach [Keep a Changelog](https://keepachangelo
## [Unreleased]
+### Geändert
+
+- **README:** Banner, Badges, Feature-Übersicht und Community-Screenshots oben; Setup/API darunter.
+
## [3.4.0] – 2026-10-18
### Neu
diff --git a/README.md b/README.md
index fe54dc4..9b13050 100644
--- a/README.md
+++ b/README.md
@@ -1,76 +1,109 @@
-# Grotti
+
+
+
-Steuert die 3D-Drucker im Haus von einer Weboberfläche aus: Live-Zustand, Dateien senden, Warteschlange, Abläufe für den Kobra 3 (drucken, abkühlen, abschieben, prüfen), Material, Projekte und ein Protokoll, was wann passiert ist.
+
+ Farm-Manager für Moonraker-Drucker
+ Eine Oberfläche für die ganze Farm: Wand, Warteschlange, Material, Abläufe und Protokoll.
+ Benannt nach der Mühle Grotti — sie mahlt ohne Pause, was man ihr aufträgt.
+
-Der Name kommt von der Mühle Grotti: sie mahlt ohne Pause, was man ihr aufträgt.
+
+
+
+
+
+
+
+
-Die Drucker laufen mit Rinkhals (Kobra 3, Kobra S1). Grotti spricht sie über Moonraker an.
+
+ Features ·
+ Screenshots ·
+ Schnellstart ·
+ API ·
+ Changelog ·
+ Community
+
-Aktuelle Version: siehe `grotti/version.py`, Änderungen in [CHANGELOG.md](CHANGELOG.md).
+---
-## Voraussetzungen
+
+
+
-- Python 3.11
-- PostgreSQL (eine leere Datenbank `grotti` reicht, das Schema legt Grotti selbst an)
-- Drucker im selben Netz mit Moonraker auf Port 80
+## Features
-## Einrichten
+| | |
+| --- | --- |
+| **Druckerwand & Cockpit** | Live-Status, Temps, Pause/Cancel, Farm-ETA |
+| **Warteschlange** | Priorität, „nächster freier“, Material-Match, ACE-Map |
+| **Dateien & Projekte** | Slice-Watch, Senden, Umbenennen, Projektordner |
+| **Kobra-3-Ablauf** | Druck → Abkühlen → Schieben → Tasten |
+| **Material** | Spulen, Restgewicht, Bedarf, Chargen |
+| **Aufträge & Statistik** | Kunden, Lieferschein, Kosten (€ Material+Strom) |
+| **Betrieb** | Auth (Session/`grt_…`), Telegram/ntfy, PWA |
+
+Stack: **Python · Flask · PostgreSQL · Moonraker** (Rinkhals auf Kobra 3 / S1).
+
+## Screenshots
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Weitere Bilder und Post-Text: [`docs/community/`](docs/community/README.md).
+
+## Schnellstart
+
+**Voraussetzungen:** Python 3.11, PostgreSQL (leere DB `grotti`), Drucker mit Moonraker im LAN.
```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:
-
-| 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 (unter Einstellungen setzen). Leer = nur Upload. |
-| `token` | Wenn gesetzt, braucht die API `Authorization: Bearer `. |
-| `fqdn` | Öffentliche Basis-URL für Spulen-Etiketten-QR. Leer = Request-Host. |
-| `energy` | Watt und Strompreis für die Kosten im Protokoll. |
-| `telegram`, `alerts` | Bot und welche Ereignisse als Nachricht kommen. |
-| `auto_queue` | Wenn `false`, startet die Warteschlange nichts Neues. |
-
-Die Drucker stehen beim ersten Start in `drucker.json` und landen dann in der Datenbank. Danach werden sie unter Einstellungen gepflegt.
-
-Schema-Änderungen laufen beim Start über `grotti/migrations/` (Tabelle `schema_version`). Vor Major-Updates die Datenbank sichern (`pg_dump`).
-
-```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. Bedienungsanleitung mit Screenshots in der Oberfläche unter **Doku** (Kapitel `Anleitung-*`), Technik-Notizen darunter.
+Dann . Bedienung unter **Doku** in der App (`docs/Anleitung-*.md`).
-`config.json` und `data/` sind lokal und nicht im Git.
+`config.json` und `data/` bleiben lokal (nicht im Git). Drucker zuerst in `drucker.json`, danach unter Einstellungen.
+
+| Schlüssel | Bedeutung |
+| --- | --- |
+| `host`, `port` | Oberfläche (Standard `127.0.0.1:8770`) |
+| `database_url` | PostgreSQL |
+| `watch_dir` | Slice-Ordner (oder leer = nur Upload) |
+| `energy` / `telegram` / `alerts` | Kosten und Benachrichtigungen |
+
+Schema-Migrationen laufen beim Start (`grotti/migrations/`). Vor Major-Updates: `pg_dump`.
## Ordner
| Pfad | Inhalt |
| --- | --- |
-| `server.py` | Start, Datenbank vorbereiten, Hintergrund-Threads |
-| `grotti/` | Kern: Moonraker, Warteschlange (`print_queue.py`), Senden (`send_queue.py`), Abräumen (`eject.py`), Zustandswächter (`watcher.py`), Ereignisse und Telegram (`notify.py`), Datenbank (`store.py`, `schema.sql`) |
-| `web/` | Flask-App (`app.py`), Seiten (`templates/`), CSS und JS (`static/`) |
-| `docs/` | Bedienungsanleitung (`Anleitung-*.md`) unter `/doku`; Technik unter `docs/internal/` (nicht in der App) |
-| `web/static/doku/` | Screenshots für die Anleitung |
-| `CHANGELOG.md` | Änderungen je Version |
+| `server.py` | Start, DB, Hintergrund-Threads |
+| `grotti/` | Moonraker, Queue, Senden, Abräumen, Watcher, Store |
+| `web/` | Flask, Templates, CSS/JS, Branding |
+| `docs/` | Anleitungen (`/doku`), Community-Screens, Technik unter `internal/` |
+| `CHANGELOG.md` | Versionen |
## API
-Alles unter `/api/v1`, JSON. Auth: Session-Cookie (UI) oder `Authorization: Bearer grt_…` (API-Token unter Einstellungen). Optional noch Shared-`token` in der Config (Migrationsbrücke).
+Alles unter `/api/v1`, JSON. Auth: Session oder `Authorization: Bearer grt_…`.
| Methode und Pfad | Zweck |
| --- | --- |
@@ -78,43 +111,33 @@ Alles unter `/api/v1`, JSON. Auth: Session-Cookie (UI) oder `Authorization: Bear
| `GET /me`, `/users`, `/tokens` | Konto, Benutzer (Admin), API-Tokens |
| `GET /version` | Version |
| `GET`/`PATCH /einstellungen`, `POST /telegram/test` | Config und Telegram-Probe |
-| `GET /drucker?live=1` | Drucker mit Live-Zustand, laufendem und wartendem Auftrag |
-| `POST /drucker` · `PATCH`/`DELETE /drucker/` | Drucker anlegen/ändern (Admin) |
+| `GET /drucker?live=1` | Drucker mit Live-Zustand |
| `POST /drucker//` | Pause, Fortsetzen, Abbrechen, Fehler löschen |
| `POST /drucker//steuern` | Temperatur, Speed, Flow, Lüfter, ACE |
| `POST /drucker//abraeumen` | Platte geräumt (`confirm`) |
-| `GET /kamera/`, `/vorschau/` | Snapshot / Job-Thumbnail |
-| `GET`/`POST /dateien`, `PATCH`/`DELETE /dateien/` | Bibliothek, Upload, Metadaten |
-| `POST /dateien/neu-lesen`, `/dateien/ordner`, `/dateien//verschieben` | Watch-Sync, Ordner, Verschieben |
-| `POST /senden`, `GET /sende-auftraege` | Sofort senden (`confirm`), Fortschritt |
-| `GET`/`POST /druck-queue`, `PATCH /druck-queue/` | Warteschlange (`confirm` beim Einreihen) |
-| `GET /laeuft`, `/aufgaben` | Direktstarts und Platte-belegt |
-| `POST /ablauf`, `/schieben-testen` | Ablauf Kobra 3 / Schieben-Test |
-| `GET /spulen`, `POST /spulen`, `POST /spulen//einlegen` | Spulen und Einlegen |
-| `GET /spulen//akte`, `/spulen/by-code` | Spulenakte, Scan `S-…` |
-| `GET`/`POST /materialien`, `/farben` | Sorten und Farbpalette |
-| `GET /laeufe`, `/laeufe/aktuell`, `/laeufe/` | Protokoll und Druckbericht |
-| `GET /statistik`, `/statistik.csv` | Auslastung und CSV |
-| `GET`/`POST /projekte`, `/ideen` | Projekte und Ideen-Backlog |
-| `GET /ereignisse`, `POST /ereignisse/gelesen` | Aktivität und Alerts |
-| `POST /kalkulation` | Vorkalkulation Material+Strom |
+| `GET`/`POST /dateien`, `PATCH`/`DELETE /dateien/` | Bibliothek |
+| `POST /senden`, `GET`/`POST /druck-queue` | Senden und Warteschlange (`confirm`) |
+| `GET /spulen`, `POST /spulen//einlegen` | Material |
+| `GET /laeufe`, `/statistik`, `/ereignisse` | Protokoll und Aktivität |
-MCP: `python -m grotti.mcp_server` mit `GROTTI_URL` und `GROTTI_TOKEN` (siehe `docs/internal/MCP.md`).
+MCP: `python -m grotti.mcp_server` mit `GROTTI_URL` / `GROTTI_TOKEN` → `docs/internal/MCP.md`.
## Sicherheit
-- Login Pflicht (Setup legt den ersten Admin an). Rollen: Admin, Operator.
-- Druckstarts brauchen `confirm: true`. Die Oberfläche fragt per Zwei-Klick.
-- Keine freie G-code-Konsole; Firmware-Neustart über Grotti ist gesperrt.
-- Für Internet: Reverse Proxy mit TLS; nicht den Entwickler-Server öffentlich freigeben.
+- Login Pflicht. Rollen: Admin, Operator.
+- Druckstarts brauchen `confirm: true` (Zwei-Klick in der UI).
+- Keine freie G-code-Konsole; kein `FIRMWARE_RESTART` über Grotti.
+- Nach außen: Reverse Proxy mit TLS.
-## Versionen und Changelog
+## Versionen
-- Versionierung nach [SemVer](https://semver.org/lang/de/): Patch für Fehlerbehebung, Minor für neue Funktion, Major für Bruch an API oder Datenbankschema.
-- Jede Änderung kommt in `CHANGELOG.md` unter `[Unreleased]` (Neu, Geändert, Behoben).
-- Beim Release: Version in `grotti/version.py` setzen, `[Unreleased]` in `[x.y.z] – Datum` umbenennen, Git-Tag `vX.Y.Z`.
-- Ändert sich `web/static/grotti.css` oder `api.js`, in `layout.html` den `?v=` hochzählen.
+- SemVer in `grotti/version.py`, Einträge in [CHANGELOG.md](CHANGELOG.md).
+- Release: `[Unreleased]` → `[x.y.z] – Datum`, Tag `vX.Y.Z`.
+- CSS/JS-Cache: `?v=` in `layout.html` mitziehen.
-## Repo
+---
-Eigenes Repository: . Doku zum Tool gehört nach `docs/`.
+
+ 
+ Repo: git.gundel.dev/dg/grotti
+
diff --git a/docs/brand/readme-banner.png b/docs/brand/readme-banner.png
new file mode 100644
index 0000000..af0527b
Binary files /dev/null and b/docs/brand/readme-banner.png differ
diff --git a/docs/community/README.md b/docs/community/README.md
index 435ec0c..6e428cf 100644
--- a/docs/community/README.md
+++ b/docs/community/README.md
@@ -1,6 +1,8 @@
# Grotti — Community-Vorstellung
-Screenshots aus dem laufenden Betrieb (v3.2.0, Okt. 2026). Zielgruppe: mittlere bis große Printfarmen.
+Screenshots aus dem laufenden Betrieb (v3.4.0, Okt. 2026). Zielgruppe: mittlere bis große Printfarmen.
+
+Logo und Repo-Banner: [`docs/brand/`](../brand/). Haupt-README: [`../../README.md`](../../README.md).
---