You mentioned Ibexa ?

We are going to talk today about a very well-known CMS, and I would even say it was a game-changer in its time.

I’m talking about eZPublish, which later became eZPlatform and then Ibexa DXP.

I started my career with this CMS in 2010, and at that time, the French market was familiar only with eZPublish. It had a robust back office with many features, a workflow system, … There are quite a few articles on the subject on this blog.

I believe that from around 2014/2015, ezSystems, the founding company of the solution, decided to integrate Symfony. The idea was good, but the implementation took more time, which resulted in a somewhat complicated CMS because there was both eZPublish and Symfony at the same time. That’s another topic.

During that period, I worked on several projects using WordPress, Drupal, and Symfony 2.

After a while, eZPlatform was released, a CMS more robust than eZPublish 5 or eZ Publish Legacy.

An interesting aspect was that there was the option to install the old eZPublish back office in an eZPlatform instance to retain the strength of the BO, as at that time, the eZPlatform back office was not at its best.

In eZPlatform 2.5, there is Symfony version 3.4, whereas in Ibexa 3.x, you’ll find Symfony version 5, which is great.

It’s worth noting that there are community versions and paid versions. For example, with Ibexa, we have Ibexa Content, Ibexa Experience, and Ibexa Commerce.

What interests us here is Ibexa OSS, the community version

Let’s practice a bit !!!

We are going to install Ibexa OSS 3.3.x. I am using Linux.

  • PHP 7.4
  • composer 2
  • Node v10.15.x et yarn 1.22.x
  • Symfony-cli
  • Docker et Docker-composer

Otherwise, always check this URL.

Create Project

composer create-project ibexa/oss-skeleton:^3.3

You will notice that there is a docker-compose.yml file; on my side, I have changed it for now

version: '3'

services:
  database:
    image: 'mysql:5.7'
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: main
    ports:
      - '3306'
  mailer:
    image: schickling/mailcatcher
    ports: [1025, 1080]

From the root, you need to run the following command

docker-composer up -d

For now, two services are installed, but nothing prevents you from adding others like SOLR/ElasticSearch, Varnish, Redis, etc.

Create a database

If you have Symfony CLI installed, it will be faster.

  • symfony var:export –multiline

Then, replace the .env file or create the .env.local file and add :

DATABASE_URL=mysql://root:password@127.0.0.1:49167/main?sslmode=disable&charset=utf8mb4
  • php bin/console ibexa:install
  • php bin/console ibexa:graphql:generate-schema

Run post-installation script

  • composer run post-install-cmd

Use PHPs built-in server

  • symfony server:start -d

So, for me :

  • FO : https://127.0.0.1:8001/
  • BO : https://127.0.0.1:8001/admin (admin/publish)

And there you have it – a back office (BO) and front office (FO) under Ibexa DXP. Note that coding with Ibexa 3 means coding with Symfony 5 (Ibexa 4 => Symfony 6).

Here is a complete tutorial on the Ibexa documentation

Also, here is the link for installing Ibexa locally or on the Cloud.

In the context of our work, we use Lunchpad, a solution developed by our CTO (Sébastien Morel). It’s Docker with many default services.

With Ibexa, you can build web applications, not just editorial sites. What’s interesting here is having a back office to better manage content but not necessarily for handling our entities.