---
title: "Initial deployment"
manual: "TYPO3 Explained"
version: "12.4"
permalink: "https://docs.typo3.org/permalink/t3coreapi:manual-deployment-initial@12.4"
source: "Administration/Deployment/InitialDeployment/Index.rst"
rendered: "2026-10-21T15:29:37+00:00"
---

> [!WARNING]
> **Attention**
>
> TYPO3 v12 has reached end-of-life as of April 30th 2026 and
> is no longer being maintained. Use the version switcher on the top
> left of this page to select documentation for a supported version of TYPO3.
>
> Need more time before upgrading?
> You can purchase Extended Long Term Support (ELTS) for TYPO3 v12 here:
> [TYPO3 ELTS](https://typo3.com/services/extended-support-elts).

# Initial deployment {#manual-deployment-initial}

This is the first deployment of TYPO3 to a production environment. It includes
setting up the full application, database, and user-generated content.

Steps:

## Build the project locally: {#build-project-locally}

```bash
composer install --no-dev
```

## Export the local database {#export-local-database}

Export the local database using [mysqldump](https://dev.mysql.com/doc/refman/8.0/en/mysqldump.html),
[ddev export-db](https://ddev.readthedocs.io/en/stable/users/cli-usage/),
or a GUI-based tool like Heidi SQL or phpmyadmin.

**Linux / macOS / WSL**

```bash
mysqldump -u <user> -p -h <host> <database_name> > dump.sql
```

**DDEV**

```bash
ddev export-db --file=dump.sql
```

The database credentials can either be entered during the installation process
using the Install Tool, or manually adjusted later in the file `config/system/settings.php`.

## Transfer all necessary files to the server {#transfer-files-to-server}

Folders to include:

-   `public/`
-   `config/`
-   `vendor/`,
-   Files from the project directory: `composer.json`, `composer.lock`

You can speed up the transfer using archive tools like zip or tar, or use
[rsync](https://docs.typo3.org/permalink/t3coreapi:deployment-rsync@12.4).

## Import the database on the production server {#import-database}

For example using
[mysql](https://dev.mysql.com/doc/refman/8.0/en/mysql.html):

```bash
mysql -u <user> -p -h <host> <database_name> < dump.sql
```

> [!NOTE]
> You will be prompted to enter the MySQL user password. Make sure the
> target database exists before running this command.

## Set up shared and writable directories on the server: {#set-up-server-directories}

-   `public/fileadmin/`
-   `var/`

## Update web server configuration: {#update-web-server}

-   Set the document root to `public/`
-   Ensure correct permissions for writable folders

## Flush TYPO3 caches: {#initial-deploy-flush-caches}

```bash
./vendor/bin/typo3 cache:flush
```

> [!NOTE]
> You can use the [Admin Tools](https://docs.typo3.org/m/typo3/tutorial-getting-started/12.4/en-us/Concepts/Backend/AdminTools/Index.html#admin-tools)
> to verify folder permissions and environment compatibility.
> Open: `https://example.org/typo3/install.php` and go to
> the **System Environment** section.
