DDEV, základní nastavení.

17. 3. 2026

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 config

Příkaz ddev config tě provede interaktivním nastavením – typ projektu, docroot apod.

Existující projekt:

cd /cesta/k/projektu
ddev config

DDEV rozpozná typ projektu a nabídne vhodné výchozí hodnoty.

3. Spuštění projektu

ddev start

Spustí 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 URL

5. 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 kontejneru

6. Ukončení práce

ddev stop

Zastaví 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 ddev

Ověř instalaci:

ddev --version

Pozor: 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 launch

Základní příkazy

PříkazPopis
ddev startSpustí projekt
ddev stopZastaví projekt (data zůstanou zachována)
ddev restartRestartuje projekt
ddev launchOtevře projekt v prohlížeči
ddev statusZobrazí stav kontejnerů, URL a porty
ddev describePodrobné informace o projektu
ddev poweroffVypne 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 update

Pří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 adminer

Adminer 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:

ParametrHodnota
Host127.0.0.1
Portviz ddev status (např. 32821)
Uživateldb
Heslodb
Databázedb

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 mailpit

Nebo 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í stav

Xdebug 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 snapshoty

Tip: 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 soubor

Př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 share

Po 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 konfiguraci

Node.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 yarn

Verzi 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 list

Pozor 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 start

Po každé změně config.yaml je nutný restart:

ddev restart

Nejčastěji měněné hodnoty:

KlíčPopisPříklad
php_versionVerze PHP"8.3"
nodejs_versionVerze Node.js"20"
webserver_typeTyp webserverunginx-fpm, apache-fpm
typeTyp projektudrupal11, wordpress
hooksPříkazy po startu/stopuviz ukázka výše

Aktualizace DDEV

sudo apt update && sudo apt install -y ddev

Užitečné odkazy

Jiří Wolf - Php programátor, webdesign

Jiří Wolf

Jsem webový vývojář a programátor. Vytvářím webové stránky a aplikace a využívám k tomu převážně CMS Drupal pro jeho stabilitu a bezpečnost. Dělám weby které jsou snadno dostupné pro zákazníky a prodávají.

Pokud by jste chtěli nové webové stránky a nebo redesign současných, zavolejte mi na mobil: +420 608 23 33 34, nebo mi pošlete zprávu na email: jiri.wolf@jw.cz.

Můžete taky využít tento formulář