Hosting Neos or Flow on Platform.sh

In the quest to search a perfect hosting partner i try Platform.sh it work nicely, some errors sometimes, i’m in touch with their support service to see if we can solve them.

But basically it’s a hosting + git deploy pipeline, with nice UI, and ElasticSearch, Solr, Redis included so a bit expensive, but battery include

And you can check the required configuration here:

I will try to use the provided redis and elasticsearch during the next few days.

Hi Dominique

Interresting. What’s the feedback after two weeks of using and thinking about it?

Stefan

I will continue to test, I think they offer a pretty good service, good support, and automatic deploy on git push without assle so :thumbsup: need a bid more load testing and trying to push the server to the limit, but the test version is a dev environment so the test will not give real numbers.

For the dev instance the numbers are not bad, ~240ms average response time and 24 req/s for the home page of the demo site, with 12 concurrents request (tested with apache bench). The cache currently use only the default configuration for file based cache. I will try to configure redis for most cache next week and check the performance improvements.

Hey Dominique,
are there any news on this topic? have you figured out how to setup redis caching for Neos on platform.sh?

i’ve tried redis.internal for hostname, but it doesn’t seem to work here… do we really have to run a script that gets the current env variables for the platform redis service and replaces the Caches.yaml content on every deployment?

TYPO3_TypoScript_Content:
  backend: TYPO3\Flow\Cache\Backend\RedisBackend
  backendOptions:
    defaultLifetime: 0
    hostname: redis.internal
    port: '6379'

UPDATE: just have seen the merge https://github.com/neos/flow-development-collection/pull/431 that allows env variable in .yaml files

I know it’s been quite a while since that post but I have my Flow project running on platform.sh and have made some changes.
You can check them out here - any feedback is welcome: https://github.com/DavidSporer/flow-neos-platformsh

We just release a package to parse the PLATFORM_RELATIONSHIPS (BASE64 encoded JSON) and convert it to local env variables.

This make working with Platform.sh a lots more friendly

1 Like

I’ve linked your package in my repo since I think it’s more elegant :slight_smile:

Thanks, took me a lots of time, before thinking about the Package.php.

I’m in contact with the DACH area manager of platform.sh to do more test and try to have an official support for Flow and Neos, let’s see what happens, I have a phone with him on Friday.

++

You can include me in the communication, we’re also talking with a few of those guys and are heavily testing it since it’s of course more expensive than other stuff but takes a lot of the heavy lifting off your desk.
I think it would be interesting to get an “official” repo that explains how to use Neos and Flow on platform.sh

1 Like

The phone conference has been a good first contact, next step is polishing my helper package, and prepare a first Neos.PlatformDistribution in collaboration with the integration team at Platform (Martin-Pierre Frenette and Larray Garfield). When this distribution is ready, we will continue to discuss how to make a official platform support for Flow & Neos.

About the helper package, the master version now contains a CLI command to configure the distribution (basic):

  • Create default .platform configuration directory
  • Create default .platform.app.yaml configuration file
  • Create default .platform.env configuration file
  • Create new Settings.yaml in Production/PlatformSh

See https://github.com/ttreeagency/FlowPlatformSh#configure-your-distribution-to-deploy-on-platformsh

A really slim package for Neos, to move the initial password file of the Neos.Setup to a read write directory.

Yet an other package update, with support to migrate a local projet to a platform environement (check: https://github.com/ttreeagency/FlowPlatformSh#migrate-local-project-to-platformsh), the CLI output should be:

# ./flow platform:sync --directory Data/Persistent --publish --database --migrate --snapshot

Local -> platform.sh

    + Create Snapshot
    + Sync directory Data/Persistent
    + Publish resources
    + Synchronize database content
    + Migrate database

Last step, a Neos Distribution to deploy Neos 3.1 on Platform.sh in a few step:

It’s hard to have the setup working on Platform.sh because of the read only filesystem. We can change the Platform.sh to be more relaxed and add read write mounts for Configuration and Data, but I prefer to promote less RW directory (Configuration, Package, …) must be on read only to offer the best security.

This distribution is deployed here: https://master-7rqtwti-gv67hnmcc4g2w.eu.platform.sh/ (Development plan, ~150ms response time, not that bad)

Updated the distribution, now it’s a single push and full automatic setup (site package import, admin account creation). So Neos is fully testable after a few minutes.

1 Like

New version of the packages (https://github.com/ttreeagency/FlowPlatformSh + https://github.com/ttreeagency/NeosPlatformSh), now you can execute any Flow command during Platform Build & Deploy Hooks, check the documentation: https://github.com/ttreeagency/FlowPlatformSh#run-a-command-during-build-or-deploy-hook

And the push command support multiple environment: https://github.com/ttreeagency/FlowPlatformSh#push-local-project-data-to-platformsh

Version 1.1 released

Features

Packages