---
title: "Project structure"
manual: "Getting Started"
version: "13.4"
permalink: "https://docs.typo3.org/permalink/t3start:project-structure@13.4"
source: "Concepts/ProjectStructure/Index.rst"
rendered: "2026-09-27T06:58:01+00:00"
---

# Project structure {#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 {#files-and-directories}

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](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/ExtensionArchitecture/FileStructure/ComposerJson.html#files-composer-json).

### `config/` {#directory-config}

This directory contains installation-wide configuration.

### `config/sites/` {#directory-config-sites}

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

The following files are processed:

-   `config.yaml` for the [site configuration](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/ApiOverview/SiteHandling/Index.html#sitehandling)
-   `settings.yaml` for the [site settings](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/ApiOverview/SiteHandling/SiteSettings.html#sitehandling-settings)

### `config/system/` {#directory-config-system}

The folder `config/system/` contains the installation-wide

-   `settings.php`: [Configuration](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/Configuration/Typo3ConfVars/Index.html#typo3ConfVars-localConfiguration) written
    by the **Admin Tools > Settings** backend module
-   `additional.php`: [Manually created file](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/Configuration/Typo3ConfVars/Index.html#typo3ConfVars-additionalConfiguration)
    which can override settings from `settings.php` file

#### `packages/` {#directory-packages}

Each website running on TYPO3 should have a site package - a specialized an
[extension](https://docs.typo3.org/permalink/t3start:extensions-index@13.4) that contains all the templates,
styles, images and other assets required for the theme.

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

#### `public/` {#directory-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/` {#directory-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/` {#directory-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-var}

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

### `var/log/` {#directory-var-log}

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

#### `vendor/` {#directory-vendor}

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

For more information see [here](https://docs.typo3.org/m/typo3/reference-coreapi/13.4/en-us/Administration/DirectoryStructure/Index.html#directory-structure).
