Install on a new Symfony project

Netgen provides an uptodate installation of Symfony with Netgen Layouts pre-installed. The installation is based on a Symfony Website Skeleton, ready to be used as a base for your new project.


Since this project does not come pre-installed with any kind of backend, you will only be able to use simple blocks like title, rich text, markdown and so on. You will need to provide your own implementation of a backend to use grid and gallery blocks.

Create a database

Create a database for your project with:

CREATE DATABASE my_project CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci;

Use Composer

Install Composer and execute the following from a directory of your choice:

$ composer create-project netgen/layouts-symfony-site my_project
$ cd my_project

Create a .env.local file in the project root directory to specify database connection details:


Install the database

Run the following command from the project root to install Netgen Layouts database tables:

$ php bin/console doctrine:migrations:migrate --configuration=vendor/netgen/layouts-core/migrations/doctrine.yaml


If you are using Doctrine Migrations for other parts of your app and generate a new migration with doctrine:migrations:diff console command, the generated migration will now include SQL commands that drop Netgen Layouts tables. To prevent this from happening, you can add the following config to your Doctrine configuration (if you already have schema_filter config, update it accordingly):

        schema_filter: ~^(?!nglayouts_)~

Start the app

You can use the web server included with Symfony CLI to serve the app:

$ symfony server:ca:install # For HTTPS support, only needs to be ran once
$ symfony server:start

After that, open in your browser to run the app. Netgen Layouts admin interface is available at and you can use admin as the username and password to access it.

What next?

Read up on how to achieve various developer tasks in Netgen Layouts by visiting the Cookbook docs section.