# Grav — CLI für das Flat-File-CMS Grav

> Praxis-Guide zu den Grav-CLI-Tools: bin/grav für Cache, Backup und Scheduler sowie bin/gpm zum Installieren und Aktualisieren von Plugins und Themes.

Source: https://www.jpkc.com/db/cheatsheets/build-languages/grav/

<!-- PROSE:intro -->
Grav ist ein modernes Flat-File-CMS auf PHP-Basis: Es kommt ganz ohne Datenbank aus und speichert deine Inhalte als einfache Markdown- und YAML-Dateien direkt im Dateisystem. Die Verwaltung läuft über zwei Kommandozeilen-Werkzeuge – `bin/grav` für Kernaufgaben wie Cache leeren, Backups und den Scheduler sowie `bin/gpm`, den Grav Package Manager, mit dem du Plugins und Themes installierst und aktuell hältst. Dieser Guide zeigt dir die wichtigsten Befehle beider Tools für den Alltag, von der Cache-Pflege bis zum Core-Upgrade.
<!-- PROSE:intro:end -->

## bin/grav — Allgemein

`bin/grav list` — Listet alle verfügbaren Grav-CLI-Kommandos auf.

```bash
bin/grav list
```

`bin/grav help <command>` — Zeigt die Hilfe zu einem bestimmten Kommando an.

```bash
bin/grav help clear-cache
```

`bin/grav new-project <path>` — Erstellt ein neues Grav-Projekt in einem Verzeichnis.

```bash
bin/grav new-project ~/sites/my-grav-site
```

`bin/grav sandbox` — Erstellt eine über Symlinks verbundene Sandbox-Kopie von Grav (für die Entwicklung).

```bash
bin/grav sandbox -s ~/grav-core ~/sites/my-sandbox
```

## bin/grav — Cache & Aufräumen

`bin/grav clear-cache` — Leert den Grav-Cache.

```bash
bin/grav clear-cache
```

`bin/grav clear-cache --all` — Leert alle Cache-Typen (Standard + Bilder + Assets).

```bash
bin/grav clear-cache --all
```

`bin/grav clear-cache --assets-only` — Leert nur den Cache der kompilierten Assets (CSS-/JS-Pipeline).

```bash
bin/grav clear-cache --assets-only
```

`bin/grav clear-cache --images-only` — Leert nur den Bilder-Cache (generierte Thumbnails).

```bash
bin/grav clear-cache --images-only
```

`bin/grav clear-cache --tmp-only` — Leert nur die temporären Dateien.

```bash
bin/grav clear-cache --tmp-only
```

`bin/grav clean` — Entfernt unnötige Dateien (Vendor-Ballast, Tests, Doku).

```bash
bin/grav clean
```

## bin/grav — Backup & Sicherheit

`bin/grav backup` — Erstellt ein vollständiges Backup der Grav-Site.

```bash
bin/grav backup
```

`bin/grav backup --destination <path>` — Erstellt ein Backup in einem bestimmten Verzeichnis.

```bash
bin/grav backup --destination ~/backups
```

`bin/grav security` — Führt einen Sicherheits-Scan der Grav-Installation durch.

```bash
bin/grav security
```

`bin/grav logviewer` — Zeigt Grav-Log-Einträge auf der Kommandozeile an.

```bash
bin/grav logviewer
```

## bin/grav — Scheduler & Composer

`bin/grav scheduler -i` — Installiert den Cron-Job für den Grav-Scheduler.

```bash
bin/grav scheduler -i
```

`bin/grav scheduler -r` — Entfernt den Cron-Job für den Grav-Scheduler.

```bash
bin/grav scheduler -r
```

`bin/grav scheduler` — Führt anstehende geplante Aufgaben manuell aus.

```bash
bin/grav scheduler
```

`bin/grav composer` — Führt Composer im Grav-Kontext aus.

```bash
bin/grav composer update
```

`bin/grav yamllinter` — Prüft alle YAML-Dateien auf Syntaxfehler.

```bash
bin/grav yamllinter
```

## bin/gpm — Paket-Infos

`bin/gpm index` — Listet alle im Repository verfügbaren Plugins und Themes auf.

```bash
bin/gpm index
```

`bin/gpm index --plugins` — Listet nur die verfügbaren Plugins auf.

```bash
bin/gpm index --plugins
```

`bin/gpm index --themes` — Listet nur die verfügbaren Themes auf.

```bash
bin/gpm index --themes
```

`bin/gpm info <package>` — Zeigt detaillierte Infos zu einem Plugin oder Theme an.

```bash
bin/gpm info admin
```

`bin/gpm version` — Zeigt die Versionen von Grav und der Plugins an.

```bash
bin/gpm version
```

## bin/gpm — Installieren & Deinstallieren

`bin/gpm install <package>` — Installiert ein Plugin oder Theme.

```bash
bin/gpm install admin
```

`bin/gpm install <pkg1> <pkg2>` — Installiert mehrere Pakete auf einmal.

```bash
bin/gpm install admin login sitemap
```

`bin/gpm install --all-yes <package>` — Installiert ohne Bestätigungsabfragen.

```bash
bin/gpm install --all-yes feed
```

`bin/gpm uninstall <package>` — Deinstalliert ein Plugin oder Theme.

```bash
bin/gpm uninstall simplesearch
```

## bin/gpm — Aktualisieren

`bin/gpm update` — Prüft auf Updates für Plugins/Themes und installiert sie.

```bash
bin/gpm update
```

`bin/gpm update <package>` — Aktualisiert ein bestimmtes Plugin oder Theme.

```bash
bin/gpm update admin
```

`bin/gpm update --plugins` — Aktualisiert nur die Plugins.

```bash
bin/gpm update --plugins
```

`bin/gpm update --themes` — Aktualisiert nur die Themes.

```bash
bin/gpm update --themes
```

`bin/gpm self-upgrade` — Aktualisiert den Grav-Core auf die neueste Version.

```bash
bin/gpm self-upgrade
```

`bin/gpm self-upgrade -f` — Erzwingt ein Core-Upgrade (Neu-Download, auch wenn aktuell).

```bash
bin/gpm self-upgrade -f
```

<!-- PROSE:outro -->
## Fazit

Mit `bin/grav` und `bin/gpm` verwaltest du eine komplette Grav-Installation allein von der Kommandozeile aus – ganz ohne Datenbank-Backend, weil Grav alle Inhalte als Dateien ablegt. Zieh dir vor jedem Plugin-, Theme- oder Core-Update mit `bin/grav backup` einen vollständigen Schnappschuss, dann lässt sich ein fehlgeschlagenes `bin/gpm update` oder `self-upgrade` jederzeit zurückrollen. Achte außerdem auf korrekte Dateirechte: Der Webserver-Benutzer braucht Schreibzugriff auf `cache/`, `logs/`, `backup/` und `user/`, sollte aber nicht das ganze Verzeichnis besitzen. So bleibt deine Site aktuell und sicher.

## Weiterführende Links

- [Grav-Dokumentation](https://learn.getgrav.org/) – offizielles Handbuch zu CLI, Plugins und Themes (englisch)
- [getgrav.org](https://getgrav.org/) – Projektseite mit Download und Plugin-/Theme-Verzeichnis (englisch)
- [GPM – Grav Package Manager](https://learn.getgrav.org/17/cli-console/grav-cli-gpm) – Referenz zu allen `bin/gpm`-Kommandos (englisch)
<!-- PROSE:outro:end -->

## Verwandte Kommandos

- [artisan](https://www.jpkc.com/db/cheatsheets/build-languages/artisan/) – Kommandozeilen-Tool des PHP-Frameworks Laravel
- [cargo](https://www.jpkc.com/db/cheatsheets/build-languages/cargo/) – Paketmanager und Build-Tool für Rust
- [composer](https://www.jpkc.com/db/cheatsheets/build-languages/composer/) – Abhängigkeitsverwaltung für PHP

