The set includes the same ep_theme TypoScript the root templates included statically, and config/sites/*/settings.yaml hold the constants of each site's root template, generated with TYPO3's own TypoScript parser and kept under their old names, so no TypoScript changes. They are plain values without definitions, so nothing is type-converted. Rolling out takes a second step: the root templates, with their clear flags, still replace everything the set provides, so this deploy alone changes nothing. .ddev/plans/sql/2026-10-27-site-sets.sql then hides them and moves their setup (date picker presets, partner IDs, ...) into extension templates editors keep maintaining. Extension templates further down the tree keep applying on top. Verified locally on a prod copy: - the resolved constants and setup of 43 pages (every site root, every page with an extension template below it, every page layout) are identical before the deploy, between deploy and SQL, after the SQL and after its rollback - a crawl of all 1912 frontend URLs is identical before and after Rollback: always run 2026-10-27-site-sets-rollback.sql BEFORE rolling back this code, or the sites have no TypoScript at all in between. Co-Authored-By: Claude Opus 5.5 <[email protected]>
TYPO3 CMS Base Distribution
Get going quickly with TYPO3 CMS.
Prerequisites
- PHP 8.2
- Composer
Quickstart
composer create-project typo3/cms-base-distribution project-name ^13cd project-name
Note that this distribution installs most, but not all of the TYPO3 CMS core extensions. Depending on your need you might also want to install other TYPO3 extensions from packagist.org.
Setup
To start an interactive installation, you can do so by executing the following command and then follow the wizard:
composer exec typo3 setup
Setup unattended (optional)
If you're a more advanced user, you might want to leverage the unattended installation. To do this, you need to execute the following command and substitute the arguments with your own environment configuration.
export TYPO3_SETUP_ADMIN_PASSWORD=$(tr -dc "_A-Za-z0-9#=$()/" < /dev/urandom | head -c24)
composer exec -- typo3 setup \
--no-interaction \
--server-type=other \
--driver=sqlite \
--admin-username=admin \
--admin-email="[email protected]" \
--project-name="My TYPO3 Project" \
--create-site="http://localhost:8000/"
echo "Admin password: ${TYPO3_SETUP_ADMIN_PASSWORD}"
Development server
While it's advised to use a more sophisticated web server such as Apache 2 or Nginx, you can instantly run the project by using PHPs` built-in web server.
TYPO3_CONTEXT=Development php -S localhost:8000 -t public- open your browser at "http://localhost:8000"
Please be aware that the built-in web server is single threaded and only meant to be used for development.
Next steps
License
GPL-2.0 or later