# TYPO3 — Die Kommandozeile des TYPO3-CMS

> Praxis-Guide zur TYPO3-CLI (v13 LTS): Caches, Datenbank, Extensions, Sites, Scheduler und Upgrades über vendor/bin/typo3 verwalten.

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

<!-- PROSE:intro -->
TYPO3 ist ein quelloffenes Enterprise-CMS mit langer Tradition im professionellen Web – und seine Kommandozeile ist dein wichtigstes Werkzeug für Wartung, Deployment und Automatisierung. Über `vendor/bin/typo3` (Composer-Installation) oder `typo3/sysext/core/bin/typo3` (Classic Mode) steuerst du Caches, Datenbankschema, Extensions, Sites und den Scheduler, ohne das Backend zu öffnen. Dieser Guide bündelt die Kommandos, die du im Alltag und in CI/CD-Pipelines am häufigsten brauchst – von `cache:flush` bis zu kompletten Deployment-Rezepten.
<!-- PROSE:intro:end -->

## Kommando-Pfade

`vendor/bin/typo3 <command>` — Composer-basierte Installation (empfohlen). Aus dem Projekt-Stammverzeichnis ausführen.

```bash
vendor/bin/typo3 cache:flush
```

`typo3/sysext/core/bin/typo3 <command>` — Klassische Installation (ohne Composer). Aus dem Document-Root ausführen.

```bash
typo3/sysext/core/bin/typo3 cache:flush
```

`ddev typo3 <command>` — Lokale DDEV-Entwicklungsumgebung. Läuft im DDEV-Web-Container.

```bash
ddev typo3 cache:flush
```

`typo3 list` — Listet alle verfügbaren Konsolen-Kommandos auf.

```bash
vendor/bin/typo3 list
```

`typo3 <command> --help` — Zeigt ausführliche Hilfe und verfügbare Optionen zu einem bestimmten Kommando.

```bash
vendor/bin/typo3 cache:flush --help
```

`typo3 list --format=json` — Listet alle Kommandos im JSON-Format für Skripte auf.

```bash
vendor/bin/typo3 list --format=json
```

## Setup und Installation

`typo3 setup` — Interaktiver Einrichtungsassistent. Legt Datenbank, Admin-Benutzer und Basiskonfiguration an.

```bash
vendor/bin/typo3 setup
```

`typo3 setup --driver=mysqli --dbname=<db> --username=<user> --password=<pass> --host=<host>` — Nicht-interaktive Einrichtung mit Datenbank-Zugangsdaten.

```bash
vendor/bin/typo3 setup --driver=mysqli --dbname=typo3 --username=root --password=root --host=db
```

`typo3 setup --admin-username=<user> --admin-user-password=<pass> --admin-email=<email>` — Einrichtung mit Admin-Zugangsdaten im nicht-interaktiven Modus.

```bash
vendor/bin/typo3 setup --admin-username=admin --admin-user-password=Password1! --admin-email=admin@example.com
```

`typo3 setup --server-type=apache` — Einrichtung mit einem bestimmten Webserver-Typ (apache oder andere).

```bash
vendor/bin/typo3 setup --server-type=apache
```

## Cache-Verwaltung

`typo3 cache:flush` — Leert alle Caches. Das am häufigsten genutzte TYPO3-Kommando.

```bash
vendor/bin/typo3 cache:flush
```

`typo3 cache:flush --group=pages` — Leert nur die Seiten-Caches.

```bash
vendor/bin/typo3 cache:flush --group=pages
```

`typo3 cache:flush --group=system` — Leert nur die System-Caches (Konfiguration, DI-Container usw.).

```bash
vendor/bin/typo3 cache:flush --group=system
```

`typo3 cache:flush --group=di` — Leert den Cache des Dependency-Injection-Containers.

```bash
vendor/bin/typo3 cache:flush --group=di
```

`typo3 cache:warmup` — Wärmt alle Caches vor. Baut zwischengespeicherte Daten für schnellere erste Requests neu auf.

```bash
vendor/bin/typo3 cache:warmup
```

`typo3 cache:warmup --group=system` — Wärmt nur die System-Caches vor.

```bash
vendor/bin/typo3 cache:warmup --group=system
```

## Datenbank

`typo3 database:updateschema` — Aktualisiert das Datenbankschema anhand von TCA und ext_tables.sql. Standardmäßig interaktiv.

```bash
vendor/bin/typo3 database:updateschema
```

`typo3 database:updateschema '*.add,*.change'` — Fügt nur neue Felder/Tabellen hinzu und ändert bestehende Felder (sichere Operationen).

```bash
vendor/bin/typo3 database:updateschema '*.add,*.change'
```

`typo3 database:updateschema '*.drop'` — Entfernt nur ungenutzte Tabellen und Felder (destruktiv, mit Vorsicht verwenden).

```bash
vendor/bin/typo3 database:updateschema '*.drop'
```

`typo3 database:updateschema '*'` — Wendet alle Schemaänderungen an, einschließlich Hinzufügen, Ändern und Entfernen.

```bash
vendor/bin/typo3 database:updateschema '*'
```

`typo3 database:updateschema --dry-run` — Zeigt eine Vorschau der anstehenden Schemaänderungen, ohne sie auszuführen.

```bash
vendor/bin/typo3 database:updateschema --dry-run
```

`typo3 database:export` — Exportiert die Datenbank als SQL nach stdout. Für Backups in eine Datei umleiten.

```bash
vendor/bin/typo3 database:export > backup.sql
```

`typo3 database:import < <file>` — Importiert eine SQL-Datei über stdin in die Datenbank.

```bash
vendor/bin/typo3 database:import < backup.sql
```

## Extension-Verwaltung

`typo3 extension:list` — Listet alle verfügbaren Extensions mit ihrem Status (aktiv/inaktiv) auf.

```bash
vendor/bin/typo3 extension:list
```

`typo3 extension:setup` — Richtet alle aktiven Extensions ein (führt ext_tables.sql aus, importiert Daten usw.).

```bash
vendor/bin/typo3 extension:setup
```

`typo3 extension:setup --extension=<ext_key>` — Richtet eine bestimmte Extension ein.

```bash
vendor/bin/typo3 extension:setup --extension=news
```

`typo3 extension:deactivate <ext_key>` — Deaktiviert eine Extension (nur Classic Mode; bei Composer über composer require/remove).

```bash
typo3/sysext/core/bin/typo3 extension:deactivate indexed_search
```

`typo3 extension:activate <ext_key>` — Aktiviert eine Extension (nur Classic Mode).

```bash
typo3/sysext/core/bin/typo3 extension:activate indexed_search
```

## Site-Verwaltung

`typo3 site:list` — Listet alle konfigurierten Sites mit ihren Identifiern und Basis-URLs auf.

```bash
vendor/bin/typo3 site:list
```

`typo3 site:show <identifier>` — Zeigt die vollständige YAML-Konfiguration einer bestimmten Site.

```bash
vendor/bin/typo3 site:show main
```

## Sprache und Lokalisierung

`typo3 language:update` — Lädt alle Sprachpakete der installierten Extensions herunter und aktualisiert sie.

```bash
vendor/bin/typo3 language:update
```

`typo3 language:update <locale>` — Aktualisiert nur die Sprachpakete für eine bestimmte Locale.

```bash
vendor/bin/typo3 language:update de
```

## Upgrade-Wizards

`typo3 upgrade:list` — Listet alle verfügbaren Upgrade-Wizards und ihren Status (erledigt/offen) auf.

```bash
vendor/bin/typo3 upgrade:list
```

`typo3 upgrade:run` — Führt alle ausstehenden Upgrade-Wizards interaktiv aus.

```bash
vendor/bin/typo3 upgrade:run
```

`typo3 upgrade:run <identifier>` — Führt einen bestimmten Upgrade-Wizard anhand seines Identifiers aus.

```bash
vendor/bin/typo3 upgrade:run sysLogChannel
```

`typo3 upgrade:run --confirm=all` — Führt alle ausstehenden Upgrade-Wizards nicht-interaktiv aus (automatisch bestätigt).

```bash
vendor/bin/typo3 upgrade:run --confirm=all
```

`typo3 upgrade:mark-undone <identifier>` — Markiert einen Upgrade-Wizard als nicht erledigt, damit er erneut laufen kann.

```bash
vendor/bin/typo3 upgrade:mark-undone sysLogChannel
```

## Referenzindex und Aufräumen

`typo3 referenceindex:update` — Aktualisiert die Tabelle sys_refindex. Sorgt für korrektes Referenz-Tracking zwischen Datensätzen.

```bash
vendor/bin/typo3 referenceindex:update
```

`typo3 cleanup:deletedrecords` — Entfernt alle weich gelöschten Datensätze endgültig aus der Datenbank.

```bash
vendor/bin/typo3 cleanup:deletedrecords
```

`typo3 cleanup:orphanrecords` — Entfernt verwaiste Datensätze, die keine gültige Elternseite haben.

```bash
vendor/bin/typo3 cleanup:orphanrecords
```

`typo3 cleanup:missingfiles` — Findet sys_file-Datensätze, die auf nicht existierende Dateien auf der Platte verweisen.

```bash
vendor/bin/typo3 cleanup:missingfiles
```

`typo3 cleanup:lostfiles` — Findet Dateien im fileadmin, die in der Datenbank nicht referenziert sind.

```bash
vendor/bin/typo3 cleanup:lostfiles
```

`typo3 cleanup:multiplereferencedfiles` — Findet Dateien, die von mehreren Datensätzen referenziert werden, obwohl sie eindeutige Kopien sein sollten.

```bash
vendor/bin/typo3 cleanup:multiplereferencedfiles
```

`typo3 cleanup:flexforms` — Räumt FlexForm-Daten auf, indem Felder entfernt werden, die nicht in der Datenstruktur definiert sind.

```bash
vendor/bin/typo3 cleanup:flexforms
```

`typo3 cleanup:missingrelations` — Findet und meldet Datenbank-Relationen, die auf nicht existierende Datensätze verweisen.

```bash
vendor/bin/typo3 cleanup:missingrelations
```

## Scheduler und Tasks

`typo3 scheduler:run` — Führt alle fälligen geplanten Tasks aus. Wird üblicherweise per System-Cron aufgerufen.

```bash
vendor/bin/typo3 scheduler:run
```

`typo3 scheduler:run --task=<uid>` — Führt einen bestimmten geplanten Task anhand seiner UID aus.

```bash
vendor/bin/typo3 scheduler:run --task=5
```

`typo3 scheduler:run --force` — Erzwingt die Ausführung von Tasks unabhängig von ihrer geplanten Zeit.

```bash
vendor/bin/typo3 scheduler:run --force
```

## Weiterleitungen (EXT:redirects)

`typo3 redirects:checkintegrity` — Prüft alle Weiterleitungen auf Konflikte (Schleifen, Duplikate, Kollisionen mit bestehenden Seiten).

```bash
vendor/bin/typo3 redirects:checkintegrity
```

`typo3 redirects:cleanup` — Räumt Weiterleitungs-Datensätze auf (entfernt Duplikate und ungültige Einträge).

```bash
vendor/bin/typo3 redirects:cleanup
```

## Mailer und Spool

`typo3 mailer:spool:send` — Versendet alle in der Warteschlange (Spool) liegenden E-Mails. Wird genutzt, wenn TYPO3 auf Mail-Spooling konfiguriert ist.

```bash
vendor/bin/typo3 mailer:spool:send
```

`typo3 mailer:spool:send --message-limit=<n>` — Versendet pro Durchlauf nur eine begrenzte Anzahl gespoolter E-Mails.

```bash
vendor/bin/typo3 mailer:spool:send --message-limit=50
```

`typo3 mailer:spool:send --time-limit=<seconds>` — Stoppt den Versand nach einem Zeitlimit, um lang laufende Prozesse zu vermeiden.

```bash
vendor/bin/typo3 mailer:spool:send --time-limit=30
```

## Backend-Benutzer und Sessions

`typo3 backend:lock` — Sperrt das TYPO3-Backend. Verhindert alle Backend-Logins (Wartungsfenster).

```bash
vendor/bin/typo3 backend:lock
```

`typo3 backend:unlock` — Entsperrt das TYPO3-Backend nach der Wartung.

```bash
vendor/bin/typo3 backend:unlock
```

`typo3 backend:resetpassword <email>` — Sendet einem Backend-Benutzer eine E-Mail zum Zurücksetzen des Passworts.

```bash
vendor/bin/typo3 backend:resetpassword admin@example.com
```

`typo3 backend:createadmin` — Legt interaktiv einen neuen Backend-Admin-Benutzer an.

```bash
vendor/bin/typo3 backend:createadmin
```

`typo3 backend:createadmin --username=<user> --password=<pass> --email=<email>` — Legt einen Backend-Admin-Benutzer nicht-interaktiv an.

```bash
vendor/bin/typo3 backend:createadmin --username=admin --password=Password1! --email=admin@example.com
```

## Deployment- und CI/CD-Rezepte

`typo3 cache:flush && typo3 database:updateschema '*.add,*.change' && typo3 upgrade:run --confirm=all && typo3 cache:warmup` — Typische Deployment-Pipeline: Caches leeren, DB-Schema aktualisieren (nur sichere Operationen), Upgrades ausführen, Caches vorwärmen.

```bash
vendor/bin/typo3 cache:flush && vendor/bin/typo3 database:updateschema '*.add,*.change' && vendor/bin/typo3 upgrade:run --confirm=all && vendor/bin/typo3 cache:warmup
```

`typo3 extension:setup && typo3 language:update && typo3 referenceindex:update` — Nach dem Deployment: Extensions einrichten, Übersetzungen aktualisieren, Referenzindex neu aufbauen.

```bash
vendor/bin/typo3 extension:setup && vendor/bin/typo3 language:update && vendor/bin/typo3 referenceindex:update
```

`typo3 backend:lock && <deploy> && typo3 backend:unlock` — Backend während des Deployments sperren, danach wieder entsperren.

```bash
vendor/bin/typo3 backend:lock && git pull && composer install && vendor/bin/typo3 cache:flush && vendor/bin/typo3 backend:unlock
```

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

Die TYPO3-Kommandozeile nimmt dir bei Wartung und Deployment die Arbeit ab, die im Backend mühsam oder gar nicht möglich wäre. Behandle die mächtigen Kommandos jedoch mit Respekt: Lege vor `database:updateschema`, vor `cache:flush` auf Produktivsystemen und vor `upgrade:run` immer ein Datenbank-Backup an, und führe `*.drop` nie unbedacht aus. Achte außerdem darauf, die CLI als korrekter Webserver-Benutzer auszuführen, damit Dateirechte und Cache-Verzeichnisse konsistent bleiben – läuft der Scheduler-Cron oder `extension:setup` unter einem anderen User, sind Rechteprobleme programmiert. So wird die Konsole zum verlässlichen Rückgrat deiner TYPO3-Automatisierung.

## Weiterführende Links

- [TYPO3-Dokumentation](https://docs.typo3.org/) – offizielle Dokumentation zu Core und Extensions (englisch)
- [typo3.org](https://typo3.org/) – offizielle Projektseite mit deutschsprachiger Community und Verein
<!-- PROSE:outro:end -->

## Verwandte Kommandos

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

