docker.recipes

TYPO3 CMS

intermediate

Enterprise-level CMS with multisite and multilingual support.

Overview

TYPO3 CMS is an enterprise-grade, open-source content management system built in PHP that originated in Denmark in 1998. Known for its robust architecture and powerful capabilities, TYPO3 excels at managing complex websites with multiple domains, languages, and user groups. The system features advanced content versioning, sophisticated user permission management, and a flexible template engine called TypoScript that allows developers to create highly customized solutions for large-scale web projects. This Docker stack combines TYPO3 with MariaDB to create a powerful content management platform optimized for enterprise use. MariaDB's enhanced MySQL compatibility ensures optimal performance for TYPO3's complex database operations, while features like the Aria storage engine provide improved crash recovery for content data. The Helmich TYPO3 Docker image provides a pre-configured Apache environment with proper PHP extensions and security settings required for TYPO3's advanced features. This configuration targets organizations needing sophisticated content management capabilities beyond typical WordPress or Drupal installations. TYPO3's strength lies in handling complex site hierarchies, extensive multilingual content, and enterprise-level editorial workflows. European corporations, government agencies, and large institutions commonly choose TYPO3 for projects requiring strict content governance, advanced user role management, and the ability to manage hundreds of pages across multiple sites from a single backend interface.

Key Features

  • TypoScript templating engine for highly flexible page rendering and content manipulation
  • Multi-site management allowing multiple domains and websites from single TYPO3 installation
  • Advanced workspace system enabling content staging and approval workflows
  • Comprehensive multilingual support with translation workflows and fallback mechanisms
  • Extension Manager integration with TYPO3 Extension Repository (TER) containing thousands of modules
  • Flexible Content Elements (FCE) and content object rendering for complex page layouts
  • MariaDB's Aria storage engine providing enhanced crash recovery for TYPO3's content tables
  • Built-in caching framework supporting multiple cache backends for improved performance

Common Use Cases

  • 1Corporate websites requiring complex content hierarchies and editorial approval processes
  • 2Government portals needing multilingual content management and accessibility compliance
  • 3Educational institutions managing multiple department sites with centralized administration
  • 4Large e-commerce platforms requiring sophisticated product catalog management
  • 5Publishing companies handling complex content workflows and multi-site operations
  • 6International organizations needing advanced translation management and localization
  • 7Enterprise intranets with complex user permission structures and content access controls

Prerequisites

  • Minimum 2GB RAM recommended for TYPO3 backend operations and extension loading
  • Port 80 available for web access to TYPO3 frontend and backend interfaces
  • Understanding of TypoScript syntax for template customization and configuration
  • Familiarity with TYPO3's backend interface and content element structure
  • Knowledge of PHP and MySQL for custom extension development and troubleshooting
  • Environment variables DB_PASSWORD and ROOT_PASSWORD configured in .env file

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 typo3:
3 image: martinhelmich/typo3:latest
4 container_name: typo3
5 restart: unless-stopped
6 environment:
7 TYPO3_DB_HOST: mariadb
8 TYPO3_DB_NAME: typo3
9 TYPO3_DB_USERNAME: typo3
10 TYPO3_DB_PASSWORD: ${DB_PASSWORD}
11 volumes:
12 - typo3_fileadmin:/var/www/html/fileadmin
13 - typo3_typo3conf:/var/www/html/typo3conf
14 - typo3_uploads:/var/www/html/uploads
15 ports:
16 - "80:80"
17 depends_on:
18 - mariadb
19 networks:
20 - typo3-network
21
22 mariadb:
23 image: mariadb:11
24 container_name: typo3-mariadb
25 environment:
26 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
27 MYSQL_DATABASE: typo3
28 MYSQL_USER: typo3
29 MYSQL_PASSWORD: ${DB_PASSWORD}
30 volumes:
31 - mariadb_data:/var/lib/mysql
32 networks:
33 - typo3-network
34
35volumes:
36 typo3_fileadmin:
37 typo3_typo3conf:
38 typo3_uploads:
39 mariadb_data:
40
41networks:
42 typo3-network:
43 driver: bridge

.env Template

.env
1DB_PASSWORD=changeme
2ROOT_PASSWORD=changeme

Usage Notes

  1. 1Docs: https://docs.typo3.org/
  2. 2Access at http://localhost - Install Tool guides initial setup
  3. 3Backend at /typo3 after setup complete
  4. 4TER (TYPO3 Extension Repository) for thousands of extensions
  5. 5Enterprise features: multisite, multilingual, versioning, workflows
  6. 6Popular in Europe for corporate and government sites

Individual Services(2 services)

Copy individual services to mix and match with your existing compose files.

typo3
typo3:
  image: martinhelmich/typo3:latest
  container_name: typo3
  restart: unless-stopped
  environment:
    TYPO3_DB_HOST: mariadb
    TYPO3_DB_NAME: typo3
    TYPO3_DB_USERNAME: typo3
    TYPO3_DB_PASSWORD: ${DB_PASSWORD}
  volumes:
    - typo3_fileadmin:/var/www/html/fileadmin
    - typo3_typo3conf:/var/www/html/typo3conf
    - typo3_uploads:/var/www/html/uploads
  ports:
    - "80:80"
  depends_on:
    - mariadb
  networks:
    - typo3-network
mariadb
mariadb:
  image: mariadb:11
  container_name: typo3-mariadb
  environment:
    MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
    MYSQL_DATABASE: typo3
    MYSQL_USER: typo3
    MYSQL_PASSWORD: ${DB_PASSWORD}
  volumes:
    - mariadb_data:/var/lib/mysql
  networks:
    - typo3-network

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 typo3:
5 image: martinhelmich/typo3:latest
6 container_name: typo3
7 restart: unless-stopped
8 environment:
9 TYPO3_DB_HOST: mariadb
10 TYPO3_DB_NAME: typo3
11 TYPO3_DB_USERNAME: typo3
12 TYPO3_DB_PASSWORD: ${DB_PASSWORD}
13 volumes:
14 - typo3_fileadmin:/var/www/html/fileadmin
15 - typo3_typo3conf:/var/www/html/typo3conf
16 - typo3_uploads:/var/www/html/uploads
17 ports:
18 - "80:80"
19 depends_on:
20 - mariadb
21 networks:
22 - typo3-network
23
24 mariadb:
25 image: mariadb:11
26 container_name: typo3-mariadb
27 environment:
28 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}
29 MYSQL_DATABASE: typo3
30 MYSQL_USER: typo3
31 MYSQL_PASSWORD: ${DB_PASSWORD}
32 volumes:
33 - mariadb_data:/var/lib/mysql
34 networks:
35 - typo3-network
36
37volumes:
38 typo3_fileadmin:
39 typo3_typo3conf:
40 typo3_uploads:
41 mariadb_data:
42
43networks:
44 typo3-network:
45 driver: bridge
46EOF
47
48# 2. Create the .env file
49cat > .env << 'EOF'
50DB_PASSWORD=changeme
51ROOT_PASSWORD=changeme
52EOF
53
54# 3. Start the services
55docker compose up -d
56
57# 4. View logs
58docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/typo3/run | bash

Troubleshooting

  • Install Tool shows database connection error: Verify MariaDB container is running and DB_PASSWORD matches in both services
  • Backend shows 'No backend user logged in' after setup: Access /typo3/install.php to create initial admin user account
  • Extensions fail to install from TER: Check TYPO3 version compatibility and ensure internet connectivity from container
  • TypoScript templates not rendering: Verify template record exists in database and root page has proper template assignment
  • File uploads failing in backend: Check typo3_fileadmin volume permissions and PHP upload limits in container
  • Scheduler tasks not executing: Configure cron job to call TYPO3's command-line interface for automated tasks

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Components

typo3mariadb

Tags

#typo3#enterprise#php#multisite#multilingual

Category

CMS & Blogging
Ad Space