Use when setting up DDEV for TYPO3 extension development or testing across multiple TYPO3 versions (11.5/12.4/13.4/14.0).
NEVER guess URLs. Read name: from .ddev/config.yaml, then apply the subdomain pattern:
https://v{VERSION}.{sitename}.ddev.site/typo3/ · Landing: https://{sitename}.ddev.site/ · Docs: https://docs.{sitename}.ddev.site/
Each version gets a vhost (/var/www/html/v{VERSION}) via additional_hostnames. Never infer URLs from directory listings.
Credentials: admin / Joh316!!
.ddev/ exists → ddev execdocker-compose.yml → docker compose execNo DDEV available (CI, container, agent harness — DDEV drives Docker): read .ddev/config.yaml and .ddev/commands/, then scripts/provision-without-ddev.sh --extension . --serve. The distribution ships no .htaccess, so /typo3/ answers 200 while sub-routes 404 — references/without-ddev.md.
In-container edits: docker cp in, then ddev exec — not heredocs/php -r. See references/container-file-editing.md.
ddev start && ddev install-all # All versions (11/12/13/14)
ddev install-v14 # v14.3 LTS (default / gold standard)
ddev install-v13 # v13.4 LTS
MariaDB 10.11 (default) · SQLite · PostgreSQL 16 · MySQL 8.0. See references/advanced-options.md, references/0002-mariadb-default-with-database-alternatives.md.
php_version: "8.3" in config.yaml. Upgrade via .ddev/web-build/Dockerfile. Settings: .ddev/php/custom.ini. See references/0003-php-version-management.md.
| | v12 | v13 | v14.3 LTS |
|---|---|---|---|
| Setup | install:setup --use-existing-database | setup | setup |
| Activation | Auto | extension:setup | extension:setup |
| composer.json | optional | optional | required (#108310) |
| Theme | bootstrap-package | bootstrap-package | Camino (#108539) |
| Fluid | 2.x | 4.x | 5.x strict (#108148) |
| CKEditor | 41–42 | 41–42 | 47 |
See references/typo3-12-cli-changes.md.
ddev status, ddev describe, ddev exec -d /var/www/html/v13 vendor/bin/typo3 extension:list --active. Check a consequence, not a status: /typo3/login must answer 200. See references/post-setup-verification.md.
references/0001-valkey-default-with-redis-alternative.mdddev generate-makefile / generate-index / docs / xdebug onHyphens for composer (nr-llm), underscores for TYPO3 key (nr_llm). Source: composer.json name.
| Issue | Solution |
|---|---|
| Port conflict | router_http_port: "8080" / router_https_port: "8443" |
| Database exists | ddev mysql -e "DROP DATABASE v13; CREATE DATABASE v13;" |
| Extension not found | ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush |
| Windows health check | /phpstatus endpoint with php-fpm.sock |
| PHP settings ignored | .ddev/php/custom.ini |
| Full cleanup | ddev delete --omit-snapshot --yes, remove volumes |
| Topic | File in references/ |
|---|---|
| Without DDEV | without-ddev.md |
| Prerequisites, quick start | {prerequisites-validation,quickstart}.md |
| Advanced, post-setup, branding | {advanced-options,post-setup-verification,index-page-generation}.md |
| ADRs · Windows | {0001,0002,0003}-*.md · windows-{fixes,optimizations}.md |
| Docs rendering, troubleshooting | {documentation-rendering,troubleshooting}.md |
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer