Project structure

The following introduction refers to a Composer-based installation.

  • config

    • sites
    • system
  • packages
  • public/

    • _assets/
    • fileadmin/
    • typo3/
    • typo3temp/

      • assets/
  • var/

    • cache/
    • labels/
    • log
  • vendor
  • composer.json
  • composer.lock

Files and directories on project level

The composer.json contains the requirements for the TYPO3 installation and the composer.lock contains information about the concrete installed versions of each package. For further information see here.

config/

This directory contains installation-wide configuration.

config/sites/

The folder config/sites/ contains subfolders for each site.

The following files are processed:

config/system/

The folder config/system/ contains the installation-wide

  • settings.php: Configuration written by the Admin Tools > Settings backend module
  • additional.php: Manually created file which can override settings from settings.php file

packages/

Each website running on TYPO3 should have a site package - a specialized an extension that contains all the templates, styles, images and other assets required for the theme.

The sitepackage is typically stored locally and then linked inte the vendor folder via a symlink. Many projects also require custom extensions, which can also be stored in this location.

public/

This folder contains all files that are publicly available. Your webserver's web root must point here.

This folder contains the main entry script index.php created by Composer and might contain publicly available files like a robots.txt and files needed for the server configuration like a .htaccess.

public/fileadmin/

This is a directory in which editors store files. Typically images, PDFs or video files appear in this directory and/or its subdirectories.

public/typo3/

This directory contains the two PHP files for accessing the TYPO3 backend (typo3/index.php) and install tool (typo3/install.php).

var/

Directory for temporary files that contains private files (e.g. cache and logs files) and should not be publicly available.

var/log/

This directory contains log files like the TYPO3 log, the deprecations log and logs generated by extensions.

vendor/

In this directory all extensions (system, third-party and custom) are installed as Composer packages.

For more information see here.