TYPO3 CMS
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:latest4 container_name: typo35 restart: unless-stopped6 environment: 7 TYPO3_DB_HOST: mariadb8 TYPO3_DB_NAME: typo39 TYPO3_DB_USERNAME: typo310 TYPO3_DB_PASSWORD: ${DB_PASSWORD}11 volumes: 12 - typo3_fileadmin:/var/www/html/fileadmin13 - typo3_typo3conf:/var/www/html/typo3conf14 - typo3_uploads:/var/www/html/uploads15 ports: 16 - "80:80"17 depends_on: 18 - mariadb19 networks: 20 - typo3-network2122 mariadb: 23 image: mariadb:1124 container_name: typo3-mariadb25 environment: 26 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}27 MYSQL_DATABASE: typo328 MYSQL_USER: typo329 MYSQL_PASSWORD: ${DB_PASSWORD}30 volumes: 31 - mariadb_data:/var/lib/mysql32 networks: 33 - typo3-network3435volumes: 36 typo3_fileadmin: 37 typo3_typo3conf: 38 typo3_uploads: 39 mariadb_data: 4041networks: 42 typo3-network: 43 driver: bridge.env Template
.env
1DB_PASSWORD=changeme2ROOT_PASSWORD=changemeUsage Notes
- 1Docs: https://docs.typo3.org/
- 2Access at http://localhost - Install Tool guides initial setup
- 3Backend at /typo3 after setup complete
- 4TER (TYPO3 Extension Repository) for thousands of extensions
- 5Enterprise features: multisite, multilingual, versioning, workflows
- 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 file2cat > docker-compose.yml << 'EOF'3services:4 typo3:5 image: martinhelmich/typo3:latest6 container_name: typo37 restart: unless-stopped8 environment:9 TYPO3_DB_HOST: mariadb10 TYPO3_DB_NAME: typo311 TYPO3_DB_USERNAME: typo312 TYPO3_DB_PASSWORD: ${DB_PASSWORD}13 volumes:14 - typo3_fileadmin:/var/www/html/fileadmin15 - typo3_typo3conf:/var/www/html/typo3conf16 - typo3_uploads:/var/www/html/uploads17 ports:18 - "80:80"19 depends_on:20 - mariadb21 networks:22 - typo3-network2324 mariadb:25 image: mariadb:1126 container_name: typo3-mariadb27 environment:28 MYSQL_ROOT_PASSWORD: ${ROOT_PASSWORD}29 MYSQL_DATABASE: typo330 MYSQL_USER: typo331 MYSQL_PASSWORD: ${DB_PASSWORD}32 volumes:33 - mariadb_data:/var/lib/mysql34 networks:35 - typo3-network3637volumes:38 typo3_fileadmin:39 typo3_typo3conf:40 typo3_uploads:41 mariadb_data:4243networks:44 typo3-network:45 driver: bridge46EOF4748# 2. Create the .env file49cat > .env << 'EOF'50DB_PASSWORD=changeme51ROOT_PASSWORD=changeme52EOF5354# 3. Start the services55docker compose up -d5657# 4. View logs58docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/typo3/run | bashTroubleshooting
- 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
Ad Space
Shortcuts: C CopyF FavoriteD Download