Welcome to this step-by-step guide to installing TYPO3 with DDEV for local development. In this tutorial, you’ll set up a fresh TYPO3 instance using Composer inside a Docker-based DDEV environment, resulting in a fast, reproducible setup that works consistently across machines.
This guide is designed for developers and teams who want a reliable local TYPO3 setup without manual configuration of PHP, web servers, or databases. Whether you’re starting a new project or preparing a clean development environment, DDEV streamlines the entire process.
Before you begin, make sure Docker and DDEV are installed and running on your system, as they are required for the installation.
If you’re looking to deploy TYPO3 on cloud platforms instead of locally, you can explore these guides:
Now, let’s walk through the TYPO3 DDEV setup step by step and get your local site up and running.
Quick Install TL;DR
Set up a fresh TYPO3 installation locally with DDEV using Composer in just a few commands. This creates a complete Docker-based development environment and launches the TYPO3 Install Tool in your browser.
Step 1: Create a Project Directory
mkdir my-typo3-projectcd my-typo3-project
Step 2: Configure DDEV for TYPO3
ddev config --project-type=typo3 --docroot=public --create-docroot
Step 3: Start the DDEV Environment
ddev start
Step 4: Install TYPO3 via Composer
ddev sshcomposer create-project typo3/cms-base-distribution publicexit
Step 5: Launch the Site
ddev launch
Your browser will open the TYPO3 Install Tool at:
my-typo3-project.ddev.site
Follow the on-screen wizard to configure the database and create your admin account. Once completed, you’ll have a fully functional local TYPO3 instance running inside DDEV.
Prerequisites: Docker and DDEV must be installed and running before executing these commands.
What Is TYPO3?
TYPO3 is a free, open-source Content Management System (CMS) designed to help businesses and organizations create, manage, and grow their websites. Founded in 1997 by Kasper Skårhøj, TYPO3 has become one of the most widely used enterprise CMS platforms, particularly across Europe.
Built with PHP, TYPO3 uses TypoScript, a powerful configuration language that enables advanced customization and flexibility. It runs directly in your browser and delivers content using standard HTML and JavaScript, so no special client software is required.
TYPO3 is suitable for projects of all sizes. Whether you’re managing a small business website, a university portal, or a large enterprise platform, TYPO3 can scale to meet your requirements.
Why Developers, Marketers, and Agencies Choose TYPO3
TYPO3 is an open-source platform that grows with your project while maintaining stability and control. Key strengths include:
- Modularity: Build exactly what you need with a flexible extension ecosystem.
- Security & Stability: Long-Term Support (LTS) releases provide reliable updates and security patches for years.
- Scalability: Capable of supporting anything from small sites to complex global platforms.
- Community-Driven Development: A large international community continuously improves and maintains the system.
TYPO3 in Numbers
TYPO3 powers more than 500,000 active websites worldwide, making it a proven and trusted choice for enterprise-grade web projects.
Read more TYPO3 facts to explore its capabilities and real-world adoption.
Why Use TYPO3?
TYPO3 provides a robust set of enterprise-grade features designed for organizations that require flexibility, security, and long-term reliability. It supports complex website structures while remaining highly customizable through its extensive extension ecosystem.
Key advantages include:
- Granular User Roles & Permissions: Control access at a detailed level for editors, managers, and administrators.
- Multisite Management: Manage multiple websites from a single TYPO3 installation, ideal for enterprises and institutions.
- Extensibility: A large ecosystem of extensions enables you to add functionality without rebuilding core features.
- Scalability & Performance: Built to handle everything from small projects to large, high-traffic platforms.
- Long-Term Support: Regular LTS releases ensure stability, security updates, and predictable maintenance cycles.
TYPO3 is especially well suited for businesses, public institutions, and digital agencies that need a scalable CMS capable of supporting complex requirements over many years.
What do you need to run TYPO3 DDEV smoothly?
Before starting the TYPO3 installation with DDEV, ensure your system meets the necessary requirements. Running TYPO3 locally with DDEV depends on a containerized environment and a few essential tools working together.
The following components are required for a stable and efficient TYPO3 DDEV setup.
Docker
Docker is the foundation of the TYPO3 Docker setup. It provides isolated containers that run TYPO3 independently from your host system, preventing version conflicts and ensuring consistent behavior across different machines and team members’ environments.
DDEV
DDEV is a local development tool built on Docker that simplifies project setup and management. With a small set of commands, it provisions a complete TYPO3 development environment, including web server, PHP, and database services.
Operating System
DDEV supports Windows, macOS, and Linux. Your system must support Docker (for example, Docker Desktop on Windows/macOS or Docker Engine on Linux) for the TYPO3 DDEV setup to function correctly.
PHP Compatibility
The required PHP version depends on the TYPO3 version you plan to install. DDEV allows you to specify the PHP version in the project configuration, making it easy to match TYPO3’s system requirements without manual PHP installation.
Database (MySQL/MariaDB)
TYPO3 requires a database to store content, configuration, and user data. DDEV automatically provisions a MariaDB database (fully compatible with MySQL), eliminating the need for manual database setup.
SSH Access
An SSH interface is used to interact with the running containers. Commands such as ddev ssh allow you to access the web container, manage files, and run Composer directly within the TYPO3 environment.
Composer & Git
Composer is required to install TYPO3 packages and manage dependencies in modern TYPO3 projects. Git is recommended for version control, especially when collaborating with a team or maintaining a project repository.
You can now proceed with the step-by-step guide to install TYPO3 using DDEV.
System Requirements & Environment Notes
To run TYPO3 with DDEV efficiently, your system should meet certain hardware and platform conditions. While TYPO3 can run on modest setups, containerized development with Docker performs significantly better with adequate resources and proper OS configuration.
Recommended Hardware Resources
For a smooth local development experience, especially when running Docker containers, the following minimum specifications are recommended:
- RAM: At least 8 GB (16 GB recommended for larger projects)
- CPU: Modern multi-core processor (Intel i5 / AMD Ryzen 5 or higher)
- Disk Space: Minimum 10–20 GB free storage for containers, images, and project files
- SSD Storage: Strongly recommended for faster container performance and file operations
Insufficient resources may lead to slow container startup times, sluggish backend performance, or build failures.
OS-Specific Considerations (Windows, macOS, Linux)
DDEV and Docker support all major desktop operating systems, but setup details vary by platform:
- Windows: Requires Docker Desktop with WSL2 enabled for best performance. Running Docker without WSL2 may cause severe slowdowns.
- macOS: Docker Desktop works out of the box. Performance is generally stable, though resource allocation in Docker settings may need adjustment for large projects.
- Linux: Typically offers the best performance because Docker runs natively. Ensure your user has permission to run Docker commands without sudo.
Regardless of the OS, verify that virtualization is enabled in your system BIOS/UEFI settings.
Apple Silicon & WSL2 Notes
Modern hardware platforms require a few additional considerations:
- Apple Silicon (M1/M2/M3): Fully supported by Docker and DDEV, but some legacy images or extensions may not be optimized for ARM architecture. Use up-to-date Docker versions to avoid compatibility issues.
- Windows WSL2: Essential for running Docker efficiently on Windows. Ensure your Linux distribution is updated and integrated with Docker Desktop.
- Cross-Architecture Projects: When collaborating with teams using different hardware architectures, container builds may take longer on first run but will remain consistent afterward.
Meeting these requirements ensures a stable, fast, and reproducible TYPO3 development environment with DDEV.
Validate Your Setup Before Installation
Before installing TYPO3, confirm that Docker and DDEV are correctly installed and running on your system. Verifying your environment in advance helps prevent installation failures, container startup issues, and configuration errors later in the process.
Verify Docker Installation
Check that Docker is installed, running, and accessible from your command line.
Run:
docker --version
You should see the installed Docker version. If the command is not recognized or returns an error, ensure Docker Desktop (Windows/macOS) or Docker Engine (Linux) is properly installed and running.
To confirm the Docker service is active, you can also run:
docker info
This command displays system-level details about the Docker environment. If Docker is not running, start it before proceeding.
Verify DDEV Installation
Next, confirm that DDEV is installed and functioning correctly.
Run:
ddev --version
This should return the installed DDEV version number. If not, install DDEV using the official installation instructions for your platform.
You can also test whether DDEV can communicate with Docker by running:
ddev poweroff
This command stops any running DDEV projects and verifies that DDEV can control Docker containers successfully.
Once both Docker and DDEV are verified, your system is ready to proceed with the TYPO3 installation using DDEV.
Check Available Ports & Running Containers
Before starting your TYPO3 project, ensure that the required network ports are free and no conflicting containers are already running. Port conflicts are a common cause of startup failures in Docker-based environments.
DDEV typically uses ports 80 (HTTP) and 443 (HTTPS) for routing local projects. If another service (such as Apache, Nginx, IIS, or another Docker container) is already using these ports, your environment may fail to start.
Check for Running Docker Containers
List active containers:
docker ps
If you see containers using web server images or occupying important ports, stop them before proceeding.
To stop all running containers (if safe to do so):
docker stop $(docker ps -q)
Check Port Usage on Your System
Verify whether ports 80 or 443 are already in use.
On Linux/macOS:
lsof -i :80lsof -i :443
On Windows (PowerShell):
netstat -ano | findstr :80netstat -ano | findstr :443
If another application is using these ports, stop or reconfigure that service before starting DDEV.
Stop Existing DDEV Projects (If Any)
If you previously ran other DDEV projects, shut them down to avoid conflicts:
ddev poweroff
This stops all running DDEV environments on your machine.
Ensuring that required ports are available and no conflicting containers are active will help your TYPO3 DDEV setup start cleanly and reliably.
Why run DDEV on TYPO3?
Using DDEV with TYPO3 provides a modern, container-based approach to local development that eliminates manual server configuration and environment inconsistencies.
Instead of installing and maintaining PHP, web servers, and databases directly on your machine, DDEV provisions everything inside isolated Docker containers, resulting in a clean, reproducible setup.
Before exploring the advantages, it’s helpful to understand what TYPO3 DDEV actually refers to.
What Is TYPO3 DDEV?
TYPO3 DDEV refers to using the TYPO3 CMS together with the DDEV local development tool to create a fast, consistent, and easy-to-manage development environment.
DDEV is a Docker-based local development system that automates the setup of web server, PHP runtime, and database services.
It allows you to spin up fully functional TYPO3 environments in minutes without manually configuring Apache/Nginx, PHP versions, or MySQL. Because the environment is containerized, it behaves the same across different machines and operating systems.
TYPO3 projects benefit from DDEV’s built-in support, making it straightforward to start new projects or onboard team members quickly.
Key Benefits of Installing TYPO3 with DDEV
Installing TYPO3 with DDEV offers practical advantages for developers, teams, and agencies working on local or collaborative projects. It focuses on reliability, speed, and consistency rather than manual setup.
- Consistency: Every team member runs an identical development environment, reducing “works on my machine” issues.
- Automation: Common tasks such as shell access, Composer operations, and database management are integrated into simple DDEV commands.
- Flexibility: Additional services like Redis or Solr can be added with minimal configuration when required.
- Isolation: The TYPO3 environment runs separately from your host system, preventing conflicts with other projects.
- Community Support: DDEV is actively maintained and widely used within the TYPO3 ecosystem, ensuring ongoing compatibility and documentation.
This combination makes DDEV a reliable choice for modern TYPO3 development workflows.
Architecture of DDEV & TYPO3
DDEV uses Docker to create a containerized environment that runs all services required for TYPO3 locally. Instead of installing and configuring a full web stack on your machine, DDEV orchestrates dedicated containers that work together to serve your site.
How it works:
- You execute
ddevcommands on your local machine. - The DDEV CLI manages and coordinates the underlying Docker containers.
- The web container runs the Apache/PHP environment and accesses your project files (typically in the
public/directory). - The database container runs MariaDB, storing TYPO3 content and configuration.
- Your browser accesses the project through a local domain (for example,
my-typo3-project.ddev.site), which routes traffic to the web container.
This architecture ensures isolation, consistency across machines, and easy reproducibility of development environments.
TYPO3 Versions & Support Roadmap
TYPO3 follows a structured release cycle designed to provide long-term stability for professional projects.
Before installing TYPO3, it is important to understand the support model:
- LTS (Long-Term Support): Each major LTS release typically receives security and maintenance updates for about three years.
- ELTS (Extended Long-Term Support): A paid extension of support for organizations that need additional time to upgrade beyond the standard LTS period.
Using a currently supported LTS version ensures continued security updates, compatibility improvements, and access to community support.
TYPO3 Version & PHP Compatibility
When setting up TYPO3 with DDEV, selecting the correct PHP version is essential because each TYPO3 release supports specific PHP ranges. DDEV allows you to configure the PHP version per project, making it straightforward to match TYPO3’s requirements.
PHP & TYPO3 Compatibility
| TYPO3 Version | Supported PHP Versions | Status |
| 9 ELTS | 7.2 – 7.4 | Active ELTS |
| 10 ELTS | 7.2 – 7.4 | Active ELTS |
| 11 ELTS | 7.4, 8.0 | Active ELTS |
| 12 LTS | 8.1 – 8.4 | Active ELTS |
| 13 LTS | 8.2 – 8.4 | Active ELTS |
Choosing a compatible PHP version ensures that TYPO3 installs correctly and operates reliably within the DDEV environment.
Recommended TYPO3 Version for New Projects
For new TYPO3 installations, it is recommended to use the latest Long-Term Support (LTS) version available. LTS releases provide several years of security updates, bug fixes, and compatibility improvements, making them the safest and most stable choice for production and long-term development projects.
As of now, TYPO3 v13 LTS is the preferred option for new projects because it offers modern features, improved performance, and extended support coverage.
Why Choose the Latest LTS Version?
- Long Support Window: Receive regular security and maintenance updates for years.
- Modern Technology Stack: Supports current PHP versions and contemporary development practices.
- Better Performance & Security: Includes optimizations and hardened security features.
- Future-Proof Development: Reduces the need for near-term upgrades.
- Extension Compatibility: Most actively maintained extensions target the latest LTS versions.
Older versions (such as ELTS releases) are typically used only for maintaining legacy systems that cannot be upgraded immediately.
When creating a new TYPO3 project with DDEV, selecting the latest LTS version ensures the most reliable foundation for development, testing, and deployment.
Getting Started with TYPO3 DDEV Setup
Before installing TYPO3, ensure that the required tools are installed and functioning correctly on your system. This tutorial assumes a local development setup using Docker and the DDEV CLI.
To follow along, you will need:
- Docker installed and running
- Docker Desktop for Windows or macOS
- Docker Engine for Linux
- DDEV CLI installed
Install DDEV (If Not Already Installed)
You can install DDEV using the official installation script:
curl -fsSL ddev.com/install.sh | bash
Alternatively, download the version appropriate for your operating system from the official DDEV installation guide.
Verify Installation
After installing Docker and DDEV, confirm that both tools are available and working:
docker --versionddev --version
These commands should display the installed version numbers. If both return valid outputs and Docker is running, your environment is ready for the TYPO3 DDEV setup.
Composer Mode vs Classic Installation
TYPO3 projects can be installed using two different approaches: the modern Composer-based method and the older Classic (legacy) installation. Understanding the differences helps you choose the right setup for your project and development workflow.
Composer-Based Installation (Recommended)
Composer is the standard dependency manager for modern TYPO3 projects. In this approach, TYPO3 core packages and extensions are installed and managed through Composer, providing better control over versions and updates.
Key characteristics:
- TYPO3 core installed as Composer packages
- Dependencies managed automatically
- Easier upgrades and maintenance
- Supports modern development workflows and CI/CD
- Recommended for new projects and team environments
This method is fully supported by DDEV and aligns with current TYPO3 best practices.
Classic / Legacy Installation
The Classic installation method involves downloading TYPO3 as a standalone package (for example, from the TYPO3 website) and placing it directly in the web directory without using Composer.
Typical use cases:
- Maintaining older or legacy projects
- Environments where Composer is not used
- Quick evaluations of TYPO3 without dependency management
While still functional, this approach makes updates, extension management, and long-term maintenance more difficult compared to Composer-based setups.
Which Method Should You Choose?
- Choose Composer-based installation for new projects, professional development workflows, and long-term maintainability.
- Use Classic installation only when working with legacy systems or when Composer cannot be used.
For most modern TYPO3 projects running in DDEV, the Composer-based method is the recommended and future-proof option.
Creating the Installation Directory
Start by creating a new folder for your TYPO3 project and navigating into it. This directory will contain your project files and the DDEV configuration.
mkdir my-typo3-projectcd my-typo3-project
For a fresh installation, this folder can be empty. DDEV will generate the necessary configuration and environment files during setup.
Configure the Project Using ddev config
Once inside your project directory, run the configuration command:
ddev config
DDEV will prompt you for several project settings and then create a hidden .ddev/ folder containing essential configuration files such as:
config.yaml— Main project configurationdocker-compose.*.yaml— Optional service overrides
These files define how your TYPO3 environment will run inside Docker.
Project Name
Specify a project name (for example, my-typo3-project). This name is used by DDEV to identify the project and generate the local domain.
Docroot Configuration
Set the document root to the directory that should be served by the web server. For modern TYPO3 Composer-based installations, this is typically:
public
Ensure the docroot matches the folder where TYPO3’s public web files will reside. An incorrect docroot can lead to 404 errors or a non-functional site.
Note: If you are working with an existing TYPO3 project, verify the correct web root (for example, public/, web/, or another custom directory) before proceeding.
Project Type Selection
When prompted for the project type, choose:
typo3
Selecting the TYPO3 project type enables optimized default settings tailored for TYPO3 development, including appropriate web server configuration and environment variables.
After completing the prompts, DDEV generates the .ddev/ configuration directory. Your project is now ready for the next step: starting the environment and installing TYPO3.
Installing TYPO3 via Composer
Once DDEV is configured for your project, you can install TYPO3 using Composer. Running Composer inside the container ensures the correct PHP version and dependencies are used, matching your TYPO3 requirements.
Start the DDEV Environment
Initialize the local development environment:
ddev start
This command launches the required Docker containers, including:
- Web container
- Database container (MariaDB)
- Supporting services
After startup, your project environment is ready to accept commands and serve the application.
Access the Web Container
Enter the running web container to execute Composer commands within the configured environment:
ddev ssh
You will be placed inside the container shell, typically at:
/var/www/html
All subsequent installation commands should be executed from here.
Create the TYPO3 Project with Composer
Use Composer to download and install the TYPO3 base distribution:
composer create-project typo3/cms-base-distribution public
This installs TYPO3 into the public/ directory, which is the recommended document root for modern Composer-based setups.
Alternative:
If your project uses a different structure, replace public with your configured docroot folder.
This process downloads TYPO3 core files, required dependencies, and default project structure.
File Ownership & Permissions
DDEV typically manages file permissions automatically. However, if you encounter permission issues (for example, inaccessible files or write errors), adjust ownership from outside the container:
exitddev exec chown -R www-data:www-data /var/www/html/public
Ensuring correct ownership allows the web server to read and write files properly, which is essential for TYPO3 installation and operation.
After completing these steps, TYPO3 core files will be installed and ready for configuration through the Install Tool.
Run the TYPO3 Install Wizard
After installing TYPO3, complete the setup using the browser-based Installation Wizard.
Open your project in a browser:
ddev launch
This opens your local site (for example: https:// my-typo3-project.ddev.site).
If TYPO3 is installed correctly, the Install Tool will appear automatically.
DDEV provides database credentials via environment variables. Use the default values if prompted:
- Host:
db - Database name:
db - Username:
db - Password:
db
Create the administrator account, finalize the setup, and your local TYPO3 instance will be ready.
Note: If you encounter a 404 error or missing directory message, verify that the docroot in .ddev/config.yaml is correct.
TYPO3 verifies required PHP extensions, permissions, and server configuration.
Resolve any reported issues before continuing.
Enter the database credentials (or use the default DDEV values). TYPO3 will use this database to store content and settings.
Choose an existing empty database or allow TYPO3 to create a new one automatically.
Set up the administrator account and initial site configuration. Use a secure password for backend access.
Define the site name and choose whether to install a distribution or start with a blank project.
After completion, TYPO3 redirects you to the backend login screen.
Verify Installation Success
After completing the Installation Wizard, confirm that your TYPO3 instance is functioning correctly. Verifying both backend and frontend access ensures that the environment, database, and configuration are working as expected.
Access the TYPO3 Backend
Open the TYPO3 backend login page in your browser. You can typically access it via:
my-typo3-project.ddev.site/typo3
Enter the administrator credentials created during installation. Successful login indicates that TYPO3 core services and authentication are operational.
Check Frontend Site Availability
Visit the main project URL:
my-typo3-project.ddev.site
The site should load without errors. Depending on your setup, you may see a default page, a blank template, or the installed distribution.
Confirm Admin Login Works
After logging into the backend:
- Verify that the dashboard loads correctly
- Navigate to core modules (Page, List, Settings)
- Confirm that no system warnings or errors appear
- Optionally create a test page or content element to ensure database write operations function properly
Successful interaction confirms that TYPO3, database connectivity, and file permissions are correctly configured.
Troubleshooting TYPO3 Installation with DDEV
If your installation does not work as expected, the following common issues and solutions can help identify and resolve problems.
DDEV Containers Not Starting
If ddev start fails:
- Ensure Docker is running
- Check available system resources (RAM/CPU)
- Restart Docker and retry
- Review logs for errors:
ddev logs
Port Conflicts
Conflicts occur when another service uses ports 80 or 443.
Solutions:
- Stop local web servers (Apache, Nginx, IIS)
- Stop other Docker containers
- Run:
ddev poweroff
Then restart your project.
Permission Issues
Symptoms may include file write errors or failed installations.
Possible fixes:
- Verify correct file ownership inside the project directory
- Adjust permissions if necessary:
ddev exec chown -R www-data:www-data /var/www/html/public
Database Connection Errors
If TYPO3 cannot connect to the database:
- Confirm the database container is running
- Use default DDEV credentials if unsure:
- Host:
db - Database:
db - Username:
db - Password:
db
- Host:
- Restart the environment:
ddev restart
TYPO3 Install Tool Not Loading
If the Install Tool does not appear:
- Verify TYPO3 files were installed in the correct docroot
- Confirm
.ddev/config.yamlpoints to the correct directory (e.g.,public) - Clear browser cache or try another browser
- Restart DDEV:
ddev restart
Blank Page or 500 Error
Internal server errors typically indicate configuration or dependency issues.
Recommended checks:
- Review TYPO3 logs in the project directory
- Check DDEV logs:
ddev logs
- Ensure required PHP extensions are available
- Verify file permissions and database connectivity
Addressing these common issues will resolve most problems encountered during a TYPO3 installation with DDEV.
Daily TYPO3 DDEV Workflow
Once installation is complete, you will interact primarily with the DDEV environment to manage your project.
The .ddev Folder
The .ddev/ directory contains configuration files that define your local environment:
config.yaml— Core project configuration (PHP version, docroot, project type)docker-compose.*.yaml— Optional service definitions or overridesdb_snapshots/— Optional database backups
Example configuration:
name: my-typo3-projecttype: typo3docroot: publicphp_version: “8.1”router_http_port: “80”router_https_port: “443”webserver_type: apache-fpmxdebug_enabled: false
Common DDEV Commands
These commands help you control and troubleshoot your local TYPO3 environment:
ddev start— Start project containersddev stop— Stop the current projectddev poweroff— Stop all running DDEV projectsddev ssh— Access the web container shellddev composer [args]— Run Composer inside the containerddev exec [command]— Execute arbitrary commands in the containerddev logs— View container logs for debuggingddev describe— Display project URLs and service details
Understanding these commands will streamline daily development tasks and maintenance.
Adding Extra Services & Extensions
DDEV allows you to enhance your TYPO3 development environment by adding additional services such as caching systems or search engines, as well as installing TYPO3 extensions.
These components run alongside your project inside containers and can be enabled with minimal configuration.
Example: Adding Redis
Redis can be used for caching or session storage to improve performance.
Create a file named .ddev/docker-compose.redis.yaml with the following content:
version: '3.6'services:redis:image: redis:6container_name: ddev-${DDEV_SITENAME}-redisports:- 6379labels:com.ddev.site-name: ${DDEV_SITENAME}
If required, configure environment variables or PHP settings in .ddev/config.yaml (or an override file) to enable Redis support, such as installing the PHP Redis extension.
Restart the environment to apply the changes:
ddev restart
After restarting, Redis will be accessible inside the containers using:
- Hostname:
redis - Port:
6379
Installing TYPO3 Extensions
TYPO3 functionality can be extended by installing extensions using Composer or the classic file-based approach.
Composer-based installation (recommended):
Inside the container:
ddev sshcomposer require georgringer/newsexit
This installs the extension and its dependencies in a modern TYPO3 setup.
Classic installation method:
For legacy projects, extension files can be placed directly in:
public/typo3conf/ext/
Both methods are supported within a DDEV environment.
Using an Existing TYPO3 Project with DDEV
DDEV can also be used to run an existing TYPO3 project locally. Instead of creating a new installation, you configure DDEV around the existing codebase, install dependencies, and import the project database.
Import Existing Codebase
Place your existing TYPO3 project files into a local directory and navigate to it:
cd path/to/your-typo3-project
Ensure the project contains the TYPO3 core files and the correct web root (for example, public/, web/, or another configured directory).
Initialize DDEV in the project folder:
ddev config --project-type=typo3
Follow the prompts to set the project name and document root.
Install Dependencies
For Composer-based projects, install required packages inside the container:
ddev startddev composer install
This restores the TYPO3 core, extensions, and dependencies defined in composer.json.
For non-Composer (legacy) projects, ensure all required files and extensions are present in the project directory.
Import Database
TYPO3 requires the project database to function correctly. Import a database dump into the DDEV environment:
ddev import-db --src=path/to/database.sql
After import, TYPO3 should recognize the existing site content and configuration.
Adjust Configuration & Docroot
Verify that the document root configured in .ddev/config.yaml matches the project’s web directory (commonly public/).
Also check TYPO3 configuration files (such as database connection settings) if needed. In most cases, DDEV’s database credentials can be used:
- Host:
db - Database:
db - Username:
db - Password:
db
Restart the environment to apply any changes:
ddev restart
Your existing TYPO3 project should now run locally within the DDEV environment.
Best Practices & Tips for TYPO3 DDEV Install
Following proven practices helps maintain a stable, reproducible, and efficient local TYPO3 development environment when using DDEV.
Manage Environment in Git
Commit the .ddev/ directory to your version control system so that all team members share the same environment configuration.
Avoid committing files that contain sensitive data (such as local overrides with credentials).
With the configuration tracked in Git, collaborators can clone the repository and start the project with:
ddev start
This ensures consistent development environments across the team.
Using Xdebug
Xdebug enables step-by-step debugging of PHP code.
To enable Xdebug, update .ddev/config.yaml:
xdebug_enabled: true
Restart the environment to apply the change:
ddev restart
Configure your IDE (such as PhpStorm or VS Code) to listen for debugging connections, typically on port 9003. You can then set breakpoints and inspect variables during execution.
Database Snapshots
DDEV provides snapshot functionality for backing up and restoring the project database.
Create a snapshot:
ddev snapshot
This generates a compressed archive in .ddev/db_snapshots/.
Restore a snapshot:
ddev snapshot restore [snapshotname]
Snapshots are useful for preserving development states or testing changes safely.
Overriding PHP Configuration
Custom PHP settings can be applied using override files.
Create the file:
.ddev/php/ini-overrides.ini
Add the required configuration values, for example:
memory_limit = 512Mmax_execution_time = 240
Restart DDEV to apply the new settings:
ddev restart
This approach allows fine-tuning of the runtime environment without modifying global system settings.
Performance Tips for Local Development
Optimizing your local environment can significantly improve TYPO3 performance when running inside DDEV. Proper configuration reduces page load times, speeds up builds, and ensures smoother development workflows.
Xdebug Performance Considerations
Xdebug is essential for debugging but can noticeably slow down PHP execution when enabled.
Recommendations:
- Enable Xdebug only when actively debugging
- Disable it during normal development to improve performance
- Toggle Xdebug in
.ddev/config.yaml:
xdebug_enabled: false
Apply changes by restarting the environment:
ddev restart
Disabling Xdebug when not needed can dramatically speed up TYPO3 backend and frontend responses.
Memory & Execution Settings
Large TYPO3 projects or extension installations may require higher PHP resource limits.
You can adjust settings using a PHP override file:
.ddev/php/ini-overrides.ini
Example configuration:
memory_limit = 512Mmax_execution_time = 240upload_max_filesize = 64Mpost_max_size = 64M
Restart DDEV after changes:
ddev restart
Adequate memory and execution limits help prevent timeouts and installation failures.
Optimizing Docker Performance
Docker resource allocation directly affects TYPO3 performance.
Consider the following optimizations:
- Allocate sufficient RAM and CPU to Docker in its settings
- Use SSD storage for project files and Docker data
- Close unnecessary containers or applications consuming resources
- Restart Docker periodically to clear resource bottlenecks
- On Windows/macOS, ensure file sharing settings include your project directory
Proper Docker tuning ensures faster container startup times and smoother TYPO3 operation during development.
TYPO3 DDEV Remote Hosting Integration
While DDEV is primarily designed for local development, it can also integrate with remote hosting environments and automated deployment workflows.
This makes it useful for synchronizing data, testing changes, and maintaining consistency between local and remote setups.
Key capabilities include:
- Pulling from Remote Environments:
You can import databases and files from staging or production environments into your local setup using provider-specific integrations.
ddev pull
- Pushing to Remote Environments:
In supported setups, local database or file changes can be pushed back to a remote environment for testing or deployment.
ddev push
- CI/CD Integration:
DDEV can be used in automated pipelines running inside temporary (ephemeral) Docker environments. This enables reproducible builds, automated testing, and consistent deployment processes across teams.
By bridging local development with staging or production systems, DDEV helps maintain alignment between environments while reducing configuration drift.
Conclusion
DDEV eliminates the need to manually configure PHP, web servers, and databases for local TYPO3 development. With a few commands, you can spin up a fully functional TYPO3 environment, share consistent configurations across your team, debug efficiently, and accelerate development workflows.
Its containerized approach ensures reliability, reproducibility, and flexibility, making it a practical choice for modern TYPO3 projects of any size. Installing and using DDEV is straightforward, allowing developers to focus on building and testing rather than managing infrastructure.
Happy TYPO3 development with DDEV!
FAQs For TYPO3 DDEV
Yes. Docker is required because DDEV uses containers to run the web server, PHP runtime, and database. Without Docker running, DDEV cannot start the TYPO3 environment.
Use the latest Long-Term Support (LTS) version of TYPO3. LTS releases provide extended security updates, stability, and compatibility with modern PHP versions, making them ideal for new projects.
DDEV automatically provisions a database with standard credentials:
- Host:
db - Database:
db - Username:
db - Password:
db
These values typically work out of the box during the TYPO3 Installation Wizard.
Yes. You can configure DDEV in the existing project directory, install dependencies (if Composer is used), and import the project database. Once configured, the site will run locally inside the DDEV environment.
Performance issues are usually caused by insufficient system resources, Xdebug being enabled, or low Docker memory allocation. Disabling Xdebug when not debugging and increasing Docker resources typically improves speed.
Open your project URL followed by /typo3, for example:
my-typo3-project.ddev.site/typo3
Log in using the administrator credentials created during the Installation Wizard.

Wolfgang Weber
Brand & Communication LeadWolfgang Weber shapes TYPO3 with passion and expertise. As TYPO3 enthusiast, he has contributed to TYPO3 projects that make websites faster and more secure. Outside of TYPO3, you'll probably find him exploring local cafés and…
More From Author