Skip to main content
Version: Next

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 scripts
  • config/pimcore/startup.php dynamic service configuration mapping
  • config/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.

  1. Create a new project in the Console
  2. 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)
    • env:PIMCORE_INSTALL_MYSQL_USERNAME with the username for your MySQL DB (tick sensitive option)
  3. 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.

  1. In Console, go to Settings -> Environments and select an environment, e.g. production.
  2. Open the tab Variables
  3. Create a new variable with the name env:APP_ENV and the value prod
  4. 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