.. include:: /Includes.rst.txt .. index:: installation; Tutorial DDEV .. _installation-ddev-tutorial: ========================== Installing TYPO3 with DDEV ========================== This is a step-by-step guide detailing how to install TYPO3 using DDEV, Docker and Composer. DDEV is used for local development only. .. youtube:: HW7J3G1SqZw Pre-Installation Checklist -------------------------- #. **Install Docker** - Visit `docker.com `__ to download and install the recommended version of Docker for your operating system. #. **Install DDEV** - Follow the `DDEV installation guide `__ to install DDEV. DDEV and Docker need to be installed on your local machine before TYPO3 can be installed. If you need help installing DDEV, support can be found on the `DDEV Discord server `__. Create the Installation Directory --------------------------------- Create an empty directory to install TYPO3 in and then change into that directory: .. code-block:: bash mkdir t3example cd t3example Create a new DDEV Project ------------------------- The `ddev config` command will prompt for information about your project. TYPO3 is in the list of preconfigured projects. .. code-block:: bash ddev config --php-version 8.1 # Give the following answers when prompted: Project name (t3example): Docroot Location (current directory): public Project Type [php, typo3, ...] (php): typo3 project-type Should always be "typo3" docroot Is the folder in which all files that have to be reached by the browser. This folder is commonly called :file:`public`. Alternatively you can skip the prompt by supplying all of the required parameters in a single command: .. code-block:: bash ddev config --project-type=typo3 --docroot=public --php-version 8.1 Start the project ----------------- .. code-block:: bash ddev start The webserver is now running but TYPO3 is not installed. Install TYPO3 ------------- .. code-block:: bash ddev composer create "typo3/cms-base-distribution:^12" As we just created the project and have no, answer yes when prompted if it is ok to overwrite files in this directory. You now have a **Composer-based TYPO3 installation**. Run the Installation Setup Tool ------------------------------- Setup TYPO3 in the console ~~~~~~~~~~~~~~~~~~~~~~~~~~ .. versionadded:: 12.1 Starting with TYPO3 12.1 a new CLI command `setup` is introduced as an alternative to the existing GUI-based web installer. Interactive / guided setup (questions/answers): .. code-block:: bash ddev exec ./vendor/bin/typo3 setup Setup TYPO3 with the 1,2,3 Install Tool in the browser ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Create a file called :file:`FIRST_INSTALL` in your webroot .. code-block:: bash ddev exec touch public/FIRST_INSTALL Open the installer .. code-block:: bash ddev launch typo3/install.php Go to the TYPO3 backend: .. code-block:: bash ddev launch typo3 And login with the credentials you just provided. Managing the Database --------------------- Upon calling :bash:`ddev config` DDEV automatically created a database for you. DDEV also created a file called :file:`config/system/additional.php` in which it stored the database credentials for you. During the installation setup process TYPO3 created all the tables it needed. If you want to have a look at the database, you can run the following command: .. code-block:: bash ddev launch -p Sending E-Mail -------------- DDEV creates :file:`config/system/additional.php` to fake sending mails. You can see what mails have been sent here: .. code-block:: bash ddev launch -m Stopping a DDEV Instance ------------------------ If you want to stop all projects from running you can call: .. code-block:: bash ddev poweroff The projects will stay configured and databases will be persisted. Deleting a DDEV Instance ------------------------ If you want to delete the project you just created you can remove it by calling the following command in your new projects root folder: .. code-block:: bash ddev delete --omit-snapshot This will remove all containers from the project and delete the database. Afterwards you can safely delete the project's root folder.