Základní pracovní postup s DDEV
Předpokladem je nainstalovaný Docker a DDEV. Níže je typický postup od vytvoření nového projektu až po ukončení práce.
1. Instalace DDEV
Pokud DDEV ještě není nainstalovaný, viz sekci Instalace DDEV níže.
2. Inicializace projektu
Nový projekt:
mkdir muj-projekt && cd muj-projekt
ddev configPříkaz ddev config tě provede interaktivním nastavením – typ projektu, docroot apod.
Existující projekt:
cd /cesta/k/projektu
ddev configDDEV rozpozná typ projektu a nabídne vhodné výchozí hodnoty.
3. Spuštění projektu
ddev startSpustí Docker kontejnery (webserver, databáze a další služby). Po spuštění vypíše URL, na které projekt běží.
4. Vývoj a práce na projektu
Po spuštění máš k dispozici kompletní prostředí – webserver, MariaDB, Mailpit atd. Projekt je dostupný na lokální URL ve tvaru https://<název-projektu>.ddev.site.
ddev launch # otevře projekt v prohlížeči
ddev status # zobrazí aktuální stav a URL5. Práce s databází
ddev import-db --file=dump.sql.gz # import databáze
ddev export-db --file=dump.sql.gz # export databáze
ddev ssh -s db # přímý přístup do DB kontejneru6. Ukončení práce
ddev stopZastaví kontejnery a uvolní systémové zdroje. Všechna data a konfigurace zůstanou zachovány pro příští spuštění.
7. Další konfigurace a rozšíření
DDEV umožňuje pokročilé přizpůsobení přímo v souboru .ddev/config.yaml:
- Změna verze PHP (
php_version: "8.3") - Přizpůsobení Nginx/Apache konfigurace
- Přidání dalších služeb (Redis, Elasticsearch, Solr…) přes add-ony
- Vlastní Docker Compose soubory pro specifické potřeby
Instalace DDEV
Přidej oficiální DDEV repozitář a nainstaluj:
curl -fsSL https://pkg.ddev.com/apt/gpg.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/ddev.gpg > /dev/null
echo "deb [signed-by=/etc/apt/trusted.gpg.d/ddev.gpg] https://pkg.ddev.com/apt/ * *" | sudo tee /etc/apt/sources.list.d/ddev.list
sudo apt update && sudo apt install -y ddevOvěř instalaci:
ddev --versionPozor: Standardní Ubuntu repozitář (apt) může obsahovat zastaralou verzi DDEV. Vždy používej oficiální DDEV repozitář výše.
Nový projekt – Drupal CMS
mkdir my-drupal-site && cd my-drupal-site
ddev config --project-type=drupal11 --docroot=web
ddev composer create-project drupal/cms
ddev launchZákladní příkazy
| Příkaz | Popis |
|---|---|
ddev start | Spustí projekt |
ddev stop | Zastaví projekt (data zůstanou zachována) |
ddev restart | Restartuje projekt |
ddev launch | Otevře projekt v prohlížeči |
ddev status | Zobrazí stav kontejnerů, URL a porty |
ddev describe | Podrobné informace o projektu |
ddev poweroff | Vypne všechny DDEV projekty najednou |
Práce uvnitř kontejnerů
Přihlášení do kontejneru (SSH)
ddev ssh # web kontejner (PHP, Drupal)
ddev ssh -s db # databázový kontejner (MariaDB/MySQL)Spuštění příkazu bez přihlášení
ddev exec ls web/Drush a Composer
Na většinu běžných úkolů nemusíš lézt dovnitř kontejneru – DDEV má přímé zkratky:
# Drush
ddev drush cr # clear cache
ddev drush st # status webu
ddev drush updb # databázové updaty
ddev drush cex # export konfigurace
# Composer
ddev composer require drupal/some_module
ddev composer updatePřístup k databázi
Adminer (webové rozhraní)
Nejprve nainstaluj add-on (vyžaduje DDEV >= v1.24.10):
ddev add-on get ddev/ddev-adminer
ddev restart
ddev adminerAdminer se otevře v prohlížeči na adrese http://<projekt>.ddev.site:9100.
Pokud se stránka nenačte přes doménové jméno, zkus http://127.0.0.1:9100.
Připojení externím klientem (TablePlus, DBeaver, HeidiSQL…)
Přihlašovací údaje zjistíš přes ddev status:
| Parametr | Hodnota |
|---|---|
| Host | 127.0.0.1 |
| Port | viz ddev status (např. 32821) |
| Uživatel | db |
| Heslo | db |
| Databáze | db |
Pozor: Port se může po každém ddev restart změnit – vždy ověř aktuální hodnotu přes ddev status.
Mailpit – zachytávání e-mailů
DDEV v základu obsahuje Mailpit pro zachytávání odchozích e-mailů:
ddev mailpitNebo přistup přímo na http://<projekt>.ddev.site:8025.
Ladění a logy
Logy
ddev logs # logy webserveru (nginx)
ddev logs -s db # logy databáze
ddev logs -f # sledování logů v reálném čase (follow)Xdebug
DDEV má Xdebug integrovaný – stačí ho zapnout:
ddev xdebug on # zapne Xdebug
ddev xdebug off # vypne Xdebug
ddev xdebug status # zobrazí aktuální stavXdebug naslouchá na portu 9003. V IDE (VS Code, PhpStorm) stačí nastavit připojení na tento port – DDEV vygeneruje potřebnou konfiguraci automaticky.
Tip: Xdebug nechávej zapnutý jen při debugování – znatelně zpomaluje PHP.
Databázové snapshoty
Snapshoty jsou rychlejší alternativa k exportu/importu – databáze se uloží jako obraz Docker volume.
ddev snapshot # vytvoří snapshot s automatickým názvem
ddev snapshot --name muj-snapshot # snapshot s vlastním názvem
ddev snapshot --list # seznam všech snapshotů
ddev snapshot restore # obnoví poslední snapshot
ddev snapshot restore muj-snapshot # obnoví konkrétní snapshot
ddev snapshot --cleanup # smaže všechny snapshotyTip: Před každou větší změnou (update Drupalu, migrace databáze) si udělej snapshot – obnovení trvá sekundy.
Přímý MySQL CLI
Pro rychlé dotazy nebo ruční zásahy do databáze přímo z terminálu:
ddev mysql # přihlásí se do MySQL klienta
ddev mysql -e "SHOW TABLES;" # spustí dotaz bez přihlášení
ddev mysql < dump.sql # importuje SQL souborPřihlašovací údaje DDEV doplní automaticky – není třeba zadávat heslo.
Sdílení lokálního webu (ddev share)
Příkaz ddev share zpřístupní tvůj lokální web přes internet pomocí ngrok. Hodí se pro ukázku klientovi nebo testování na mobilním zařízení.
ddev sharePo spuštění dostaneš veřejnou URL (např. https://abc123.ngrok.io), která přesměrovává provoz na tvůj lokální server. URL je aktivní po dobu běhu příkazu.
Pozor: Veřejná URL je přístupná komukoli na internetu – používej ji jen pro dočasné ukázky.
PHP a Node.js příkazy
PHP
ddev php -v # verze PHP
ddev php -r "phpinfo();" # spustí PHP kód
ddev exec php -i | grep xdebug # ověří Xdebug konfiguraciNode.js, npm, yarn
ddev node --version # verze Node.js
ddev npm install # instalace závislostí
ddev npm run build # spuštění build skriptu
ddev yarn install # alternativa přes yarnVerzi Node.js lze nastavit v .ddev/config.yaml:
nodejs_version: "20"Více projektů
Každý DDEV projekt žije ve vlastním adresáři s konfigurací v .ddev/config.yaml. Projekty jsou na sobě zcela nezávislé a lze je spouštět paralelně.
# Přepnutí mezi projekty – stačí změnit adresář
cd ~/Projects/projekt-a
ddev start
cd ~/Projects/projekt-b
ddev start
# Zobrazení všech projektů a jejich stavů
ddev listPozor na porty: Při paralelním běhu více projektů může dojít ke konfliktům portů. DDEV to obvykle řeší automaticky přes Traefik router – každý projekt dostane vlastní doménu <název>.ddev.site.
Konfigurace .ddev/config.yaml
Hlavní konfigurační soubor projektu. Generuje se automaticky přes ddev config, ale lze ho editovat ručně.
name: muj-projekt
type: drupal11
docroot: web
php_version: "8.3"
webserver_type: nginx-fpm
nodejs_version: "20"
router_http_port: "80"
router_https_port: "443"
hooks:
post-start:
- exec: drush cr # spustí drush cr po každém ddev startPo každé změně config.yaml je nutný restart:
ddev restartNejčastěji měněné hodnoty:
| Klíč | Popis | Příklad |
|---|---|---|
php_version | Verze PHP | "8.3" |
nodejs_version | Verze Node.js | "20" |
webserver_type | Typ webserveru | nginx-fpm, apache-fpm |
type | Typ projektu | drupal11, wordpress |
hooks | Příkazy po startu/stopu | viz ukázka výše |
Aktualizace DDEV
sudo apt update && sudo apt install -y ddevUžitečné odkazy
- Pro vkládání komentářů se musíte přihlásit