About typo3-ddev
A setup and troubleshooting skill for TYPO3 projects using DDEV, with guidance for version-specific installation, databases, PHP settings, and verification. It also describes a provisioning path for environments without DDEV.
Key features
- 01DDEV-based TYPO3 setup
- 02Version-specific installation steps
- 03Database and PHP configuration
- 04Post-setup checks
- 05Provisioning without DDEV
- 06Troubleshooting guidance
Use cases
- 01Setting up TYPO3 versions locally
- 02Choosing and configuring a database
- 03Verifying installation and login routes
- 04Provisioning TYPO3 without DDEV
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ netresearch/ typo3-ddev-skill --skill typo3-ddevAfter installing, type/typo3-ddevin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
assets/templates/.envrcconfig.redis.php.exampleconfig.yamldocker-compose.git-info.yamldocker-compose.ofelia.yaml.optionaldocker-compose.services-redis.yaml.optionaldocker-compose.services.yaml.optionaldocker-compose.web.yamlindex.html.netresearch.templateindex.html.typo3.templateMakefile.templateassets/templates/apache/apache-site.confdocs.confv11.confv12.confv13.confv14.confassets/templates/commands/install-allinstall-v11install-v12install-v13install-v14assets/templates/commands/host/docspre-start-git-infosetupassets/templates/commands/web/configure-extension.optionalgenerate-indexgenerate-makefileinstall-introduction.optionalassets/templates/homeadditions/.bashrc_additions.optionalDetails
From the project READMETYPO3 DDEV Setup Skill
CRITICAL: URL Scheme
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!!
Container Priority
.ddev/exists →ddev execdocker-compose.yml→docker compose exec- System tools only if no container. Use project's configured PHP.
No 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.
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 · PostgreSQL 16 · MySQL 8.0. See references/advanced-options.md, references/0002-mariadb-default-with-database-alternatives.md.
PHP Management
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.
TYPO3 Version Differences
| 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.
Post-Setup Verification
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.
Optional Services & Commands
- Valkey 8 (default) or Redis 7:
references/0001-valkey-default-with-redis-alternative.md - Ofelia: scheduler automation ·
ddev generate-makefile/generate-index/docs/xdebug on
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 | /phpstatus endpoint with php-fpm.sock |
| PHP settings ignored | .ddev/php/custom.ini |
| Full cleanup | ddev delete --omit-snapshot --yes, remove volumes |
References
| 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 |