Getting Started
Install Thelia 3 and get your store running.
Prerequisites
| Requirement | Supported |
|---|---|
| PHP | 8.3, 8.4 or 8.5 (8.3 recommended) |
| Database | MariaDB 10.11 or later (recommended), or MySQL 8.x |
PHP extensions: PDO_MySQL, openssl, intl, gd, curl, dom. You also need Composer 2+ and a GitHub token for Composer, described in the next section.
How long each release series receives security fixes is described in the security policy.
Give Composer a GitHub token
Thelia publishes its Symfony Flex recipes in the thelia/thelia-recipes repository, and Composer
reads them through the GitHub API. Without a token that API answers with a rate limit. Flex then
falls back on generated recipes without reporting anything, the config/packages/*.yaml files
Thelia expects are never written, and the install fails much later on an unrelated message, most
often You must either configure a "public_key" or a "secret_key".
Create a token on github.com/settings/tokens. No scope is needed, the recipes are public. Give it to Composer once:
composer config --global github-oauth.github.com <your-token>
With DDEV, run the same command inside the container so the Composer that installs the project reads it:
ddev composer config --global github-oauth.github.com <your-token>
Start a new store
composer create-project thelia/thelia-project my-shop
cd my-shop
The skeleton gives you a project without the core sources in your repository. From there, follow
either of the two setups below, starting at bin/install.
To work on Thelia itself, clone the repository instead: git clone https://github.com/thelia/thelia.git.
With DDEV (recommended)
git clone https://github.com/thelia/thelia.git
cd thelia
ddev start
ddev composer install
ddev exec php bin/install --frontoffice_theme=flexy
ddev launch
bin/install builds the assets the active templates need — the front-office importmap and
Tailwind stylesheet, and the back-office Sass stylesheet — so the storefront and /admin both
answer right after the install.
Your store is at https://thelia.ddev.site, with the back-office at /admin. DDEV derives that
hostname from the directory name, so a project created in my-shop/ answers on
https://my-shop.ddev.site. Run ddev describe to check.
To add demo data and an admin account:
ddev exec php bin/install --frontoffice_theme=flexy \
--with-demo --with-admin \
--admin_login=admin --admin_password=admin123
Without DDEV
git clone https://github.com/thelia/thelia.git
cd thelia
composer install
php bin/install --database_host=localhost --database_name=thelia \
--database_user=root --database_password=secret \
--frontoffice_theme=flexy --with-demo --with-admin
php -S localhost:8000 -t public
Next steps
| Guide | Description |
|---|---|
| DDEV Installation | Detailed DDEV setup, commands, and services |
| Standard Installation | Manual PHP/MySQL setup for production |
| Install Reference | All bin/install options and env vars |
| Configuration | Environment variables and Symfony config |
| First Steps | Create your first product |