---
title: "Installation"
manual: "Coding Freaks Cookie Manager"
version: "main"
source: "Installation/Index.rst"
rendered: "2026-10-13T17:51:42+00:00"
---

# Installation {#installation}

Requirements: TYPO3 13.4.21 or later, or TYPO3 14, and PHP 8.2 or later. The values are
kept in `composer.json` and `ext_emconf.php`.

The steps below use the same names as the TYPO3 integration assistant on the
CodingFreaks platform. Steps 1, 2 and 4 need no account. Step 3 connects the extension to
a platform project and is optional, see [With or without the CodingFreaks platform](../Introduction/Index.html#introduction-platform).

## Step 1: Install the extension {#step-1-install-the-extension}

**Composer** (recommended):

```bash
composer require codingfreaks/cf-cookiemanager
```

**Extension Manager**, for projects without Composer: **Admin Tools > Extensions**,
**Get Extensions**, search for `cf_cookiemanager`, install it with the download
icon and switch it on.

Then update the database schema (**Admin Tools > Maintenance > Analyze Database
Structure**, or `vendor/bin/typo3 extension:setup`).

## Step 2: Include the site set {#step-2-include-the-site-set}

**Site set** (TYPO3 v13+, recommended):

1.  **Site Management > Sites**, select your root page and click
    **Edit**.
1.  In the **General** tab, open **Sets for this Site**.
1.  Add only **CodingFreaks Cookie Manager Site Configuration (Default)**, and
    check the list before saving.
1.  Save.

Or directly in the site configuration:

**config/sites/\<identifier>/config.yaml**

```yaml
base: 'https://example.com/'
rootPageId: 1
dependencies:
  - CodingFreaks/cf-cookiemanager
```

**Without site sets**: include the static template
**Coding Freaks Cookie Manager (cf_cookiemanager)** in your root template
(**Site Management > TypoScript**, **Edit TypoScript Record**,
**Edit the whole TypoScript record**, tab **Advanced Options**, field
**Include TypoScript sets**). The settings are then
TypoScript constants.

Clear all caches afterwards. The banner stays invisible until the site set or the
template is included.

> [!NOTE]
> Does your site package bring its own cookie banner? The Bootstrap Package does. The
> **Cookie Settings** module shows a notice when the Bootstrap Package consent
> is enabled in the site settings. Switch it off, see [Known Problems](../KnownProblems/Index.html#known-problems).

## Step 3: Enter your API credentials (optional) {#step-3-enter-your-api-credentials-optional}

You need the **API Key** and **API Secret** from step 3 of your
project's TYPO3 assistant on the platform (see [With or without the CodingFreaks platform](../Introduction/Index.html#introduction-platform)). Two ways to
enter them:

-   In the API step of **Start Configuration** (step 4 below). The extension
    checks them against the platform and saves them in the site settings.
-   In the site settings, before or after step 4: **Site Management > Settings**,
    select your site and click **Edit Settings**, open
    **CodingFreaks CookieManager**, fill in **Project ID (API key)** and
    **API secret**, save and clear all caches. For a secret in an environment
    variable, see [Connection settings under version control](../Configuration/ExtensionSettings/Index.html#extension-settings-versioned).

Then check the connection: **Web > Cookie Settings**, tab
**Administration**, button **Check API Integration**. The extension
reports itself to the platform and sends its configuration. The assistant on the platform
shows the extension as connected afterwards.

The extension does not connect to your project by itself. The project only hears from it
when you click **Check API Integration**, pass the API step of
**Start Configuration**, import a scan, or save a record in
**Cookie Settings** (the last two only with key and secret set).

Other requests to the platform happen without credentials: **Start Configuration**
loads the presets from it, and with `thumbnail_api_enabled` (default on) your server
requests preview images for blocked iframes when visitors view pages. The full list:
[Data and network requests](../DataAndRequests/Index.html#data-and-requests).

## Step 4: Import the presets {#autoimport-datasets-for-languages}

Open **Web > Cookie Settings** and select the root page. On a fresh installation
the module offers two ways:

-   **Start Configuration** (recommended) loads the presets from the cookie
    database on the platform, for every language of your site. It needs outgoing HTTPS
    from the server, but no account.
-   **Offline Configuration** (intranet or strict network policy): download the
    preset archive, then upload it in the module.

**Start Configuration** walks through three steps:

1.  **Feedback Configuration**: a question about usage data. The answer is stored
    in `allow_data_collection`. This version sends no usage data either way.
1.  **API Setup (Optional)**: key and secret, see step 3. Skip it to use the
    extension without the platform. If the site settings already hold credentials, the
    step only checks them against the stored endpoint and saves nothing. A failed check
    shows the error, and the wizard goes on.
1.  **Finishing**: the checkbox **Block scripts and iframes that are not
    assigned to a service** (off by default) sets `script_blocking` once the import has
    succeeded. It also blocks your site's own JavaScript files unless they carry
    `data-script-blocking-disabled="true"`, so check your site after enabling it. Then
    click **Install Presets**. If saving the setting fails after a successful
    import, the success dialog shows a warning.

![Installation screen of the Cookie Settings module](../Images/Installation/installation_screen.png)

The extension creates the records and their language overlays from the languages in
your site configuration.

Then check the banner on your site: open the page in a private window, the consent
banner must appear.

What to configure next: [Configuration](../Configuration/Index.html#configuration). To find the services your site actually
uses, run a scan under **Autoconfiguration & Reports** and import the result, see
[Auto Configuration (Beta)](../Configuration/AutoConfiguration/Index.html).

> [!TIP]
> If the import fails half way, remove the extension's records and start again: delete
> the records on the root page (list module), or drop the extension's tables with
> **Analyze Database Structure** after uninstalling it, then install again.
