Search by

open-dxp / skeleton

open-dxp

Package info

github.com/open-dxp/skeleton

Type:project

pkg:composer/open-dxp/skeleton

Statistics

Installs: 816

Dependents: 0

Suggesters: 0

Stars: 4

Open Issues: 0

v1.3.0 2026-10-26 10:09 UTC

This package is auto-updated.

Last update: 2026-10-26 10:12:08 UTC


README

This skeleton should be used by experienced OpenDXP developers for starting a new project from the ground up.

Disclaimer

OpenDXP is a community-driven fork based on the Pimcore® Community Edition (GPLv3).
OpenDXP is independent and maintained by its community and contributors. It is not affiliated with, endorsed by, or sponsored by Pimcore GmbH.
Original credits: Pimcore GmbH

OpenDXP Skeleton is based on the Pimcore® Community Edition and remains licensed under GPLv3.

Getting started

Create the project. Docker is enough, you need no PHP on your machine:

docker run -u `id -u`:`id -g` --rm -v `pwd`:/var/www/html opendxp/opendxp:php8.3-latest composer create-project open-dxp/skeleton my-project
cd my-project

With PHP and Composer on your machine, COMPOSER_MEMORY_LIMIT=-1 composer create-project open-dxp/skeleton my-project does the same.

The project runs with Docker Compose or with DDEV. Both run the same PHP version, database, workers and nginx rules. Choose wisely.

Docker

Your user must be allowed to run Docker and Docker Compose, and to change file permissions.

sed -i "s|#user: '1000:1000'|user: '$(id -u):$(id -g)'|g" docker-compose.yaml
docker compose up -d
docker compose exec php vendor/bin/opendxp-install

Open the frontend at http://localhost and the admin at http://localhost/admin.

DDEV

ddev config --project-name=my-project
ddev start
ddev exec vendor/bin/opendxp-install
ddev restart # starts the messenger workers and the maintenance job, which need the installed application

Open the frontend at https://my-project.ddev.site and the admin at https://my-project.ddev.site/admin.

Installation notes

  • opendxp-install asks for the admin user and password. Choose them freely. The installation can take up to 20 minutes.
    • If you install the SimpleBackendSearchBundle, add opendxp_search_backend_message to the workers.
      • With Docker, add it to the command in .docker/supervisord.conf, like opendxp_maintenance.
      • With DDEV, add it to the messenger-consume daemon in .ddev/config.yaml.
  • .docker/nginx.conf and .ddev/nginx_full/nginx-site.conf hold the same rules, see Nginx Configuration.

Your own web server

Note for first-time setup

To allow cache:clear and other commands to run without an active database connection, the default configuration sets:

doctrine:
    dbal:
        connections:
            default:
                server_version: '%env(string:default:default_database_server_version:DATABASE_SERVER_VERSION)%'

The default comes from the default_database_server_version parameter in config/services.yaml. If you're using a different database version, change that parameter or override it in your .env or .env.local:

DATABASE_SERVER_VERSION=10.11.13-MariaDB

Tests and code style

Tests are written with Pest on top of open-dxp/test-foundation, see its README. They run against a database of their own. Testing a Project shows how a project tests its own code and the bundles it uses.

Docker

docker compose run --user=root --rm test-php chown -R $(id -u):$(id -g) var/ public/var/ # once
docker compose run --rm test-php vendor/bin/opendxp-test install
docker compose run --rm test-php vendor/bin/pest
docker compose run --rm test-php vendor/bin/opendxp-test analyse .
docker compose exec php vendor/bin/php-cs-fixer fix

DDEV

DDEV creates the opendxp_test database on start. It runs the application in dev, so the test commands set the test environment themselves:

ddev exec APP_ENV=test vendor/bin/opendxp-test install
ddev exec APP_ENV=test vendor/bin/pest
ddev exec APP_ENV=test vendor/bin/opendxp-test analyse .
ddev exec vendor/bin/php-cs-fixer fix

The OpenDXP testkit runs the same tests in an isolated slot, if you use it.

AI agents

The project is prepared for coding agents with Symfony AI Mate and the OpenDXP Mate extension. The tools of the extension answer from the booted application. Its skills tell the agent which OpenDXP mechanism fits a task.

The extension is already installed. Set Mate up once with mate init, as the installation of the Mate extension describes for Docker and DDEV. In this project, the Docker service that runs PHP is called php. The installation also describes the optional Symfony tools for the agent.

Upstream Origin & Version Transparency

This project is a fork of Pimcore Skeleton 2024.x, which is © Pimcore GmbH and licensed under GPLv3.

License

Licensed under the GNU General Public License v3.0 (GPLv3). For details, please see LICENSE.md.

Copyright

© Pimcore GmbH
© 2026 OpenDXP Contributors — GPLv3

Trademarks

Pimcore® is a registered trademark of Pimcore GmbH. Any use of the Pimcore® mark in this repository is purely descriptive to identify the original upstream project.

Contact

For inquiries, suggestions, or contributions, feel free to reach us at contact@opendxp.ch.

About

OpenDXP is a community-driven project initiated by DACHCOM.DIGITAL (Rheineck, Switzerland) and maintained by its community and contributors. OpenDXP is independent and not affiliated with Pimcore GmbH.

The project’s purpose is to preserve and maintain a GPLv3‑licensed codebase for community use.

It is not positioned as a competitor to products or services of Pimcore GmbH and does not purport to replace or supersede any Pimcore offering.