Install TYPO3 with Docker - Fast & Reliable Setup Guide (2026 Edition)

TYPO3 is a powerful enterprise CMS, but manual setup can take time. Developers often need to manage PHP versions, database settings, Composer dependencies, server configuration, and file permissions before the project even starts.

Install TYPO3 with Docker - Fast & Reliable Setup Guide (2026 Edition)

TYPO3 Docker makes this easier by running the CMS inside a consistent container-based environment. This helps developers avoid setup issues, work smoothly across teams, and prepare projects for local development, staging, and deployment.

In this guide, you will learn how to install TYPO3 with Docker using DDEV and WebDevOps, compare setup options, manage persistent data, fix common issues, and move an existing TYPO3 project into Docker.

What is TYPO3?

TYPO3 is an open-source enterprise CMS built for complex, scalable, and multilingual websites. It is commonly used by businesses, universities, government organizations, and agencies that need secure content management, flexible workflows, and long-term website stability.

Compared to basic website builders, TYPO3 gives developers deeper control over templates, extensions, permissions, multi-site setups, and custom functionality.

Since TYPO3 depends on specific PHP versions, database settings, extensions, and server configurations, Docker helps create a consistent environment for development, testing, and deployment.

Not sure of your TYPO3 version?
Check it now and take action.

Your TYPO3 Version:13.4

Congratulations! Your TYPO3 system is running on the latest major version 14. We are happy to support maintenance and updates.

Your TYPO3 Version:

Your TYPO3 version is still supported for now. We recommend upgrading to the latest major version 14 to stay secure and up to date.

You do not have a TYPO3 system, or we are unable to identify your version. Please contact us for an individual review of your system and a non-binding initial consultation regarding your TYPO3 upgrade. The upgrade is particularly critical for TYPO3 systems older than version 8, as the lack of further development and support can lead to acute security vulnerabilities. Let us plan your next TYPO3 upgrade together!

Please enter a valid domain

Why Developers Use Docker for TYPO3

Docker advantages for TYPO3 projects

Developers use Docker for TYPO3 because it keeps the full project environment consistent across different machines, teams, and workflows.

Key benefits include:

  • Consistent setup: Keeps PHP, database, server, and extension settings aligned.
  • Faster onboarding: Helps new developers start without manual environment setup.
  • Fewer errors: Reduces version conflicts, missing dependencies, and local setup issues.
  • Better teamwork: Makes TYPO3 projects easier to share, test, and maintain.
  • CI/CD support: Supports automated testing, staging, and deployment workflows.
  • Scalable structure: Works well for projects using database, cache, search, or background services.

For very small TYPO3 websites on simple hosting, Docker may be more than needed. But for Composer-based projects, agencies, and team workflows, it is usually the cleaner long-term choice.

TYPO3 Docker Setup Options Explained

Before installing TYPO3 with Docker, choose the setup based on your project size, team workflow, and deployment needs.

Setup Option

Best For

Production Suitability

Learning Curve

DDEV

Local development, beginners, quick setup

Local development only

Low

WebDevOps Docker Setup

Teams, agencies, advanced projects

Can be adapted for staging or production-like workflows

Medium

Custom Docker Compose

Enterprise projects, CI/CD, full infrastructure control

Yes, if configured securely

High

Recommended approach:

  • Use DDEV for local TYPO3 development.
  • Use WebDevOps for advanced team workflows and staging-like setups.
  • Use Custom Docker Compose when the project needs full control over PHP, database, cache, search, security, and deployment.

For most TYPO3 projects, DDEV is the easiest starting point. For larger teams or production-focused workflows, WebDevOps or a custom Docker Compose setup gives better long-term control.

Containers vs Virtual Machines

Containers are lighter than virtual machines because they share the host system kernel instead of running a separate operating system for every app. For TYPO3, this means faster startup, lower resource usage, and smoother local development.

Feature

Virtual Machines

Containers

Architecture

Runs a full OS with a hypervisor

Shares the host OS kernel

Startup Time

Slower, usually minutes

Faster, usually seconds

Resource Usage

Higher CPU, RAM, and storage use

Lightweight and efficient

Portability

Depends on VM setup

Runs wherever Docker is supported

Best Use Case

Legacy systems or OS-level isolation

Development, testing, CI/CD, and scalable deployments

For most TYPO3 Docker setups, containers are the better choice because they reduce environment conflicts and make it easier to manage PHP, database, cache, and web server services.

Virtual machines may still be useful when a project needs full OS-level isolation, legacy software, or custom kernel-level control.

Requirements to Run TYPO3 with Docker

TYPO3 Docker: Requirements

To run TYPO3 with Docker, you need a stack that supports the CMS, PHP, database, Composer, and persistent project data.

Must-have requirements

  • Docker: Required to create and run TYPO3 containers.
  • Docker Compose: Used to manage services like PHP, web server, database, and cache.
  • PHP 8.2 or newer: Recommended baseline for modern TYPO3 v13/v14 projects.
  • Web server: Apache, Nginx, Caddy, or another supported server.
  • Database: MariaDB, MySQL, PostgreSQL, or SQLite, based on your TYPO3 Version.
  • Composer: Required for modern Composer-based TYPO3 installations.
  • Persistent volumes: Needed to protect database data, uploaded files, and project configuration.

Recommended for larger projects

  • DDEV: Best for fast local TYPO3 development.
  • WebDevOps: Useful for advanced team workflows and production-like setups.
  • Redis: Recommended when the project needs stronger caching and better performance.
  • Image processing tools: Required when TYPO3 needs cropping, scaling, or media processing.

2026 compatibility note

For new TYPO3 Docker projects, always check your TYPO3 version, PHP version, database support, and Docker image tags before starting. A safe modern setup is a Composer-based TYPO3 project with PHP 8.2+, Docker Compose, a supported database, and mapped volumes for files and database storage.

Method 1 - TYPO3 with DDEV

DDEV is the easiest way to install TYPO3 with Docker for local development. It handles PHP, database, web server, and Docker configuration through simple commands.

Use DDEV when:

  • You need a fast local TYPO3 setup
  • You are starting a Composer-based TYPO3 project
  • Your team needs the same setup across different machines
  • You want fewer manual PHP, database, and server configuration issues

Basic setup flow:

  • Create a new TYPO3 project folder.
  • Configure the project with DDEV.
  • Start the Docker containers.
  • Install TYPO3 using Composer.
  • Run the TYPO3 setup wizard.
  • Open the TYPO3 Backend and start development.

Basic DDEV setup:

Basic DDEV setup:
mkdir my-typo3-site && cd my-typo3-site
ddev config --project-type=typo3 --docroot=public --create-docroot
ddev start
ddev composer create "typo3/cms-base-distribution:^13"
ddev exec touch public/FIRST_INSTALL
ddev launch /typo3/install.php
ddev launch /typo3

Example DDEV configuration:

name: my-typo3-site
type: typo3
docroot: public
php_version: "8.2"
web_environment:
 - TYPO3_CONTEXT=Development

DDEV is best for local development, testing, and team onboarding. Do not use a DDEV stack as your production deployment setup.

Method 2 - WebDevOps Docker Setup

WebDevOps is better for TYPO3 projects that need more control over services, server structure, and production-like workflows. 

Use WebDevOps when:

  • You need advanced Docker configuration
  • Your team wants staging-like or production-like environments
  • The project needs Redis, Solr, Elasticsearch, custom PHP settings, or mail testing
  • You want more control over Nginx, Apache, PHP-FPM, and database containers
  • The TYPO3 project is larger, technical, or enterprise-focused

Basic setup flow:

  1. Clone or prepare the WebDevOps TYPO3 Docker setup.
  2. Choose the required Docker Compose environment file.
  3. Start the containers.
  4. Configure the database and TYPO3 Installation.
  5. Adjust services based on project needs.
  6. Test the setup before using it for team workflows.

Basic WebDevOps setup:

git clone https:// github.com/webdevops/TYPO3-docker-boilerplate.git my-typo3-project
cd my-typo3-project
cp docker-compose.development.yml docker-compose.yml
docker-compose up -d

After the containers start:

  • Place or connect your TYPO3 project inside the application directory used by the setup.
  • Choose the right web stack, such as Nginx or Apache, based on your hosting preference.
  • Configure the database, PHP version, environment files, and required services.
  • Enable optional services like Redis, Solr, or Elasticsearch only if the project needs them.
  • Test the TYPO3 backend, frontend, file handling, and database connection before using it in a team workflow.

WebDevOps is useful for agencies and enterprise teams that need Docker to support more than basic local development. For production, review security, persistent storage, environment variables, backups, and exposed ports before deployment.

TYPO3 Docker Images Compared

Different TYPO3 Docker images serve different goals. Some are built for quick local development, while others work better as a base for structured team workflows or production-controlled setups.

Docker Image / Setup

Best For

Production Fit

Use Case

DDEV

Local development

No

Best for quick TYPO3 setup, testing, and team onboarding

WebDevOps TYPO3 Docker Boilerplate

Advanced teams and agencies

Possible with extra review

Useful for custom services, staging-like workflows, and scalable setups

Martin Helmich TYPO3 Image

Local testing and demos

No

Good for quick experiments, not recommended for production

Crinis TYPO3 Docker

Composer-based TYPO3 projects

Depends on setup

Suitable for flexible development and custom TYPO3 structures

Custom Docker Compose

Enterprise and production control

Yes, if configured securely

Best for full control over PHP, database, web server, Redis, Solr, security, and deployment

For most developers, DDEV is the safest local development choice. For agencies and larger teams, WebDevOps or a custom Docker Compose setup gives more control over services and environments.

For production-focused TYPO3 projects, do not choose an image only because it is easy to start. Check maintenance status, supported TYPO3/PHP versions, image tags, security updates, persistent volumes, environment handling, and backup strategy before using it in a live setup.

Managing Volumes and Data Persistence in TYPO3 Docker

Volumes are critical in TYPO3 Docker because they keep website data safe when containers are stopped, rebuilt, or replaced.

Without proper volume mapping, uploads, database records, configuration files, and cached assets can disappear during a container rebuild.

Important TYPO3 data to persist:

  • fileadmin/ – stores uploaded media, documents, images, and site assets
  • uploads/ – stores backend-uploaded files in older or specific TYPO3 setups
  • typo3conf/ – stores configuration, extensions, and project-specific settings
  • var/ or typo3temp/ – stores cache, logs, and temporary files depending on the TYPO3 version
  • Database volume – stores pages, users, content records, backend data, and site configuration

Example Docker volume mapping:

services:
 web:
   image: webdevops/php-apache:8.2
   volumes:
     - .:/var/www/html
     - fileadmin:/var/www/html/public/fileadmin
     - uploads:/var/www/html/public/uploads
     - typo3conf:/var/www/html/public/typo3conf
 db:
   image: mariadb:10.6
   volumes:
     - dbdata:/var/lib/mysql
volumes:
 fileadmin:
 uploads:
 typo3conf:
 dbdata:

Common mistake: storing uploaded files or database data only inside the container. When that container is recreated, the data can be lost.

For team projects, keep a clear process for sharing sanitized database dumps and file bundles, so every developer can work with a safe and updated local TYPO3 environment.

A reliable TYPO3 Docker setup should always separate temporary container files from permanent project data.

TYPO3 Docker Best Practices

TYPO3 Docker Best Practices

A strong TYPO3 Docker setup should be stable, secure, repeatable, and easy for the team to maintain.

Follow these best practices:

  • Separate environments: Use different settings for development, staging, and production.
  • Use Composer properly: Keep composer.json and composer.lock version-controlled for reproducible builds.
  • Pin important versions: Avoid unstable PHP, TYPO3, and image tags in serious projects.
  • Use .env files carefully: Store environment values separately, but never expose sensitive credentials.
  • Enable OPcache: Improve TYPO3 performance by caching compiled PHP code.
  • Use Redis when needed: Add Redis for larger TYPO3 projects with heavier caching requirements.
  • Persist important data: Map volumes fileadmin/, uploads, configuration files, and database storage.
  • Avoid dev settings in production: Disable debug mode, development tools, and unnecessary logging.
  • Keep services internal: Do not expose database, Redis, or admin tools publicly unless required and secured.
  • Document common commands: Make it easy for developers to start, stop, rebuild, reset, and debug the setup.

Example command shortcuts:

up:

    docker-compose up -d

down:

    docker-compose down

logs:

    docker-compose logs -f

reset:

    docker-compose down -v
    docker-compose up -d

Before using TYPO3 Docker in staging or production, review security, backups, persistent storage, PHP settings, and exposed ports.

Common TYPO3 Docker Issues and Fixes

Most TYPO3 Docker issues come from wrong configuration, missing services, incorrect permissions, or unmapped volumes.

Issue

Why It Happens

What to Check

White screen after installation

PHP error, missing extension, cache issue, or wrong permissions

Check TYPO3 logs, container logs, PHP extensions, and file permissions

Database connection error

DB container is stopped, credentials are wrong, or host/port is incorrect

Check DB service status, .env values, database name, username, password, and port

TYPO3 URL not opening

Wrong port mapping, router issue, or container not running

Run docker ps, check exposed ports, or use ddev describe

Images not processing

GD, ImageMagick, or required image tools are missing

Confirm image processing extensions are installed and enabled

Uploaded files missing after rebuild

Files were stored inside the container instead of mapped volumes

Persist fileadmin/, uploads, and database storage with Docker volumes

Slow TYPO3 backend

OPcache, Redis, database, or cache settings are not optimized

Enable OPcache, review cache backend, and check database performance

Composer install fails

PHP version mismatch or dependency conflict

Check TYPO3 system requirements, PHP version, and composer.lock

Useful diagnostic commands:

docker-compose logs -f
docker ps
docker-compose logs db

For DDEV projects:

ddev logs
ddev describe
ddev composer diagnose

Also check TYPO3 logs inside:

var/log/
var/log/typo3.log

Before rebuilding containers, always confirm that the database and uploaded files are stored in persistent volumes.

Dockerising an Existing TYPO3 Project

An existing TYPO3 project can be moved into Docker safely when the files, database, Composer setup, and environment values are mapped correctly.

Before starting, check:

  • Database backup: Export a clean database dump before making changes.
  • Project structure: Confirm whether the project is Composer-based or legacy.
  • Web root: Check whether TYPO3 runs from public/, web/, or another document root.
  • File storage: Move fileadmin/, uploads, and media assets without changing references.
  • Configuration: Review typo3conf/, environment variables, database credentials, and local settings.
  • PHP compatibility: Match the Docker PHP version with the TYPO3 version and installed extensions.
  • Persistent volumes: Keep database data and uploaded files outside the temporary container filesystem.

Basic migration flow:

mysqldump -u USER -p OLD_DATABASE > typo3-backup.sql
mkdir my-typo3-docker
cd my-typo3-docker
# Add DDEV, WebDevOps, or custom Docker setup
# Copy TYPO3 project files into the correct web root
# Import the database into the Docker database container

If the project is still using a legacy non-Composer structure, document the web root, extensions, and custom paths before moving it. For long-term maintainability, consider converting the project to a Composer-based setup during the migration.

The safest approach is to test the Dockerized TYPO3 project locally first. Check backend login, frontend pages, media files, forms, extensions, redirects, and file references before moving the setup to staging or production.

TYPO3 Docker Performance Optimization

Optimizing performance in TYPO3 Docker

TYPO3 Docker performance depends on PHP tuning, caching, database configuration, file handling, and how cleanly the services are separated.

Key optimization steps:

  • Enable OPcache: Cache compiled PHP code to improve TYPO3 response time.
  • Use Redis for caching: Add Redis for larger websites, complex content structures, or high-traffic projects.
  • Optimize the database: Review indexes, slow queries, memory settings, and connection limits.
  • Keep images lightweight: Avoid unnecessary packages inside Docker images.
  • Separate services: Run PHP, web server, database, cache, and search as separate services.
  • Tune TYPO3 caching: Choose cache backends based on project size and traffic needs.
  • Avoid dev settings in production: Disable debug mode, development tools, and excessive logging.
  • Check file sharing performance: On macOS or Windows, large fileadmin/ folders can slow Docker down. Use Docker Desktop performance settings, DDEV performance tips, or WSL2 on Windows.

For staging and production, test performance in an environment close to the live setup. Check backend speed, frontend load time, database queries, cache behavior, and media processing before release.

Security Best Practices for TYPO3 Docker

Security is important when TYPO3 Docker is used beyond local development, especially for staging and production projects.

Follow these security practices:

  • Separate dev, staging, and production settings: Do not use local development settings on live websites.
  • Protect environment variables: Avoid exposing database passwords, API keys, and backend credentials.
  • Use Docker secrets where possible: Keep sensitive values safer than plain environment variables.
  • Force HTTPS in production: Use SSL and secure web server configuration.
  • Set TYPO3 context correctly: Use production context for live environments.
  • Disable debug mode: Keep error details hidden from public users.
  • Limit container access: Run only required services and avoid unnecessary open ports.
  • Keep images updated: Use maintained base images and update security patches regularly.

A secure TYPO3 Docker setup should keep sensitive data protected, separate environments clearly, and avoid exposing development tools on production servers.

TYPO3 Docker in CI/CD Pipelines

CI/CD helps TYPO3 teams test, build, and deploy Docker-based projects with fewer manual errors.

A basic TYPO3 Docker CI/CD flow includes:

  • Code push: Developer pushes changes to Git.
  • Dependency check: Composer installs and validates required TYPO3 packages.
  • Docker build: The pipeline builds a versioned TYPO3 Docker image.
  • Automated testing: TYPO3 checks, PHP checks, and basic frontend/backend tests run before deployment.
  • Staging deployment: The tested image is deployed to a staging environment first.
  • Production release: After approval, the same image moves to production.
  • Rollback plan: Previous image versions are kept ready in case the new release fails.

For safer deployments, avoid building directly on the production server. Build the image once, test it properly, and then promote the same version across staging and production.

Migration Guide – Moving TYPO3 to Docker

Moving TYPO3 to Docker requires proper handling of the database, uploaded files, Composer setup, and environment configuration.

Follow this migration checklist:

  • Export the database: Take a full backup before changing the setup.
  • Check project structure: Confirm whether the project is Composer-based or legacy.
  • Move uploaded files: Transfer fileadmin/, uploads, and other user-generated assets.
  • Map configuration files: Review TYPO3 settings, database credentials, and environment-specific values.
  • Align Composer: Make sure composer.json and composer.lock match the TYPO3 version.
  • Create Docker services: Set up PHP, web server, database, cache, and required extensions.
  • Test locally first: Check backend login, frontend pages, media files, forms, and extensions.
  • Move to staging: Validate the Docker setup before using it in production.

The biggest migration risks are missing uploaded files, incorrect database credentials, broken file paths, wrong PHP versions, and unmapped persistent volumes.

When Should You Use TYPO3 with Docker?

Use TYPO3 with Docker when the project needs a stable, repeatable, and team-friendly development setup.

Docker is a good choice for:

  • Agency projects: Multiple developers need the same setup.
  • Enterprise websites: The project has complex services, staging workflows, or long-term maintenance needs.
  • Composer-based TYPO3 projects: Dependencies need to stay controlled and versioned.
  • Multi-environment workflows: Development, staging, and production need better consistency.
  • CI/CD deployments: The team wants automated testing and controlled releases.

Docker may not be necessary for a very small TYPO3 Website managed by one person on simple hosting. But for professional TYPO3 development, team workflows, and scalable projects, Docker is usually the better long-term setup.

Conclusion

TYPO3 Docker makes development faster, cleaner, and easier to manage, especially for teams working with complex CMS projects. With the right setup, developers can avoid environment issues, manage dependencies better, protect project data, and prepare TYPO3 websites for smoother testing, staging, and deployment.

For local development, DDEV is the easiest starting point. For advanced projects, WebDevOps or a custom Docker Compose setup gives more control over services, performance, security, and production workflows.

If your TYPO3 website is running on an older version or outdated setup, this is the right time to plan a TYPO3 Upgrade. A proper upgrade can improve security, performance, compatibility, and long-term stability while making your website easier to maintain.

Need help with a TYPO3 upgrade or Docker-based TYPO3 setup? Contact our TYPO3 experts to upgrade, optimize, and modernize your TYPO3 website with a stable development and deployment workflow.

Improve the Page Speed of Your TYPO3 Website

Overview of key performance issues affecting TYPO3 loading times, and how to optimize for faster, more stable performance.

FAQs

Yes. TYPO3 can run with Docker by using containers for PHP, web server, database, and other required services.

Yes. Docker is useful for TYPO3 development because it keeps the local setup consistent across different machines and team members.

DDEV is the easiest option for local TYPO3 development because it provides a ready Docker-based setup with simple commands.

Yes, but production needs a secure and properly configured Docker setup. DDEV is mainly for local development, while production should use a controlled Docker Compose, WebDevOps, or custom deployment setup.

DDEV is better for local development and quick setup. WebDevOps is better for advanced workflows, custom services, and production-like environments.

Yes. Composer is recommended for modern TYPO3 projects because it manages TYPO3 packages, dependencies, and version control more cleanly.

Use persistent volumes for important folders such as fileadmin/, uploads, configuration files, and database data.

This usually happens when uploads or database files are stored inside the container instead of persistent volumes.

Enable OPcache, use proper TYPO3 caching, optimize the database, and consider Redis for larger or high-traffic TYPO3 projects.

Yes. Export the database, transfer uploaded files, check Composer dependencies, map environment settings, and test everything locally before moving to staging or production.

No. Small TYPO3 websites may not need Docker, but it is highly useful for agencies, teams, enterprise projects, and CI/CD-based workflows.

Contact for Internet agency and TYPO3 projects

Sven Thelemann

Service Partner - Germany

Sven Thelemann

Comments and Responses

×

Name is required!

Enter valid name

Valid email is required!

Enter valid email address

Comment is required!

* These fields are required.

Be the First to Comment