Skip to main content

News from

new features

Multiple MySQLs Make a Marvelous Multisite Machine

(Because alliterations are always appropriate.)

As we hinted at previously when rolling out Apache Solr 6.3, we’re rolling out new functionality for many of our containers to support multiple databases on a single service. We’re happy to report that next up is the big one: MySQL now supports multiple databases, and restricted users.

Read more
new features

Redis, now for long-term keys and values

Redis is a popular key-value database, well-regarded for its speed and simplicity. has offered a Redis service for quite some time, which is configured not to store data but to keep it only in memory. That makes it an excellent choice for a cache server, and we recommend that configuration for most projects.

Of course, Redis can do far more than caching. And we’re therefore happy to report we now offer a persistent configuration of Redis, too.

Read more
new features

Announcing HTTP/2 support!


All the fastness just got faster. A couple of days ago we finished 2016 in beauty, announcing PHP 7.1 which allows you to do some incredibly fast PHP apps with stuff like ReactPHP for example.

Let’s start 2017 with some more fastness juice flowing. HTTP/2 is now supported on all public regions.

What do you need to do to benefit from the incredible performance gains this will give your site?

Nothing. It just works (as long as you have HTTPS enabled, which you should anyway).

Read more
new features

Next Wave PHP now supported

We were hoping to have this announcement out in time for Christmas gift but it was not to be. Instead it’s an early New Years gift. Nonetheless, we’re happy to announce a whole slew of new options for PHP projects to make them faster and more robust on PHP 7.1 support, async support, and PThreads support.

Read more
new features

This week in new features - Build-time variables

As we wrote about recently, all of the inputs to an application running on are clearly defined, predictable, and with one exception entirely under your control as a user. We’re happy to announce that we’ve added one more input, and it’s also under user control: Project-level variables available at build time.

Read more
new features

How repeatable deployments work

One of the key selling points of is predictable, repeatable deployments. We view the read-only production file system as a key advantage for our customers. But why is that, and how do we manage it? Just how repeatable and predictable is it?

The key to reliability is predictability. If I know my code works in testing, I should be able to predict, with a very high degree of confidence, that it will work in production, too. To do that, we need to minimize the number of variables that differ between staging and production. Zero is ideal, but anything close to zero is generally good enough.

At, the build process for all environments, production or not, is exactly the same. And the inputs to that build process are all consistent and largely predictable.

Read more
new features

Application updates for PHP containers

PHP was’s first supported language, and so has had a few quirks as we’ve grown to support more programming languages. Those quirks have resulted in a few limitations to functionality that we didn’t like, and you probably didn’t like, either.

Fortunately, we’ve refactored our container support to reduce the uniqueness of PHP and added a bit of functionality along the way.

Read more
new features

PostgreSQL 9.6 and PostgreSQL Extensions!

We’re happy to announce the availability of PostgreSQL 9.6 as a choice of service in You can learn how to enable it in our documentation. Although we don’t yet support the pg_upgrade command, existing users of PostgreSQL 9.3 can still upgrade using pg_dump and pg_restore, as discussed in the Upgrading section.

And you now have full support for running Postgres Extensions on In your services.yaml file you can simply add a configuration subkey with the following strucure:

    type: "postgresql:9.6"
    disk: 1025
            - pg_trgm
            - hstore

In this example you will have pg_trgm installed giving functions to determine the similarity of text based on trigram matching and hstore, giving you a key-value store.

The complete docs are here: PostgreSQL Extensions

Read more
new features

Fully customizable build flavors

At, we believe your application should be deployed on your terms. That’s why we support custom build and deploy scripts on every project, to allow you to build your application in whatever way fits it best. We also support “build flavors” that automatically run common build tasks when appropriate, such as composer or npm installs.

But what if you didn’t want the default composer install command? Or maybe you don’t want to use npm but want to give new-kid-on-the-block Yarn a try? You’d still get a default build flavor and then have to repeat that work differently, which is just no good at all.

We agree. So we fixed that.

Read more
new features

Another UI release this month...

We just deployed our new UI release 2.16 logically enough after 2.15 (which added eZ Platform to the new project wizard) and 2.14 with a much improved user management interface and many improvements around branch naming.

We are working continuously to provide a more user friendly interface for managing your applications. In this release you can see many improvements for status display, better suggestions and branch display in the UI.

  • Status update
  • Branch name suggestions
  • Improved structure for Branching
  • Enable/Disable robots.txt
Read more
new features

UI version 2.14 released.

Following our recent deployment UI release 2.14, check out our 4 improvements!

First, you will find 2 new flexibilities in branch naming and their display in the UI. See how the long branch name will display in better way and would be visible on hover too.

  • Long branch/environment name
  • Display branch name on hover

Second, you can see a simpler interface to improve user management under project settings.

  • Nested branching
  • Show inactive/Hide inactive
Read more
new features

UI version 2.13 released.

It’s been a month now since our previous UI release 2.12 .

And today, we just deployed a new UI 2.13 release.

You might already know, from past several months, we have been working continuously to provide better user interface for application management, which also comes from you as a feedback and part of feature requests. In this release you can see many enhancements to inform you precisely about warnings, errors and notifications.

  • SSH Key already in use
  • Error notifications
  • Failed Build notifications
  • Branching, handling mulitple environments
  • Synchronization
  • Live status
Read more
new features

UI version 2.12 released.

After only two weeks since our latest UI update we have just deployed a new UI one!

As you know, we are always trying to improve user experience based on your feedbacks.

In this release, you can see a lot of new options for improving the configuration of your applications:

  • Easier project setup
  • Better domain name validation
  • SSH key reminder
  • Improved environment limit help
  • Improved environment naming
  • Clearer user management
Read more
new features

UI version 2.11 released.

Here are the list of web interface enhancements which will make your life easier:

  • New warning notifications
  • Grouping and hiding disabled environments
  • Autofocus on text inputs
  • Better environment variable display
Read more
new features

June Features Update

June has been a busy month again at!

Maybe you have seen us at the following events:

Or maybe you have heard that we hired 4 new collaborators on our team. You can see them on our company team page.

In the mean time, we continuously worked on our core product to squeeze more performance and improve its overall robustness.

We also released a bunch of new features and enhancements. Here is a non exhaustive listing of what has been happening.

Read more
new features

UI version 2.10 released

It has been a while since we have made an announcement about UI updates. But today, we’re happy to anounce a new release for the web interface. We are constantly working on improving the user experience based on feedback that we receive from you through support tickets, chat, and at events and conferences. The latest round of improvements are based on accessibility, better messages, and better display of the activity logs.

Read more
new features

May Features Update

If you’ve followed up on news recently you may have seen it’s been quite a wild ride recently. Magento Commerce chose us to power and operate their new Cloud platform and we signed exclusive deals with Orange Business Services and Microsoft Azure to propose a sovereign hosting option with our incredible feature-set to their clients in France and Germany.

But that didn’t stop us from working on our core product… over the past couple of months we worked hard to squeeze more performance but also improve the overall robustness of not only for our Enterprise customers that already enjoy a 99.99% uptime guarantee but also for our profesionnal customers.

And if this is not enough .. we had time to release a bunch of new features and enhancements. The following is not even the complete list, just some highlights so you can see what has been happening.

Read more
new features

CLI version 3.0 released

We are proud to release a new major version of the CLI. We got some great feedback from you and there are some major changes to the way the CLI works… so you should pay attention …

This post will help you with updating your CLI installation, and it will explain some of the major changes.

Read more
new features

CLI version 2.11 released

It has been a while since we told you about the evolution of the CLI.. and much has happened. We worked hard on its usability for you, the developer, but also as a chain in your automation workflow. The CLI has become Jenkins’ best friend.

Patrick has been working really really hard on making it better each day. And he has been doing some tremendous work. Not only making it advance by leaps and bounds, but also supporting users on the public github issue queue.. on our own support systems.. through chat.. by parachuting into enemy territory (not sure about the last one). And doing all of that between concerts (if you are in London, you are in luck! You can catch his Quartet’s next concert on the 14th of February).

It is now at its 113th release! There were countless optimizations (well, yes, and some bugfixes) but also a bunch of new features … by the reverse order of their appearance here are some of newest features for the Command Line Interface:

Read more
new features

NodeJS versions 0.12, 4.4 and 6.2 supported

We are terribly happy to announce beta support for NodeJS in


Javascript developers can now enjoy the same incredible features with:

  • Fully managed backend services: from MongoDB and RabbitMQ to Elasticsearch, Postgres, MariaDB, Redis, Kafka, and others!
  • Automatically generated staging clusters for every pull request that contain a byte level copy of production data in 30 seconds.
  • Micro-Service support: deploy multiple managed applications to the same cluster.

Have a look at the NodeJS user guide to learn how to launch your first node application. There’s also a full example here.


Read more
new features

Java Ant and Maven build scripts supported is a tool for serious people; And serious people use Java tooling.

Anyway, if you are serious or not.. you can now use Ant and Maven build scripts on this is supported for PHP versions 5.6 and up (and will not be back-ported to earlier versions).

This is great news for people who have their tool-chain based on these environments… and this should allow you to pull basically any Java dependency and use it in your project.

Read more
new features

Documentation version 3.0 released

Today, we are proud to announce version 3.0 of the documentation.

In this release, we have split the documentation into multiple guides:

  • Overview: gives a general idea on the concepts of and a glimpse of what you can do with the Web Interface and the command Line Interface.
  • User Guide: everything you need to know to properly work with
  • Get started with Drupal: start from scratch and build your Drupal site on
  • Migrate an existing Drupal site: migrate your existing Drupal site to
  • Get started with Symfony: start from scratch and build your Symfony site on

Our goal is to provide many more guides for any use case you might need to work with

Read more
new features

Bitbucket add-on released

Today, we are proud to announce the launch of the add-on for Bitbucket.

This add-on allows you to deploy any branch or pull request on a fully isolated environment with a dedicated URL.

For a complete overview of the add-on, please go to our Bitbucket add-on page.

To help you get started easily, you should read the documentation page

Read more
new features

UI version 2.0 released

Today, we are proud to announce the version 2.0 of the UI.

This is a very important release which includes a lot of new features like:

  • Ability to see the status and the children of an environment directly in the environment navigation
  • Ability to control access per environment (with a login and password or with a set of IP addressess)
  • Ability to send or not send emails per environment
  • Ability to upload your SSH key directly during the initialization of your project
  • Ability to upload an SSL certificate when adding or editing a domain
  • Ability to configure routes caching (cookies, headers, TTL)
  • Ability to disable or override variables inherited from parent environments.

We hope that you are as excited as we are!

Read more
new features CLI developments

The command line has always been the most flexible and powerful way for us humans to communicate with their computers. For web developers, command-line tools have proliferated over recent years: many developers spend most of their time typing commands in a shell.

Our command-line interface, the CLI, is based on the Symfony Console component. It’s convenient to use alongside other command-line tools: you need to use git to manage the project’s code, so platform is a natural way to manage the project itself. The CLI also helps you build projects for local development, particularly if you use Drupal.

To install or upgrade, you can use Composer:

composer global require 'platformsh/cli:@stable'

Recent new features (over the past two months) include:

  • Activity commands, for viewing recent activities on an environment - activity:list (activities) and activity:log.
  • An environment:metadata command for reading additional environment properties - this also lets you update the environment’s title, and its ‘parent’ and ‘enable_smtp’ properties.
  • The ssh-key:add command can now generate an SSH public key for you, before uploading it to your account.
  • Integration commands, for adding GitHub, HipChat, and other integrations - integration:list (integrations), integration:add, integration:update, and integration:delete.

    A GitHub integration allows you to create environments for every pull request (and/or every branch) in your GitHub repository:

    platform integration:add --type github --repository example/example --token ExampleToken

    A HipChat integration will report activity to your private HipChat room.

    platform integration:add --type hipchat --room 123456 --token ExampleToken

    There is also a generic ‘webhook’ integration: will post information about every activity to your own webhook URL.

    platform integration:add --type webhook --url
  • A new environment:restore command for restoring a backup. You can also now list recent backups using: platform environment:backup --list
  • Commands which trigger remote operations on now wait for the operation to complete: branch, activate, deactivate, backup, restore, merge, and synchronize. Or if you are impatient, you can pass a --no-wait option. You can use platform activity:list to check the state of previous operations.

Other improvements:

  • Improved usability (validation and feedback) for the httpaccess command.
  • Install Drush automatically when required (provided that Composer is available globally).
  • Check for ‘vanilla-mode’ Drupal without requiring COPYRIGHT.txt.
  • Changed Drupal ‘profile-mode’ builds so that Drush Make no longer builds inside the repository.
  • Many other small bug fixes.

For more information about the CLI (and to file issues) see the public GitHub repository. We accept pull requests!

Read more
new features

Support for Blackfire Profiler

Today, we are very happy to announce that the PHP containers deployed on come pre-installed with the Blackfire Profiler developed by SensioLabs.

The Blackfire Profiler monitors your code and reports on consumed server resources like memory, CPU time, and I/O. With the Blackfire Profiler on, you can quickly identify performance bottlenecks in code, and even compare two different codebases directly to see which performs better. Best of all, the Blackfire Profiler is currently totally #, and easy to set up.

What can you do with it?

Blackfire Profiler automatically instruments your code to gather data about consumed server resources like memory, CPU time, and I/O.

You can launch profiling from a web-browser widget or through a CLI utility to keep track of the results online, where it will be easy to select two profiles and compare them.

Even with a low overhead, Blackfire profiler will go deep into the details and show you information about your entire stack; including, for instance, SQL database engines or cache servers.

Call graphs are displayed in a lovely UI where it’s easy to focus in on the relevant data by quickly finding the hotpath, and not displaying “noisy” function calls.

Still in beta but already adopted by thousands of developers worldwide, Blackfire is provided as a free SaaS service. Paid tiers with additional features are planned for later this year.

Those who have tried it seem to love it. Check it out for yourself !

Get Started

Blackfire Profiler is already installed in your PHP container, which means that the only step for you to use Blackfire is to configure the environment and install the web browser Companion.

Read more on configuring the Blackfire Profiler on the documentation.

Read more
new features

UI version 1.10 released

Today, we are proud to announce the latest release of the UI.

We came up with some improvements that will make your experience even better:

  • Easy upload and validation of your SSH key
  • Restore a snapshot from the UI

SSH key upload

No need to leave the UI to add your SSH key.

When you see this icon, this means you don’t have uploaded your SSH key yet:

This will open a popup so you can add your key directly:

Read more on how to add your SSH key.

Restore a snapshot

After creating a snapshot, it’s easy to restore it by simply clicking on the restore link in your activity stream:

Read more about the UI.

Read more
new features

CLI version 1.7 released

We are proud to announce the latest release of the CLI.

To install or upgrade, you can use Composer:

composer global require 'platformsh/cli:1.*'

New features in the latest release (version 1.7.1) include:

  • A new platform httpaccess command to control HTTP access for an environment.
  • The platform build command now saves archives (compressed copies) of each local build, which are re-used when possible. This saves build time, particularly if you are switching between branches locally. There is a --no-archive option to skip this behavior.
  • Many commands now take the environment as an argument, rather than an option, which saves typing:
    • platform environment:activate [environment]
    • platform backup [environment]
    • platform environment:deactivate [environment]
    • platform environment:delete [environment]
    • platform branch [name] [parent]
    • platform merge [environment]
  • The following commands now work with multiple environments:
    • platform environment:activate [env1] [env2] [env3] [...]
    • platform environment:deactivate [env1] [env2] [env3] [...]
    • platform environment:delete [env1] [env2] [env3] [...]
  • You can now deactivate all merged branches with: platform environment:deactivate --merged [base]
  • You can delete all inactive environments with: platform environment:delete --inactive

About the CLI

The CLI (command-line interface) is an easy and fast tool which helps you manage your projects from the command line. You can use it to administer projects and environments, and to help you build projects locally for development.

It is based on the Symfony Console Component, a flexible and widely used library for building PHP command-line applications. Naturally, it also relies on Git.

For more information (and to file issues) see the public GitHub repository.

Read more
new features

CLI version 1.6 released

We are proud to announce the latest release (version 1.6.0) of the CLI.

To install or upgrade, you can use Composer:

composer global require 'platformsh/cli:1.*'

We have not written about the CLI for a while, so here are the new features we have added over the last month (since version 1.2):

  • Command-line auto-completion: just press <Tab> while typing a command, and the CLI will auto-complete command names, option names, project IDs and environment IDs. You will need to set this up by adding a couple of lines to your .bashrc (or equivalent) file - see the installation instructions for more information.
  • There are three new commands for managing your environment’s variables: platform variable:get, platform variable:set, and platform variable:delete.
  • A new platform init command - if you cloned your repository directly using Git, you can use this to set up a local project.
  • A new platform docs command, to visit or search our documentation.
  • A new platform web command to open the Web UI for the current project and/or environment.
  • The command platform ssh can now accept a remote command to run on the server, for example platform ssh 'tail -f /var/log/access.log'.

We have also made several bug fixes and stability improvements.

About the CLI

The CLI (command-line interface) is an easy and fast tool which helps you manage your projects from the command line. You can use it to administer projects and environments, and to help you build projects locally for development.

It is based on the Symfony Console Component, a flexible and widely used library for building PHP command-line applications. Naturally, it also relies on Git.

For more information (and to file issues) see the public GitHub repository.

Read more
new features

UI version 1.9 released

Today, we are proud to announce the latest release of the UI.

After listening to your feedback, we came up with improvements that will make your experience even better:

  • Quick access to your environments
  • Easy copy and paste of the Git and SSH commands
  • Unified configuration screens

Quick access to your environment

No need to open a popup window which displays the web URL and SSH command anymore!

You can now hover the Access info link under the environment name to quickly access the information you need.

Easy copy of the Git and SSH commands

No need to select the content of the text box and right click to copy it!

You can now hover the command an use the new CLICK TO COPY feature which will copy the whole command into your clipboard.

Unified configuration screens

We have also unified the look and feel of the configuration screens and fixed many issues you were having with the different configuration forms.

Read more about the UI.

Read more
new features

HTTP caching, custom PHP configurations, build dependencies

We have been busy! Today, we are happy to announce three important new features of

  • Support for HTTP caching at the web server level, finely configurable on a per-route basis;
  • Support for tweaking the PHP configuration, by enabling / disabling extensions and shipping your own php.ini;
  • Support for specifying build dependencies, i.e. PHP, Python, Ruby or Node.js tools (like sass, grunt, uglifyjs and more) that you want to leverage to build your PHP application.

HTTP caching now has an integrated reverse proxy cache, similar to Varnish but built directly into our web server (based on Nginx). The cache strategy is configurable on a route-by-route basis directly in your .platform/routes.yaml file.

We decided to go with a simple, easy to understand, caching strategy. As most of the CDNs before us, we do not support the Vary HTTP header. Instead, we give you the ability to explicitly specify how the cache key is built. You can specify which cookies are whitelisted and part of the cache key, and which headers (in addition to the default headers) also participate.

The default configuration whitelists all the cookies and some selected headers that are often used for content negotiation (Accept and Accept-Language):

    type: upstream
    upstream: php:php
        enabled: true
        headers: [ "Accept", "Accept-Language" ]
        cookies: [ "*" ]

You can tweak this configuration to fit the use case of your application, and you can also completely disable caching on the route:

    type: upstream
    upstream: php:php
        enabled: false

Read more about configuring the cache on our documentation.

Custom PHP configurations now supports custom PHP configurations. You can specify this configuration directly in the file, and you can also provide a php.ini file in your project, for additional configuration tweaks.

In your configuration file, you can now add a runtime key like:

        - http
        - ssh2
        - sqlite3 comes with pdo, mysql, mysqli, pdo_mysql, sqlite3, pdo_sqlite3, gd, curl, intl, mcrypt and zendopcache extensions enabled by default. You can disable those by adding them to the disabled_extensions list.

In addition, we ship with enchant, gearman, geoip, gmp, http, imagick, imap, ldap, pgsql, pdo_pgsql, pinba, pspell, recode, redis, snmp, spplus, ssh2, tidy, xdebug, xmlrpc and xsl that you can enable.

You can also provide a php.ini file that will be appended to the configuration maintained by This file needs to be at the root of the application at the end of the build process, so depending on your build process, you might have to move it in place in a build hook.

Note: we do not limit what you can put in the php.ini file in any way, but many settings can completely break your application. This is a facility for advanced users.

Build dependencies

Last but not least, the build process of now supports specifying build dependencies. Modern web applications often depend for their build process on tools that are written in a different language than that application itself. So we are now allowing you to specify those dependencies easily, regardless of the stack your application is written in.

We support pulling PHP, Python, Ruby and Node.js dependencies. Those dependencies are independent of the eventual dependencies of your application, and are available in the PATH, during the build process and in the runtime environment of your application.

You can specify those dependencies directly in your, like this:

    drush/drush: "6.4.0"
    behave: "*"
    sass: "3.4.7"
    grunt: "~0.4.5"

And yes, that means that you can now specify the version of drush you want for Drupal projects.

Read more
new features

CLI version 1.2 released

We are proud to announce the latest release of the CLI.

To install or upgrade, you can use Composer:

composer global require 'platformsh/cli:1.*'

New features in the latest release (version 1.2.2) include:

  • Toolstack-based detection and building: this means that both Symfony and Drupal projects can now be built locally in the same way they are built on
  • A much more colorful interface: the commands in platform list are color-coded according to whether they run locally or require a connection.
  • There is a new platform url command, which gets the public URL to your environment and opens it in your browser.
  • All of the more risky commands now have confirm steps to protect against accidents.
  • The frequently used platform checkout command has been improved, for a faster experience.
  • Drupal users will benefit from a new platform drush-aliases command, which lets you see your project’s Drush aliases. It also lets you customize the alias group name - if you type:

    platform drush-aliases -g myproject

    you will then have aliases such as @myproject.master instead of @l0ngpr0j3ct1d.master.

The release also includes a host of bug fixes, performance and stability improvements.

About the CLI

The CLI (command-line interface) is an easy and fast tool which helps you manage your Platform.sh_ projects from the command line. You can use it to administer projects and environments, and to help you build projects locally for development.

It is based on the Symfony Console Component, a flexible and widely used library for building PHP command-line applications. Naturally, it also relies on Git.

For more information (and to file issues) see the public GitHub repository.

Read more
new features

CLI version 1.1 released

Version 1.1.0 has been released. Many new features are now available.

Here are some of the new commands:

  • project:clean: clean one or more prior builds of the local project.
  • environment:ssh: SSH in to a environment.
  • project:fix-aliases: regenerate stale Drush aliases.
  • environment:relationships: see the services relationships of a environment. (E.g. MySQL, Redis, Solr).
  • domain:add and domain:delete: manage your domains on a project.
  • platform drush: run Drush commands remotely for the current environment.

For more information, read the on Github.

How to upgrade

Go to your platform-cli repository and run git pull to get the latest version. Next, run composer global update to update to the latest version.

Read more