Manual Setup 

This guide covers setting up a local development environment without DDEV for TYPO3.org projects.

Prerequisites 

Web Server Requirements - PHP 8.1 or higher - MariaDB or MySQL database - Web server (Apache/Nginx) - Node.js 14 (for frontend asset building) - All TYPO3 12.4 LTS requirements

Optional for TER Project - Solr Server 6.6 (for extensions.typo3.org search functionality)

Access Requirements - GitLab account corresponding to your TYPO3.org username - For TER project: Signed NDA required due to GDPR compliance

Installation 

Clone Repository 

  1. Clone your desired project repository:

    # For typo3.org
    git clone https://git.typo3.org/services/t3o-sites/typo3.org/typo3.org.git
    cd typo3.org
    Copied!
  2. Create a virtual host pointing to the html subdirectory
  3. Copy the authentication template:

    cp auth.json.example auth.json
    Copied!
  4. Edit auth.json and add your GitLab credentials:

    {
        "http-basic": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "password": "gitlabpassword"
            }
        },
        "gitlab-api": {
            "git.typo3.org": {
                "username": "gitlabusername",
                "token": "gitlab_personal_access_token",
                "project-id": "5",
                "branch": "develop",
                "job-name": "Get dump for local environment"
            }
        }
    }
    
    Copied!

    Required fields: - http-basic: Basic authentication for Git operations - gitlab-api: API access for database synchronization and CI/CD artifacts - project-id: Project ID for database dumps (5 = typo3.org)

Database Setup 

  1. Create a local database for your project
  2. Download the database dump from GitLab:

    # For typo3.org
    curl -H "PRIVATE-TOKEN: your-gitlab-token" \
         "https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment" \
         -o database.zip
    Copied!
  3. Extract and import the database:

    unzip database.zip
    mysql -u your-user -p your-database < DB.sql
    Copied!

Database URLs for Projects: - typo3.org: https://git.typo3.org/api/v4/projects/5/jobs/artifacts/develop/download?job=Get%20dump%20for%20local%20environment - Other projects: URLs will be provided later

TYPO3 Configuration 

Additional Configuration 

Create config/system/additional.php:

<?php

$GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive(
    $GLOBALS['TYPO3_CONF_VARS'],
    [
        'BE' => [
            'loginRateLimit' => 0,
            'passwordPolicy' => '',
        ],
        'DB' => [
            'Connections' => [
                'Default' => [
                    'dbname' => 'your_database_name',
                    'driver' => 'mysqli',
                    'host' => 'localhost',
                    'password' => 'your_password',
                    'port' => '3306',
                    'user' => 'your_username',
                ],
            ],
        ],
        'FE' => [
            'loginRateLimit' => 0,
        ],
        'GFX' => [
            'processor' => 'ImageMagick',
            'processor_path' => '/usr/bin/',
            'processor_path_lzw' => '/usr/bin/',
        ],
        'MAIL' => [
            'transport' => 'sendmail',
            'transport_sendmail_command' => '/usr/sbin/sendmail -t -i',
        ],
        'SYS' => [
            'trustedHostsPattern' => '.*',
            'devIPmask' => '*',
            'displayErrors' => 1,
        ],
    ]
);

Copied!

Filefill Configuration 

Add filefill configuration to your additional.php:

// Filefill configuration for typo3.org
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['filefill']['storages'][1] = [
    [
        'identifier' => 'domain',
        'configuration' => 'https://typo3.org/',
    ],
    [
        'identifier' => 'domain',
        'configuration' => 'https://my.typo3.org/',
    ],
    [
        'identifier' => 'placeholder',
    ],
];
Copied!

This configuration allows the filefill extension to load assets from production servers when they're not available locally.

Project-specific configurations: - typo3.org: Configuration shown above - Other projects: Configurations will be provided later

Composer Setup 

  1. Install PHP dependencies:

    composer install
    Copied!

Frontend Assets 

CSS and JavaScript Setup 

  1. Verify Node.js version (must be Node.js 14):

    node --version
    Copied!
  2. Install npm dependencies:

    npm install --prefix=vendor/t3o/t3olayout/Build/
    Copied!
  3. Build assets:

    npm run build --prefix=vendor/t3o/t3olayout/Build/
    Copied!

Backend Access 

Creating a Backend User 

Create a backend administrator user using the TYPO3 CLI command:

  1. Run the backend user creation command:

    php vendor/bin/typo3 backend:createadmin
    Copied!
  2. Follow the interactive prompts to set:

    • Username (e.g., admin)
    • Password (choose a secure password)
    • Email address
  3. Login to the backend at https://your-local-site.local/typo3/ with your created credentials

Database Import Details 

The database import includes:

  • Complete page tree and content
  • Backend user: admin / password
  • All necessary TYPO3 configuration
  • Extension settings

File Assets 

Thanks to the filefill extension by Nicole Cordes, you don't need to download the complete fileadmin directory. Assets are loaded on-demand from production servers.

How it works: - When a file is requested that doesn't exist locally - Filefill checks the configured domains - Downloads the file from production - Serves it locally for future requests

Solr Setup (TER Only) 

For extensions.typo3.org, you need a Solr server:

  1. Install Solr 6.6 locally
  2. Configure Solr connection in TYPO3 backend
  3. Index the extension data

Troubleshooting 

Common Issues 

Composer authentication fails
Check your auth.json file and GitLab token permissions.
Database import fails
Verify your database credentials and ensure the database exists.
Files not loading
Check filefill configuration and internet connectivity to production servers.
Cannot create backend user
Use the TYPO3 CLI command: php vendor/bin/typo3 backend:createadmin
Permission errors

Set proper file permissions for web server user:

chown -R www-data:www-data html/
chmod -R 755 html/
Copied!

Getting Help