TYPO3 Updater: Automated Updates for Multi-Site Environments

A professional solution for quality-assured TYPO3 Core and extension updates across multiple instances. Featuring visual testing, Deployer integration, and automated ticket creation.

Overview

  • The TYPO3 Updater automates the update pipeline: DDEV detection, Composer updates, Playwright screenshots, and Deployer integration.
  • Visual screenshot tests run before and after every update – layout issues are detected immediately.
  • Every update automatically generates a Redmine ticket containing test reports, screenshot comparisons, and time tracking.
  • Project detection is based on structured checks (.ddev/config.yaml, composer.json, .hosts.yaml) – without AI/LLM.

Introduction  

TYPO3 updates are critical for security and stability – yet time-consuming and error-prone, especially with multiple instances. Our TYPO3 Updater automates the entire process: from analysis and updating to visual quality assurance and documentation.

The solution is aimed at agencies and IT departments that professionally manage multiple TYPO3 instances and want to implement updates efficiently, securely, and transparently.


Table of Contents  


Why TYPO3 Updater?  

Typical Challenges  

For agencies with multiple TYPO3 projects:

  • Manual updates consume time – with 20+ projects, it takes several working days per minor release
  • Inconsistent documentation makes traceability difficult
  • A lack of visual testing leads to overlooked layout issues
  • Manual time tracking and ticket creation are often neglected

For IT departments:

  • Security updates must be rolled out quickly across all instances
  • Extension updates (e.g., new Powermail) require a systematic approach
  • Compliance demands complete documentation
  • Quality assurance must be reproducible and verifiable

The Solution  

The TYPO3 Updater automates the entire update pipeline:

Central Management

All DDEV projects are automatically detected and filtered by age, TYPO3 type, and deployment configuration.

Quality Assurance

Visual screenshot tests run before and after every update – layout issues become instantly visible.

Complete Documentation

Every update automatically creates a Redmine ticket with test reports, screenshot comparisons, and time tracking.


Architecture and Functionality  

Technical Foundations  

The TYPO3 Updater is based on a well-thought-out architecture that combines proven tools and modern technologies:

Base Stack:

  • DDEV as the local development environment (detects all projects automatically)
  • Deployer for structured deployment (.hosts.yaml defines target servers)
  • Composer for TYPO3 Core and extension updates
  • Playwright for visual screenshot testing
  • Next.js as a modern web interface using shadcn/ui

TYPO3 Updater Workflow: From Detection to Documentation

Automatic Project Detection  

The Updater scans the configured projects directory and filters intelligently:

  • Detect DDEV projects: Scans all folders for .ddev/config.yaml to identify active DDEV environments.
  • Verify TYPO3 installation: Analyses the composer.json for typo3/cms-core dependencies and validates the installation.
  • Validate .hosts.yaml: Checks whether a valid Deployer configuration exists and if all required server definitions are present.
  • Analyse last update date: Reads Git commits and composer.lock timestamps to determine when the last update occurred.

Important: The Updater does not use AI/LLM – detection is based on structured checks of the file system and Composer configuration. This guarantees reliability and performance.


The User Interface  

Dashboard: Project Overview  

The central hub displays all update-eligible TYPO3 instances at a glance:

TYPO3 Updater Dashboard featuring project overview, filter options, and status indicators

Overview Features:

  • Intelligent Filtering: By project name, last update date, TYPO3 version
  • Status Indicators: Deployer status, Git branches, latest commits
  • Batch Selection: Select multiple projects for simultaneous updating
  • Sorting: By date, project name, or update priority

The interface is deliberately kept clean and functional – optimised for quick decisions and efficient workflows.

Command Generator: Maximum Control  

For anyone who prefers to control the update process via the shell:

Command Generator with configurable options and copy-to-clipboard functionality

The generator creates precise shell commands with all relevant parameters:

Available Options:

ParameterDescriptionDefault
--batch-modeBatch processing of multiple projects
--dry-runSimulation without actual updates
--skip-uploadSkip deployment
--skip-redmineNo ticket creation
--skip-visual-testsDisable screenshot testing
--verbose-outputDetailed logging output

You can copy the generated command directly and execute it in the terminal – ideal for CI/CD integration or advanced workflows.

Configuration: Centralised Settings Management  

You configure everything via the web interface:

Configuration page with structured documentation and live preview

Click the image to enlarge and view in full

Configuration Areas:

Each setting includes inline documentation with best practices and real-time validation.


The Update Process  

1. Execution with Live Monitoring  

Once projects are selected, the update process begins with detailed status feedback:

Update process with colour-coded status output and progress indicators

Process Steps:

Environment Setup

Loads .env configuration, checks SSH authentication, validates DDEV status

Pre-Update Tests

Creates screenshots of all defined URLs, saves baseline for visual comparison

Composer Updates

Updates TYPO3 Core to the latest minor version, updates additional packages (optional), generates Composer lock

Post-Update Tests

Creates new screenshots, performs pixel-based comparison with the baseline, generates diff images

Documentation

Generates HTML report with all test results, creates and links Redmine ticket, tracks time (30 min default)

Status Codes:

  • 🟢 [SUCCESS]: Step successfully completed
  • 🟡 [WARNING]: Warning, process continues
  • 🔴 [ERROR]: Critical error, process aborted
  • 🔵 [INFO]: Informational output

2. Visual Comparison Report  

A comprehensive test report is generated after each update:

Visual Comparison Report with before/after screenshots and diff highlighting

Report Contents:

Screenshot Matches

Number of unchanged pages – ideally the majority of the tested URLs.

Screenshot Differences

Detected visual changes with diff visualisation. Shows exactly which pixels have changed.

Screenshot Errors

Failed comparisons (e.g., timeout, missing page) that require manual review.

Pages Visited

Number of tested URLs – configurable via the project configuration.

The Updater saves the report in a hash-based directory (unguessable) and links to it in the Redmine ticket.

3. Redmine Integration  

Automated ticket creation with complete documentation:

Redmine ticket featuring technical report, test results, and Composer audit

Ticket Structure:

Test Report (included in the ticket):

  • Screenshot comparisons (Before/After)
  • Functionality tests sorted by key areas
  • Performance metrics (Lighthouse Score)
  • Composer Audit Report (Security vulnerabilities)
  • Next steps and recommendations

Automatically generated documentation:

  • All TYPO3 Core components updated
  • Extension compatibility verified
  • Database schema validated
  • Caches cleared and rebuilt
  • Configuration files checked

Composer Audit Report  

An essential part of the documentation is the integrated Composer security check:

Security Analysis:

  • No security vulnerabilities found
  • Bestfixes packages: None found
  • Complete report is documented in the ticket

Next Steps:

  1. Verification of website functionality
  2. Monitoring of performance metrics
  3. Documentation of changes

Practical Scenarios  

Scenario 1: Security Update for all Instances  

Situation: TYPO3 Security Advisory – critical update available

Solution with TYPO3 Updater:

Security Advisory Received

TYPO3 publishes Security Bulletin for version 12.4.38

Project Selection

Filter and select all affected TYPO3 12.x instances in the Dashboard (18 projects)

Start Batch Update

Start update process for all 18 projects simultaneously, including Visual Tests

Completion and Documentation

All updates completed, 18 Redmine tickets created, visual reports available

Time Saved: Instead of 2-3 working days for manual updates → 2.5 hours automated

Scenario 2: Extension Rollout across all Projects  

Situation: New Powermail version with important features needs to be installed across all instances

Workflow:

  1. Adjust configuration: Add the extra Composer package in2code/powermail:* in the config
  2. Filter projects: Select only instances with an existing Powermail installation
  3. Staged Rollout: First on 3 test instances, upon success, roll out to all others
  4. Documentation: Every instance receives a ticket with a changelog and test report

Scenario 3: Quality-Assured Updates  

Situation: IT department requires demonstrable QA for compliance

TYPO3 Updater delivers:

  • Reproducible Tests: Every update goes through the identical test pipeline
  • Visual Documentation: Before/after screenshots serve as proof
  • Timestamps and Audit Trail: Complete traceability
  • Ticket System Integration: Seamless documentation in Redmine
  • Secure Key Management: SSH keys are stored encrypted
Best Practice: Secure Key Management

The TYPO3 Updater requires SSH keys for Deployer access. These are stored encrypted within the configuration. If no key is provided, the update process is aborted with a clear error message – no insecure fallbacks.


Technical Requirements  

System Requirements  

Server Environment:

  • DDEV installed and configured
  • Node.js 18+ (for Next.js GUI)
  • Composer 2.x
  • SSH access to deployment targets

Optional for advanced features:

  • Redmine instance with API access
  • Deployer configuration (.hosts.yaml)
  • Playwright for Visual Tests

Installation  

The GUI is then accessible at http://localhost:3000.


Best Practices  

Update Strategy  

FeatureRecommendedNot Recommended
Staged Rollout
Dry-run first
Enable Visual Tests
All instances simultaneously
Updates without tests
Manual documentation

Maintenance and Monitoring  

Regular Tasks:

  1. Clean up screenshot archive (automatically after 30 days)
  2. Renew Redmine token (rotate API keys every 90 days)
  3. Monitor log files (check Warning Log)
  4. Update SSH keys (upon team changes)

Performance Optimisation:

  • Run visual tests in parallel (max. 3 browser instances)
  • Limit screenshot resolution to 1920x1080
  • Automatically archive old test reports
  • Restart DDEV containers after update

Cost Savings and ROI  

Time and Cost Analysis  

TaskManualAutomatedSavings
Single TYPO3 Update45 min5 min-89%
Visual QA Testing30 min2 min-93%
Documentation20 min1 min-95%
Redmine Ticket15 min0 min-100%
Total per Update110 min8 min-93%

Visualisation of Time Saved  

Average time required per update step in minutes

Projection for an agency with 20 TYPO3 projects:

  • 8 TYPO3 Core minor updates per year (every 6-8 weeks)
  • 9 major extension updates per year (Powermail, News, etc.)
  • = 17 updates per year × 20 projects = 340 updates in total
  • Manual execution: 340 × 110 min = 623 hours
  • With TYPO3 Updater: 340 × 8 min = 45 hours
  • Time saved: 578 hours per year

At an hourly rate of EUR 150:

  • Cost savings: EUR 86,700 per year
  • ROI achieved within just a few weeks of active use

Scaling: Cost Savings by Number of Projects  

Annual costs in Euro – The more projects, the higher the savings

Time Distribution: Manual Update Process  

Where is time lost during manual updates? (110 minutes total)

ROI Development over 12 Months  

Break-even after just 3-4 weeks – followed by pure cost savings

Added Value

In addition to saving time, you increase quality through consistent testing, reduce human error, and create comprehensive documentation for compliance and client reporting.


Summary  

The TYPO3 Updater is more than just an automation tool – it is a complete update management solution for professional TYPO3 environments:

Core Benefits:

Efficiency

93% time saved per update by automating routine tasks

Quality

Visual regression tests guarantee layout integrity after every update

Transparency

Complete documentation in Redmine with test reports and screenshots

Security

Encrypted key management and reproducible security checks

Scalability

Batch updates for any number of instances with consistent quality

Control

Dry-run mode and staged rollouts for risk-free testing

Who is the TYPO3 Updater for?  

Ideal for:

  • Agencies with 5+ TYPO3 projects
  • IT departments with multi-site environments
  • Managed hosting providers
  • DevOps teams with a focus on automation

Technical Profile:

  • Experience with DDEV and Composer

  • Basic knowledge of Bash/Shell scripting

  • Optional: Deployer knowledge for advanced features

  • Optional: Redmine admin access for ticket integration

  • Training for your team

  • Managed service options


This article was last updated on 2025-10-04. The TYPO3 Updater is actively being developed – features and screenshots are subject to change.

Let's talk about your project

Locations

  • Mattersburg
    Johann Nepomuk Bergerstraße 7/2/14
    7210 Mattersburg, Austria
  • Vienna
    Ungargasse 64-66/3/404
    1030 Wien, Austria

Parts of this content were created with the assistance of AI.