Automate DDEV environment setup for TYPO3 extension development. Use when setting up local development environment, configuring DDEV for TYPO3 extensions, or creating multi-version TYPO3 testing environments. Covers DDEV configuration generation, TYPO3 11.5/12.4/13.4 LTS installation, custom DDEV commands, Apache vhost setup, Docker volume management, and .gitignore best practices. By Netresearch.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
LICENSEREADME.mdassets/templates/Makefile.templateassets/templates/README-SERVICES.md.optionalassets/templates/apache/apache-site.confassets/templates/commands/host/docsassets/templates/commands/host/pre-start-git-infoassets/templates/commands/host/setupassets/templates/commands/install-allassets/templates/commands/install-v11assets/templates/commands/install-v12assets/templates/commands/install-v13assets/templates/commands/web/configure-extension.optionalassets/templates/commands/web/generate-indexassets/templates/commands/web/generate-makefileassets/templates/commands/web/install-introduction.optionalassets/templates/config.redis.php.exampleassets/templates/config.yamlassets/templates/docker-compose.git-info.yamlassets/templates/docker-compose.ofelia.yaml.optionalAutomates DDEV environment setup for TYPO3 extension development projects with multi-version testing support.
Use when:
ext_emconf.php or is a TYPO3 extension in composer.json# 1. Validate prerequisites
scripts/validate-prerequisites.sh
# 2. Generate DDEV configuration (in extension root)
# Extracts: extension key, package name, vendor namespace
# 3. Start DDEV
ddev start
# 4. Install TYPO3 versions
ddev install-all # All versions
ddev install-v13 # Single version
Run scripts/validate-prerequisites.sh to check:
If validation fails: references/prerequisites-validation.md
Automatically detect from project files:
ext_emconf.php or composer.json (extra.typo3/cms.extension-key)composer.json name fieldcomposer.json autoload.psr-4Creates:
.ddev/
├── config.yaml
├── docker-compose.web.yaml
├── apache/apache-site.conf
├── web-build/Dockerfile
└── commands/web/
├── install-v11
├── install-v12
├── install-v13
└── install-all
.envrc (direnv integration)
ddev start
ddev install-all # Installs TYPO3 + extension + Introduction Package
| Environment | URL Pattern |
|---|---|
| Overview | https://{sitename}.ddev.site/ |
| TYPO3 v11 | https://v11.{sitename}.ddev.site/typo3/ |
| TYPO3 v12 | https://v12.{sitename}.ddev.site/typo3/ |
| TYPO3 v13 | https://v13.{sitename}.ddev.site/typo3/ |
| Docs | https://docs.{sitename}.ddev.site/ |
Credentials: admin / Joh316!
{{DDEV_SITENAME}}: DDEV project name (from extension key){{EXTENSION_KEY}}: Extension key with underscores{{PACKAGE_NAME}}: Composer package name{{DDEV_SITENAME}}: For volume namingv11-data, v12-data, v13-data){{EXTENSION_KEY}}: Extension key for display{{DDEV_SITENAME}}: DDEV project name (URLs){{GENERATED_DATE}}: Auto-populated generation dateddev generate-makefile
Provides make up, make test, make lint, make ci commands.
ddev generate-index
Creates overview dashboard at main domain.
ddev docs
Renders Documentation/*.rst to Documentation-GENERATED-temp/.
Important: Always use Documentation-GENERATED-temp/ (TYPO3 convention), never docs/.
See references/documentation-rendering.md for detailed setup.
# In .ddev/web-build/Dockerfile
RUN pecl install pcov && docker-php-ext-enable pcov
PCOV is faster than Xdebug for code coverage collection.
Each TYPO3 version includes:
The install scripts automatically configure:
$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["trustedHostsPattern"] = ".*";
$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["features"]["security.backend.enforceReferrer"] = false;
This prevents "Invalid Referrer" and "Trusted Host" errors in the multi-subdomain DDEV environment.
| Issue | Solution |
|---|---|
| Database exists error | ddev mysql -e "DROP DATABASE v13; CREATE DATABASE v13;" |
| Extension not appearing | ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush |
| Services not loading | ddev restart or check docker logs |
| Invalid Referrer error | Already fixed - reinstall with ddev install-v13 |
| Windows issues | See references/windows-fixes.md |
Critical: Avoid the double-ignore anti-pattern where .ddev/.gitignore ignores itself.
Commit (share with team):
.ddev/config.yaml, .ddev/docker-compose.*.yaml.ddev/apache/, .ddev/commands/, .ddev/web-build/Ignore (personal/generated):
.ddev/.homeadditions, .ddev/.ddev-docker-compose-full.yaml.ddev/db_snapshots/For TYPO3 v13+, site sets are automatically configured during installation:
# config/sites/main/config.yaml (auto-generated)
dependencies:
- bootstrap-package/full
The install script adds Bootstrap Package as a site set dependency, enabling proper frontend rendering out of the box.
To add your extension as a site set dependency:
dependencies:
- bootstrap-package/full
- vendor/extension-name
See references/advanced-options.md for site set configuration details.
| Topic | File |
|---|---|
| Prerequisite validation | references/prerequisites-validation.md |
| Quick start guide | references/quickstart.md |
| Advanced options (PHP, DB, services) | references/advanced-options.md |
| Index page generation | references/index-page-generation.md |
| Documentation rendering | references/documentation-rendering.md |
| Troubleshooting | references/troubleshooting.md |
| Windows-specific fixes | references/windows-fixes.md |
| Windows optimizations | references/windows-optimizations.md |
| Database alternatives | references/0002-mariadb-default-with-database-alternatives.md |
| Cache alternatives | references/0001-valkey-default-with-redis-alternative.md |
| TYPO3 12 CLI changes | references/typo3-12-cli-changes.md |
| Script | Purpose |
|---|---|
scripts/validate-prerequisites.sh | Check Docker, DDEV, project structure |