Pimcore PaaS
What is Pimcore PaaS and how does it work?
Pimcore Platform-as-a-Service is a cloud plattform for building, running and scaling your Pimcore applications, provided by the top-notch Platform.sh technology stack. It also includes the license for Pimcore Enterprise Edition and therefore opens up all the possibilities of the extensive features and services.
For a more detailed overview of features, pricing and ordering, please visit our product page.
Getting Started
First of all it's important to make yourself familiar with the concept of Platform.sh. Since there are no major differences between Pimcore PaaS and Platform.sh, there's only the following short on-top documentation to the Platform.sh docs, which outlines the specifics of how to run Pimcore on Platform.sh.
Preparation Work
❗ You need a Pimcore license token and your custom Composer repository URL, both you can find on the license certificate.
‼️ If you're starting a new project, just follow the general setup instructions for our skeleton or demo projects to setup a local instance of your project. Once you have your project up and running locally or if you're having an existing project, you can continue with the following steps to setup PaaS.
Project Setup
Run the following commands to enable the Pimcore Commercial License and install the Pimcore PaaS tools package to your project.
Don't forget to replace YOUR_PIMCORE_TOKEN
and YOUR_REPO_NAME
with the actual values.
composer config --auth http-basic.repo.pimcore.com token YOUR_PIMCORE_TOKEN
composer config repositories.pimcore_enterprise composer https://repo.pimcore.com/YOUR_REPO_NAME/
composer require pimcore/paas
Now enable the Enterprise Subscription Tools bundle in your /config/bundles.php
, by adding this line:
\Pimcore\Bundle\EnterpriseSubscriptionToolsBundle\PimcoreEnterpriseSubscriptionToolsBundle::class => ['all' => true],
It's now time to install the PaaS specific configuration files to your project, by running
./vendor/bin/pimcore-paas-install-config
The last command will install a bunch of configuration files into your project's directory:
.platform/*
PaaS infrastructure configuration.platform-scripts/*
deploy and build scriptsconfig/pimcore/startup.php
dynamic service configuration mappingconfig/platform.yaml
Pimcore generic PaaS configuration.env.(dev|prod)
example config for your different environments
Please commit all of those files to your Git repository. All of this configurations can be freely customized.
Customize Infrastructure Configuration
The template configuration files which were installed by the previous step, need to be customized for your project.
Please go through at least the files in .platform/
folder and adapt it to your needs.
RabbitMQ is configured as the default transport for Symfony messenger. If you would like to change that, you need to change following files and remove RabbitMQ config and dependencies:
config\pimcore\startup.php
, config\packages\messenger.yaml
, .platform\applications.yaml
, .platform\services.yaml
, composer.json
Project Setup in Console
Please log in to the console.
- Create a new project in the Console
- Go to Settings -> Variables and create the following new variables:
env:PIMCORE_TOKEN
with the license token as the value (e.g.a67ca3fa22e809a1781e15678013bb8...
)env:PIMCORE_INSTALL_ADMIN_USERNAME
with username for your admin account (e.g.administrator
) (tick sensitive option)env:PIMCORE_INSTALL_ADMIN_PASSWORD
with the password for your admin account (tick sensitive option)
- Follow the setup instructions in the user interface. If the instructions are not already shown by default, please press the "Finish setup".
You should now have a running Pimcore instance on PaaS.
Configure your environments
The default Symfony environment for Pimcore projects is dev
, you may customize that for your PaaS environments accordingly.
- In Console, go to Settings -> Environments and select an environment, e.g.
production
. - Open the tab
Variables
- Create a new variable with the name
env:APP_ENV
and the valueprod
- Pimcore now runs in production mode
Good to know
Sync existing data
After syncing data
from local from /var/
and /public/var
, ensure you are running rebuilding your classes:
./bin/console pimcore:deployment:classes-rebuild --create-classes
Logs
By default configuration, logs are streamed to stderr
Platform.sh stores those logs within /var/log/
directory.
You can find more details about how to access them here
Symfony cache dir
By default configuration, Symfony cache dir is set to /app/localCache
.
If you would like to change that consider changing the coresponding mount in the applications.yaml