ddev-sync
Die Produktion nach lokal holen, ohne echte Kundendaten.
Kurz gesagt
ddev-sync ist ein DDEV-Add-on, das Datenbank und Dateien eines Projekts per SSH aus der Produktion in deine lokale DDEV-Umgebung holt. Das Remote wird nur gelesen. Personenbezogene Daten werden dabei durch realistische, stabile Fake-Werte ersetzt.
- Für wen?
- Entwicklerinnen und Entwickler, die mit DDEV arbeiten und regelmäßig einen Stand der Produktion lokal brauchen.
- Läuft auf
- DDEVDockerSSHrsyncMySQL/MariaDBS3
- Was kostet es?
- Nichts. Der Code ist offen, unter MIT-Lizenz.
Worum es geht
Einen Live-Stand auf den eigenen Rechner zu holen, ist immer dieselbe Abfolge. Datenbank vom Server ziehen, importieren, Uploads per rsync holen, die lokale Konfiguration umbiegen, Caches leeren. Und dann hoffen, dass keine echten Kundendaten in einem Screenshot landen.
ddev-sync erledigt das mit einem Befehl. Das Add-on verbindet sich per SSH, bringt Datenbank und Dateien in dein DDEV-Projekt und anonymisiert personenbezogene Daten, bevor du sie zu Gesicht bekommst. Auf die Produktion schreibt es nie.
ddev-sync ist noch ein Release Candidate. Es ist schon Ende-zu-Ende gegen echte Installationen gelaufen, aber noch nicht in jeder Umgebung.
Was es kann
Synchronisieren
ddev syncfragt, welches Ziel und welche Schritte laufen sollen. Datenbank, Dateien und Anonymisierung sind vorausgewählt.--yesnimmt alle Schritte, auch die Einrichtungsbefehle, die dein Framework nach dem Import braucht.- Medien in einem S3-Bucket lassen sich gleich mit kopieren.
--dry-runzeigt den ganzen Plan und führt nichts aus.
Anonymisieren
- Namen, E-Mail-Adressen und Ähnliches werden durch glaubwürdige Fake-Werte ersetzt.
- Die Werte bleiben stabil: Dieselbe Person bekommt bei jedem Sync dieselbe Fake-Identität.
- Sessions und Queues werden geleert, Passwörter unbrauchbar gemacht, und du bekommst einen lokalen Admin.
- Eigene Regeln ergänzt du in einer Datei im Projekt.
Frameworks und Umgebungen
- Profile für TYPO3, Laravel, Symfony, WordPress, Drupal und Shopware. Jedes kennt seine Upload-Ordner und Nachbereitungsbefehle.
- Ein generisches Profil für alles andere.
- Liest Host, Benutzer und Pfad auf Wunsch aus deiner Deployer-Konfiguration.
- Ein Sync-Endpunkt für Produktionen, die als Docker-Stack laufen.
Wenn etwas hakt
ddev sync doctorprüft SSH, Pfade, Speicherplatz, Zugangsdaten und die lokale Einrichtung, bevor ein Sync mittendrin scheitert.- Fehlermeldungen enden mit einem Link auf den passenden Abschnitt der Doku.
So legst du los
Du brauchst DDEV ab Version 1.25.0 und einen SSH-Schlüssel. Im Projektverzeichnis:
ddev add-on get NoiXdev/ddev-sync --version v0.1.0-rc.7
ddev auth ssh
ddev restart
ddev sync init
Solange ddev-sync ein Release Candidate ist, installierst du es mit fester Version. init fragt nach Name, Remote und Stage, legt dein erstes Ziel an und prüft es zum Schluss mit doctor. Alles Weitere steht in der Dokumentation.
ddev-sync im Vergleich
Wir mögen die anderen Tools auch. Hier stehen sie ehrlich nebeneinander.
| ddev-sync | ddev pull | Drush sql:sync | Eigene Skripte | |
|---|---|---|---|---|
| Holt die Datenbank aus der Produktion | ✓ja | ✓ja | ✓ja | ✓ja |
| Holt Uploads und Dateien | ✓ja | ✓ja | separat per drush rsync | wenn du es einbaust |
| Anonymisiert personenbezogene Daten | ✓ja | –nein | separat per sql:sanitize | wenn du es einbaust |
| Frameworks | TYPO3, Laravel, Symfony, WordPress, Drupal, Shopware | je nach Rezept | nur Drupal | beliebig |
| Schreibt nie auf das Remote | ✓ja | ✓ja | Richtung frei wählbar | liegt bei dir |
| Fertige Anbindung an Upsun, Acquia und Lagoon | –nein | ✓ja | –nein | –nein |
| Stabile Version | nein, Release Candidate | ✓ja | ✓ja | liegt bei dir |
Stand: November 2026. Angaben ohne Gewähr, Korrekturen gern als Issue.
Wann etwas anderes besser passt
Nicht jedes Werkzeug passt zu jeder Aufgabe. In diesen Fällen würden wir dir selbst etwas anderes empfehlen:
Häufige Fragen
Wie hole ich eine Produktionsdatenbank in DDEV?
Mit ddev-sync reicht ddev sync. Das Add-on zieht den Dump per SSH, importiert ihn, holt die Dateien und anonymisiert danach die Nutzerdaten.
Schreibt ddev-sync etwas auf den Produktionsserver?
Nein. Es liest die Datenbank per Dump und die Dateien per rsync. Geschrieben wird nur in dein lokales DDEV-Projekt.
Welche Frameworks werden unterstützt?
Es gibt Profile für TYPO3 (9 bis 13), Laravel, Symfony, WordPress, Drupal und Shopware 6. Alle anderen Projekte laufen über ein generisches Profil, das ohne eigene Regeln nichts anonymisiert.
Funktioniert ddev-sync mit MySQL 8?
Als lokale DDEV-Datenbank nicht, sie wird abgelehnt. Lokal brauchst du MariaDB. Das Remote darf MySQL oder MariaDB sein.
Bleiben die Fake-Daten bei jedem Sync gleich?
Ja. Dieselbe Person bekommt bei jedem Sync dieselbe Fake-Identität. Testkonten und Bug-Reports ergeben so weiter Sinn.
Kann ich von einer Produktion synchronisieren, die in Docker läuft?
Ja, über den optionalen Sync-Endpunkt, den du in den Stack aufnimmst. Du brauchst dann nur einen SSH-Zugang zum Docker-Host, keine Docker-Rechte.
Etwas kaputt, oder fehlt dir etwas?
Ein Issue im Repository ist der schnellste Weg. Auch für Wünsche und Rückfragen.
Issue anlegenLieber direkt fragen?
Auf unserem Discord helfen wir dir weiter, und andere, die das Tool nutzen, auch.
Discord beitretenAus dem Logbuch
- Neues Projekt
Zum Ausprobieren: ddev-sync holt die Produktion nach lokal
Ein DDEV-Add-on, das Datenbank und Dateien per SSH aus der Produktion holt und personenbezogene Daten dabei durch Fake-Werte ersetzt.