---
title: "Creating a TYPO3 project from the official GitLab template"
manual: "Getting Started"
version: "main"
permalink: "https://docs.typo3.org/permalink/t3start:gitlab-template@main"
source: "ProjectTemplates/GitLabTemplate/Index.rst"
modified: "2026-09-15T08:44:38+00:00"
---

# Creating a TYPO3 project from the official GitLab template

> **Prerequisites**
>
> -   Knowledge about Git
> -   A GitLab account or self-hosted GitLab
> -   Planning to do deployment
> -   DDEV and Git installed locally

## Create from template

Go to page [GitLab - New from template](https://gitlab.com/projects/new#create_from_template)
or to path `/new#create_from_template` on your self-hosted GitLab. And chose
**TYPO3 Distribution** from the list:

![The "TYPO3 Distribution" entry on the "Create from template" page on GitLab.](UseTemplate.png)

## Fill in project details

![Detail page when creating a project from a template in GitLab](ProjectDetails.png)

## Clone the project

Clone the project to your local machine. You can download the SSH link from
the **Code** dropdown:

![Screenshot demonstration the location of the Code button where you can copy the Clone with SSH link](GitClone.png)

Then clone the repository:

```bash
git clone git@gitlab.com:linawolf/getting-started-with-the-gitlab-template.git
```

> [!NOTE]
> You need an [SSH key (GitLab docu)](https://docs.gitlab.com/user/ssh/) to
> do this.

## Start DDEV and setup TYPO3

You can start and setup the project locally in DDEV using the built-in command:

```bash
ddev typo3-init
```

See also file `Readme.md` in the root of your project.

This step automatically creates several files that should be added to git:

```bash
$ git status
On branch main
Your branch is up to date with 'origin/main'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        composer.lock
        config/sites/
        package-lock.json

nothing added to commit but untracked files present (use "git add" to track)

$ git add .
```

-   **`composer.lock`**

    This file contains the information which exact versions of PHP packages
    are installed.

-   **`package-lock.json`**

    This file contains the information which exact versions of npm packages
    are installed.

-   **`config/sites/`**

    Contains configuration and settings of the site that was created during
    setup.

## Log into the TYPO3 backend

If allowed by your system the TYPO3 backend login will be automatically opened
in a browser. Otherwise you can open a browser of your choice with the
link displayed in the console.

A default user has been created. Username and password are displayed in your
console.

![TYPO3 Backend of a project created with the GitLab Template](Backend.png)

Once logged in, you can preview a page and see it rendered with a basic theme.

## Directory structure of the project

-   `.ddev` DDEV configuration
-   `assets` assets for a basic theme that will be built by vite
-   `config` system and site configuration created during setup
-   `node_modules` Managed by npm and vite
-   `packages`
    -   `site-distribution` basic site package that you can adjust
-   `public` webroot of the server
-   `var` you can find the logs and other temporary files here
-   `vendor` all packages are installed here
-   `composer.json` constraints for
-   `composer.lock` contains the information which exact versions of PHP packages are installed.
-   `package.json` constraints for frontend libraries
-   `package-lock.json` contains the information which exact versions of npm packages are installed.
-   `vite.config.js` predefined vite configuration
