dirnbauer avatar

typo3-ddev

Best practices for TYPO3 local development with DDEV, including configuration, database management,

作者 dirnbauer|オープンソース

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: https://{sitename}.ddev.site/ · Docs: https://docs.{sitename}.ddev.site/

Each version has an Apache vhost (/var/www/html/v{VERSION}) via additional_hostnames. Never infer URLs from directory listings.

Credentials: admin / Joh316!!

Container Priority

  1. .ddev/ exists → ddev exec
  2. docker-compose.ymldocker compose exec
  3. System tools only if no container. Use project's configured PHP.

In-container file edits: docker cp in, 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 (simple, no SQL) · PostgreSQL 16 (GIS) · MySQL 8.0 (Oracle parity). 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 (apt-get dist-upgrade). Custom settings: .ddev/php/custom.ini. See references/0003-php-version-management.md.

TYPO3 Version Differences

v12v13v14.3 LTS
Setupinstall:setup --use-existing-databasesetupsetup
ActivationAuto (Composer)extension:setupextension:setup
composer.jsonoptionaloptionalrequired (classic mode, #108310)
Default themebootstrap-packagebootstrap-packageCamino (#108539)
Fluid2.x4.x5.x strict (#108148)
CKEditor41–4241–4247

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 docs
  • ddev xdebug on · cache flush: see Troubleshooting

Extension Naming

Hyphens for composer (nr-llm), underscores for TYPO3 key (nr_llm). Source: composer.json name.

Troubleshooting

IssueSolution
Port conflictrouter_http_port: "8080" / router_https_port: "8443"
Database existsddev mysql -e "DROP DATABASE v13; CREATE DATABASE v13;"
Extension not foundddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush
Windows health checkAdd /phpstatus endpoint with php-fpm.sock
PCOV/pecl failsapt-get install php${PHP_VERSION}-pcov
PHP settings ignoredPlace in .ddev/php/custom.ini
Full cleanupddev delete --omit-snapshot --yes then remove Docker volumes

References

TopicFile
Prerequisitesreferences/prerequisites-validation.md
Quick startreferences/quickstart.md
Advanced optionsreferences/advanced-options.md
Post-setupreferences/post-setup-verification.md
Branding/landing pagereferences/index-page-generation.md
ADR Referencesreferences/{0001,0002,0003}-*.md
Windowsreferences/windows-fixes.md, references/windows-optimizations.md
Docs renderingreferences/documentation-rendering.md
Troubleshootingreferences/troubleshooting.md

Credits & Attribution

This skill is based on the excellent work by Netresearch DTT GmbH.

Original repository: https://github.com/netresearch/typo3-ddev-skill

Copyright (c) Netresearch DTT GmbH — Methodology and best practices (MIT / CC-BY-SA-4.0)

Special thanks to Netresearch DTT GmbH for their generous open-source contributions to the TYPO3 community, which helped shape this skill collection. Adapted by webconsulting.at for this skill collection

typo3-ddev - Claude Code・Cursor 対応の AIエージェント Skill | Agent Skills