Installing with the skeleton
This page is for developers who install a DXP project for the first time. It follows the skeleton's installation guide (sections 3 to 11) in a shorter form and links to the pages that explain each step. Allow about 30 minutes on a prepared machine (Versions you need).
Contents
Two ways to start
| Way | Command | Use it when |
|---|---|---|
| Create a project (recommended) | composer create-project se7enxweb/exponential-platform-dxp-skeleton my-project | You start your own project |
| Clone the skeleton | git clone [email protected]:se7enxweb/exponential-platform-dxp-skeleton.git then composer install --keep-vcs | You work on the skeleton itself |
create-project downloads the packages, runs the Flex recipes and the post-install scripts (assets:install,
cache:clear).
The steps
Create the project.
composer create-project se7enxweb/exponential-platform-dxp-skeleton my-project cd my-projectConfigure the environment in
.env.local, never in.env, and never commit it (Environment variables).cp .env .env.local $EDITOR .env.localCreate the database (MySQL, MariaDB or PostgreSQL) or set the SQLite DSN (Databases, SQLite for development).
Install the schema and seed data.
php bin/console exponential:install exponential-ossThe argument is the install type;
exponential-ossis the default.--skip-indexingskips the automatic reindex (Console commands).Set the permissions for the web server user on
var/andpublic/var/(File permissions).Build the site assets.
source ~/.nvm/nvm.sh && nvm use 20 yarn install yarn devBuild the administration assets.
php bin/console assets:install --symlink --relative public yarn ibexa:buildGenerate the JWT keypair for the REST API (JWT authentication).
php bin/console lexik:jwt:generate-keypairGenerate the GraphQL schema (GraphQL).
php bin/console ibexa:graphql:generate-schemaClear the cache and build the search index.
php bin/console cache:clear php bin/console exponential:reindexStart a development server.
symfony server:start
After the install
| URL | What it is |
|---|---|
https://127.0.0.1:8000/ | The public site (Twig) |
https://127.0.0.1:8000/adminui/ | The administration interface |
https://127.0.0.1:8000/api/ibexa/v2/ | REST API v2 (the guide shows /api/ezp/v2/; check the prefix as on The REST API) |
https://127.0.0.1:8000/graphql | GraphQL |
The seed data creates an administrator account whose sign-in is printed in the public installation guide. Change its password in the administration interface right away, before the site is reachable from anywhere else.
Save points
The guide suggests a Git commit after each stage, so you can return to a working state:
git init && git add -A && git commit -m "Added: project created from the DXP skeleton"
git add composer.lock && git commit -m "Updated: locked vendor dependencies"Before git add -A, check that .gitignore excludes .env.local, config/jwt/*.pem, var/ and vendor/
(Develop with Git).
When a step fails
| Symptom | Page |
|---|---|
| Composer refuses a PHP version | Versions |
yarn ibexa:build reports "Module not found" | Run assets:install first (Building assets) |
attempt to write a readonly database | SQLite for development |
| Anything else | Troubleshooting |
Related pages
- DXP skeleton: create-project and a documented install
- Environment variables
- Day-to-day commands
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.