Why DDEV is used for TYPO3
DDEV simplifies TYPO3 development by providing a preconfigured Docker-based environment with all required services such as PHP, database, and web server. It eliminates manual setup and reduces environment-related errors.
Why Docker-based workflow matters
A Docker-based workflow ensures that TYPO3 runs in an isolated, reproducible environment. This means:
- Consistent setup across all developers
- No dependency conflicts on local machines
- Easy project onboarding and replication
- Production-like environment for safer development workflows
Quick Answer: Install TYPO3 with DDEV in 10 Minutes
You can set up a working TYPO3 local development environment using DDEV and Composer in a few steps.
5-Step Installation Flow
Create a project directory
mkdir typo3-project && cd typo3-projectInitialize DDEV for TYPO3
ddev config --project-type=typo3 --docroot=public --create-docrootStart the DDEV environment
ddev startDDEV uses this configuration to build a consistent Docker-based environment containing PHP, database, and web server services specifically optimized for TYPO3 development.Install TYPO3 via Composer
ddev composer create "typo3/cms-base-distribution:^12"Run the TYPO3 setup tool
ddev launch typo3/install.php
Result
You get a fully functional TYPO3 development environment with web server, database, and email testing ready for local development.
User Intent Breakdown
This guide addresses different types of user intent behind searches for installing TYPO3 with DDEV.
Beginner Intent
Users who want a simple, step-by-step setup without deep technical knowledge. They expect:
- Clear installation steps
- Copy-paste commands
- Minimal configuration complexity
Developer Intent
Users familiar with TYPO3, Composer, and Docker who want:
- Structured DDEV project setup
- TYPO3 Version compatibility details (v12–v14)
- Clean local development workflow
Troubleshooting Intent
Users who already tried installation and face issues. They are looking for:
- Fixes for setup errors
- DDEV or Composer debugging
- Database or install tool problems
- Environment-related issues (ports, permissions, cache)
Agency / DevOps Intent
Teams or professionals setting up scalable environments who need:
- Standardized TYPO3 development setup
- Reusable DDEV configuration
- Multi-project consistency
- Production-aligned local environments
System Requirements
This section defines the minimum technical requirements needed to install and run TYPO3 with DDEV in a modern local development environment.
Core Requirements
- Docker (latest stable version)
- DDEV (v1.23+ recommended for TYPO3 projects)
- Composer 2.x for dependency management
- TYPO3 compatibility:
Operating System Support
- Windows (requires WSL2 for optimal DDEV performance)
- macOS (Intel and Apple Silicon supported)
- Linux (native support recommended for best performance)
Pre-Installation Checklist (Failure Prevention)
Before starting the installation, ensure your environment is properly prepared to avoid common setup errors.
Required Checks
- Docker is installed and running
- DDEV is installed and accessible via CLI
- Composer is installed (version 2 or higher)
- Required ports (80, 443, 3306) are not in use
- System has sufficient memory (minimum 4GB, 8GB recommended for smooth TYPO3 operation)
- Internet access is available for Composer package downloads
This checklist ensures a stable environment and prevents most common TYPO3 + DDEV installation failures before they occur.
Creating Installation Directory
This step sets up a clean workspace where the TYPO3 project will be installed.
Recommended Approach
Use a clear, project-specific naming convention that works well for agencies and multiple environments:
mkdir typo3-project && cd typo3-project
Why this structure matters
- Avoids generic folder names like
t3example - Improves clarity in multi-project setups
- Aligns with agency-level development standards
- Makes CI/CD and Git integration easier later
Creating a New DDEV Project
After preparing the project directory, initialize DDEV to create the TYPO3 development environment.
Basic Configuration Command
ddev config --project-type=typo3 --docroot=public --create-docrootWhat this configuration does
- Sets project type to TYPO3 (enables optimized defaults)
- Defines
publicas the web root directory - Automatically creates the docroot if it does not exist
- Generates a
.ddevconfiguration for container setup
Why this step is important
DDEV uses this configuration to build a consistent Docker-based environment containing PHP, database, and web server services specifically optimized for TYPO3 development.
Starting the DDEV Project
After configuration, start the local development environment using DDEV. This initializes all required Docker containers for TYPO3.
ddev start
What happens when you start DDEV
DDEV spins up a complete local stack with the following services:
- Web server container (Apache/Nginx + PHP)
- Database container (MariaDB/MySQL)
- Mailpit container (for email testing)
Important note
TYPO3 is not installed at this stage. This step only prepares the local runtime environment.
Installing TYPO3 via Composer
Once the DDEV environment is running, install TYPO3 using Composer inside the container.
ddev composer create “typo3/cms-base-distribution:^12”
Version compatibility (2026 standard)
- TYPO3 v12 LTS → PHP 8.1
- TYPO3 v13 LTS → PHP 8.2
- TYPO3 v14 → PHP 8.3
Important note
During installation, you may be prompted to confirm overwriting existing files. This is expected in fresh project setups and should be accepted.
Running the TYPO3 Setup Tool
After installation, TYPO3 must be initialized using the setup process. You can do this in two ways:
Option 1: CLI Setup (Recommended for developers)
ddev exec ./vendor/bin/typo3 setup
This command launches an interactive setup wizard in the terminal.
Option 2: Browser Setup (Install Tool)
Create the FIRST_INSTALL file:
ddev exec touch public/FIRST_INSTALLLaunch the installer:
ddev launch typo3/install.php- Complete the setup wizard in the browser
Summary
- CLI setup is faster and automation-friendly
- Browser setup is easier for beginners and first-time installations
Post-Installation Setup (High Value Section)
After TYPO3 is installed, the next step is to configure the system for first use. This ensures the backend, site configuration, and initial content structure are ready.
Backend Login Flow
- Access the TYPO3 Backend via
/typo3 - Log in using the admin credentials created during setup
- Verify successful access to the backend dashboard
Admin User Setup
- Ensure the first admin user has full system permissions
- Create additional backend users if working in a team environment
- Assign appropriate roles and access levels where needed
Site Configuration
- Define the main site in the Site Management module
- Configure base URL (important for routing and links)
- Set language settings and site identifier
- Verify TypoScript template availability if required
First Page Creation
- Create a root page in the page tree
- Set it as the website root (using page properties)
- Add initial content elements to validate frontend rendering
DDEV Architecture Explanation
Understanding how DDEV structures a TYPO3 project helps with debugging and long-term maintenance.
Container Structure
DDEV runs TYPO3 inside isolated Docker containers:
- Web container: PHP runtime + web server
- Database container: MariaDB/MySQL storage
- Mailpit container: captures outgoing emails for testing
Why the public Folder is Used
- Acts as the web root (document root)
- Ensures only public assets are accessible via browser
- Keeps system files outside public access for security
config.yaml Overview
The .ddev/config.yaml file defines:
- Project type (TYPO3)
- PHP version
- Web server configuration
- Port mapping and routing rules
This file ensures the environment is reproducible across all developer machines.
Datenbank- und E-Mail-Verwaltung (Services-Ebene)
DDEV provides built-in tools to manage database and email testing without external setup.
Database Access
ddev launch -p
- Opens database management interface (e.g., phpMyAdmin/Adminer depending on setup)
- Used to inspect and manage TYPO3 database tables
Email Testing
ddev launch -m
- Opens Mailpit interface
- Captures all outgoing TYPO3 emails locally
- Useful for testing password resets and system notifications
Configuration Source
Database and mail settings are automatically configured in:
config/system/additional.php
Summary
- Database and email are preconfigured in DDEV
- No manual server setup required
- Ideal for fast local development and testing workflows
Developer Tools Setup (DDEV + TYPO3)
This section focuses on improving debugging efficiency and developer productivity during TYPO3 development.
Xdebug Setup
- Enable Xdebug in the DDEV project configuration
- Configure IDE integration (PhpStorm / VS Code)
- Use breakpoints for backend and frontend debugging
- Validate PHP request flow inside TYPO3 controllers and Extbase
Logs Location
TYPO3 and DDEV logs are essential for debugging issues.
- TYPO3 logs:
var/log/
- System-level logs:
- DDEV container logs via
ddev logs
- DDEV container logs via
- Web server logs:
- Accessible through DDEV container output
Debugging Workflow
Recommended workflow for TYPO3 development:
- Enable TYPO3 dev context if required
- Use Xdebug for step-by-step execution
- Monitor logs in real time using DDEV
- Clear cache when configuration changes are not reflected
- Validate database queries via debug tools or SQL inspection
Troubleshooting Common Issues
This section covers the most frequent issues encountered during TYPO3 + DDEV setup and their fixes.
Installation Fails
- Check Composer version (must be 2.x)
- Ensure sufficient memory limit for Composer
- Verify correct TYPO3 package version
Port Conflicts (80/443/3306)
- Stop conflicting services (Apache, MySQL, nginx)
- Change DDEV ports if required
- Restart DDEV environment
Composer Memory Errors
- Increase PHP memory limit for CLI
- Use
COMPOSER_MEMORY_LIMIT=-1if needed
Database Connection Failure
- Ensure DDEV is running
- Verify
.envor configuration matches DDEV credentials - Restart database container
Permission Issues (Linux / WSL)
- Fix file ownership inside project directory
- Ensure correct user permissions for Docker volumes
Install Tool Not Loading
- Ensure
FIRST_INSTALLfile exists inpublic/ - Clear browser cache
- Restart DDEV project
Reset / Reinstall TYPO3 in DDEV
This section explains how to safely reset or completely reinstall a TYPO3 project inside DDEV.
Full Project Reset
- Stop DDEV project
- Remove containers and volumes
- Delete existing database
ddev delete --omit-snapshot
Clean Rebuild Workflow
- Reinitialize project with
ddev config - Reinstall TYPO3 via Composer
- Re-run installation setup tool
Safe Reinstall Workflow
- Backup necessary configuration if needed
- Remove vendor and database
- Re-run full installation process from scratch
Summary
This reset workflow ensures a clean state for debugging broken installations or recreating development environments quickly.
Performance & Best Practices
This section covers optimization techniques to ensure a faster and more stable TYPO3 development environment using DDEV.
Composer Optimization
- Use
composer install --optimize-autoloaderfor production-like performance - Prefer
--no-devfor production builds (not local DDEV) - Regularly update dependencies to avoid outdated packages
- Use Composer cache to speed up repeated installs
Cache Cleanup (TYPO3)
- Clear TYPO3 cache after configuration changes
- Use backend cache clearing or CLI commands when needed
- Avoid stale cache issues during extension development
Dev vs Production Separation
- Keep DDEV strictly for local development
- Do not replicate production optimizations locally unless testing
- Separate
.envconfigurations for dev and production environments - Avoid enabling production caching strategies in local setups
Security Notes (Local Development)
This section highlights security considerations when running TYPO3 in a local DDEV environment.
Local HTTPS Trust (mkcert concept)
- DDEV supports HTTPS via locally trusted certificates
- Use mkcert-based trust for secure local development
- Ensures browser behaves like production environment
Development Environment Warning
- Do not use DDEV configuration in production
- Local setups may expose debug tools and verbose errors
- Disable debugging features before deployment
- Keep credentials and sensitive data isolated from production systems
Conclusion
TYPO3 Installation with DDEV provides a fast, reliable, and reproducible local development environment. By combining Docker, Composer, and DDEV, you get a fully containerized setup that eliminates system dependency issues and standardizes development across teams.
If you follow this guide, you now have:
- A working TYPO3 local development environment
- A Composer-based project structure
- A fully configured DDEV setup with database and email support
- A repeatable workflow for future projects
Next Steps
- Start building your TYPO3 site structure
- Install required extensions based on project needs
- Configure TypoScript and site settings
- Move towards production deployment when ready
FAQs
Yes. TYPO3 v12, v13, and v14 all work with DDEV when using compatible PHP versions (8.1–8.3 depending on TYPO3 version).
Yes. DDEV is built on Docker, so Docker is mandatory for running TYPO3 in this setup.
Common reasons include:
- Incorrect Composer version
- Missing PHP memory allocation
- Port conflicts
- Incomplete DDEV setup
- Missing database connection during setup
Yes. DDEV is only a local development environment. You can migrate files, database, and configuration to any production server.
This message appears when the setup process has not been completed. You must run the TYPO3 setup tool (setup or install.php) after Composer installation.
Yes. Modern TYPO3 installations (v12+) are Composer-based and require Composer for dependency management.
Contact for Internet agency and TYPO3 projects
Sven Thelemann
Service Partner - Germany

Be the First to Comment