typo3-ddev
TYPO3 DDEV Setup Skill
CRITICAL: URL Scheme
NEVER guess URLs. Read name: from .ddev/config.yaml, then apply subdomain pattern:
https://v{VERSION}.{sitename}.ddev.site/typo3/ — e.g., https://v14.my-ext.ddev.site/typo3/
Landing page: https://{sitename}.ddev.site/ · Docs: https://docs.{sitename}.ddev.site/
Each version gets its own Apache vhost (/var/www/html/v{VERSION}), routed via additional_hostnames. Check configured versions before presenting URLs. Never infer URLs from directory listings.
Credentials: admin / Joh316!!
Container Priority
.ddev/exists →ddev execdocker-compose.yml→docker compose exec- System tools only if no container. Always use project's configured PHP.
Quick Start
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
Database Selection
MariaDB 10.11 (default) · SQLite (simple, no SQL) · PostgreSQL 16 (GIS) · MySQL 8.0 (Oracle parity). See references/advanced-options.md.
PHP Management
php_version: "8.3" in config.yaml. Upgrade via .ddev/web-build/Dockerfile (apt-get dist-upgrade). Custom settings: .ddev/php/custom.ini. See references/0003-php-version-management.md.
TYPO3 Version Differences
| v12 | v13 | v14.3 LTS | |
|---|---|---|---|
| Setup | install:setup --use-existing-database |
setup |
setup |
| Activation | Auto (Composer) | extension:setup |
extension:setup |
composer.json |
optional | optional | required (classic mode, #108310) |
| Default 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.
Post-Setup Verification
ddev status, ddev describe, ddev exec -d /var/www/html/v13 vendor/bin/typo3 extension:list --active. See references/post-setup-verification.md.
Optional Services & Commands
- Valkey 8 (default) or Redis 7:
references/0001-valkey-default-with-redis-alternative.md - Ofelia scheduler: TYPO3 scheduler automation
ddev generate-makefile/ddev generate-index/ddev docsddev xdebug on/ Cache:ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush
Extension Naming
Hyphens for composer (nr-llm), underscores for TYPO3 key (nr_llm). Source: composer.json name.
Troubleshooting
| 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 | Add /phpstatus endpoint with php-fpm.sock |
| PCOV/pecl fails | apt-get install php${PHP_VERSION}-pcov |
| PHP settings ignored | Place in .ddev/php/custom.ini |
| Full cleanup | ddev delete --omit-snapshot --yes then remove Docker volumes |
References
| Topic | File |
|---|---|
| Prerequisites | references/prerequisites-validation.md |
| Quick start | references/quickstart.md |
| Advanced options | references/advanced-options.md |
| Post-setup | references/post-setup-verification.md |
| Branding/landing page | references/index-page-generation.md |
| Windows | references/windows-fixes.md, references/windows-optimizations.md |
| Docs rendering | references/documentation-rendering.md |
| PHP versions | references/0003-php-version-management.md |
| Troubleshooting | references/troubleshooting.md |