Extension installation

This tutorial assumes that your TYPO3 instance is a brand new installation, without any themes, templates, pages or content. See the TYPO3 Installation Guide for a detailed explanation how to set up a TYPO3 instance from scratch.

We highly recommend to use the Composer -based installation process. During development you should work locally on your machine for example by running TYPO3 on ddev.

If you need to follow the legacy way of installation, see Site package installation without Composer.

Extension installation in Composer mode

Starting with TYPO3 11.4 if composer is used, all extensions, including the site package extension must be installed via Composer.

As a site package is usually developed together with the site-specific files it is usually desirable to keep them together in a version control system like Git.

Therefore create a directory for all locally version-controlled extension at root-level of your Composer -based installation. The name is arbitrary, we use packages here.

Then edit your composer.json in the root of your installation directory to add the path as a local repository.

Add the following lines:

   "name": "myvendor/my-project",
   "repositories": [
         "type": "path",
         "url": "./packages/*"
   "require": {
      "typo3/cms-core": "^11.4",
      "..." : "..."
   "..." : "..."

Move your the extension folder site_package directly into the folder packages. Then require the extension via Composer using the name defined in the site package extensions composer.json now located at packages/site_package/. For example if you defined the name as

   "name": "myvendor/site-package-myproject"

require it by:

Execute in directory page_root
composer require myvendor/site-package:@dev

Project file structure

Your project should now have the following structure: