PHPackages                             platformsh/drupal8-opigno - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. platformsh/drupal8-opigno

AbandonedArchivedProject[Framework](/categories/framework)

platformsh/drupal8-opigno
=========================

This template builds the Opigno Drupal 9 distribution using the "Drupal Recommended" Composer project.

2136[1 PRs](https://github.com/platformsh-templates/drupal8-opigno/pulls)PHP

Since Mar 23Pushed 2y ago3 watchersCompare

[ Source](https://github.com/platformsh-templates/drupal8-opigno)[ Packagist](https://packagist.org/packages/platformsh/drupal8-opigno)[ RSS](/packages/platformsh-drupal8-opigno/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (2)Used By (0)

> ## Archived template
>
> [](#archived-template)
>
> This template has been archived. You can still use it as a reference, but it is no longer receiving regular updates from our team.

[![](https://camo.githubusercontent.com/fd697e8a2f29348ab057919fa8fedc02ad4d2ee45f8350556518efff01854023/68747470733a2f2f706c6174666f726d2e73682f6c6f676f732f726564657369676e2f506c6174666f726d73685f6c6f676f5f626c61636b2e737667)](https://platform.sh)

[![](header.svg)](https://www.drupal.org/)

Deploy Opigno Drupal Distribution on Platform.sh
================================================

[](#deploy-opigno-drupal-distribution-on-platformsh)

**Contribute, request a feature, or check out our resources**

[**Join our community**](https://community.platform.sh) [**Documentation**](https://docs.platform.sh) [**Blog**](https://platform.sh/blog) [**Report a bug**](https://github.com/platformsh-templates/drupal8-opigno/issues/new?assignees=&labels=bug&template=bug_report.yml) [**Request a feature**](https://github.com/platformsh-templates/drupal8-opigno/issues/new?assignees=&labels=feature+request&template=improvements.yml)

[![Open issues](https://camo.githubusercontent.com/7126a8e4197633338682c62dba734f0c0186b3d557c29926926e8919fb1cdf40/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f706c6174666f726d73682d74656d706c617465732f64727570616c382d6f7069676e6f2e7376673f7374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d66346632663326636f6c6f723d666664396439266c6162656c3d497373756573)](https://github.com/platformsh-templates/drupal8-opigno/issues) [![Open PRs](https://camo.githubusercontent.com/10ef522c8e7290fa17fd1fd9883f4024b083132a6d3961c4fc3d43e31b7b3355/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732d70722f706c6174666f726d73682d74656d706c617465732f64727570616c382d6f7069676e6f2e7376673f7374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d66346632663326636f6c6f723d666664396439266c6162656c3d50756c6c2532307265717565737473)](https://github.com/platformsh-templates/drupal8-opigno/pulls) [![License](https://camo.githubusercontent.com/cd24122ac70499cf3599075b4c4ba8bf9b2c658eb212c46fb7e1f56377bee93c/68747470733a2f2f696d672e736869656c64732e696f2f7374617469632f76313f6c6162656c3d4c6963656e7365266d6573736167653d4d4954267374796c653d666f722d7468652d6261646765266c6162656c436f6c6f723d66346632663326636f6c6f723d666664396439)](https://github.com/platformsh-templates/drupal8-opigno/blob/master/LICENSE)

---

**Contents**

[**About**](#about) [**Getting started**](#getting-started) [**Migrate**](#migrate) [**Learn**](#learn) [**Contribute**](#contribute)

---

About
-----

[](#about)

This template builds the Opigno Drupal 8 distribution using the [Drupal Composer project](https://github.com/drupal-composer/drupal-project) for better flexibility. It also includes configuration to use Redis for caching, although that must be enabled post-install in `.platform.app.yaml`.

Opigno is a Learning Management system built as a Drupal distribution.

### Features

[](#features)

- PHP 7.4
- MariaDB 10.4
- Redis 6
- Drush included
- Automatic TLS certificates
- Composer-based build

Getting started
---------------

[](#getting-started)

### Deploy

[](#deploy)

#### Quickstart

[](#quickstart)

The quickest way to deploy this template on Platform.sh is by clicking the button below. This will automatically create a new project and initialize the repository for you.

You can also quickly recreate this project locally with the following command:

```
composer create-project platformsh/opigno-composer -s dev
```

> **Note:**
>
> Platform.sh templates prioritize upstream release versions over our own. Despite this, we update template dependencies on a scheduled basis independent of those upstreams. Because of this, template repos do not contain releases. This may change in the future, but until then the `-s dev` flag is necessary to use `composer create-project`.

#### Other deployment options

[](#other-deployment-options)

For all of the other options below, clone this repository first:

```
git clone https://github.com/platformsh-templates/drupal8-opigno
```

If you're trying to deploy from GitHub, you can generate a copy of this repository first in your own namespace by clicking the [Use this template](https://github.com/platformsh-templates/drupal8-opigno/generate) button at the top of this page.

Then you can clone a copy of it locally with `git clone git@github.com:YOUR_NAMESPACE/drupal8-opigno.git`.

Deploy directly to Platform.sh from the command line1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Set the project remote

    Find your `PROJECT_ID` by running the command `platform project:list`

    ```
    +---------------+------------------------------------+------------------+---------------------------------+
    | ID            | Title                              | Region           | Organization                    |
    +---------------+------------------------------------+------------------+---------------------------------+
    | PROJECT_ID    | Your Project Name                  | xx-5.platform.sh | your-username                   |
    +---------------+------------------------------------+------------------+---------------------------------+
    ```

    Then from within your local copy, run the command `platform project:set-remote PROJECT_ID`.
4. Push

    ```
    git push platform DEFAULT_BRANCH
    ```

Integrate with a GitHub repo and deploy pull requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to whatever you have set at `https://YOUR_NAMESPACE/nextjs-drupal`.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-1)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-1)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Setup the integration:

    Consult the [GitHub integration documentation](https://docs.platform.sh/integrations/source/github.html#setup) to finish connecting your repository to a project on Platform.sh. You will need to create an Access token on GitHub to do so.

Integrate with a GitLab repo and deploy merge requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-2)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-2)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Create the repository

    Create a new repository on GitLab, set it as a new remote for your local copy, and push to the default branch.
4. Setup the integration:

    Consult the [GitLab integration documentation](https://docs.platform.sh/integrations/source/gitlab.html#setup) to finish connecting a repository to a project on Platform.sh. You will need to create an Access token on GitLab to do so.

Integrate with a Bitbucket repo and deploy pull requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-3)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-3)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Create the repository

    Create a new repository on Bitbucket, set it as a new remote for your local copy, and push to the default branch.
4. Setup the integration:

    Consult the [Bitbucket integration documentation](https://docs.platform.sh/integrations/source/bitbucket.html#setup) to finish connecting a repository to a project on Platform.sh. You will need to create an Access token on Bitbucket to do so.

### Post-install

[](#post-install)

This template installs the Opigno LMS profile automatically on the first deployment. An initial admin user is created with the username `admin`. The password is pulled from the built-in environment variable `PLATFORM_PROJECT_ENTROPY`, which you can find using the command below. Note, if you have not already cloned a local copy of the project (`platform get`), be sure to pass the project flag (`-p PROJECT_ID`) as well.

```
platform ssh 'echo $PLATFORM_PROJECT_ENTROPY' -q
```

After you have logged in for the first time, be sure to update your email and password.

### Local development

[](#local-development)

This section provides instructions for running the `drupal8-opigno` template locally, connected to a live database instance on an active Platform.sh environment.

In all cases for developing with Platform.sh, it's important to develop on an isolated environment - do not connect to data on your production environment when developing locally. Each of the options below assume that you have already deployed this template to Platform.sh, as well as the following starting commands:

```
$ platform get PROJECT_ID
$ cd project-name
$ platform environment:branch updates
```

Drupal: using ddev
For the most up-to-date instructions, please see our *[Using DDEV for local development](https://docs.platform.sh/development/local/ddev.html)* guide in the [Platform.sh Documentation](https://docs.platform.sh/). Drupal: using Lando
Lando supports PHP applications [configured to run on Platform.sh](https://docs.platform.sh/development/local/lando.html), and pulls from the same container registry Platform.sh uses on your remote environments during your local builds through its own [recipe and plugin](https://docs.lando.dev/platformsh/).

1. [Install Lando](https://docs.lando.dev/getting-started/installation.html).
2. Make sure Docker is already running - Lando will attempt to start Docker for you, but it's best to have it running in the background before beginning.
3. Start your apps and services with the command `lando start`.
4. To get up-to-date data from your Platform.sh environment ([services *and* mounts](https://docs.lando.dev/platformsh/sync.html#pulling)), run the command `lando pull`.
5. If at any time you have updated your Platform.sh configuration files, run the command `lando rebuild`.
6. When you have finished with your work, run `lando stop` and `lando poweroff`.

> **Note:**
>
> For many of the steps above, you may need to include the CLI flags `-p PROJECT_ID` and `-e ENVIRONMENT_ID` if you are not in the project directory or if the environment is associated with an existing pull request.

Migrate
-------

[](#migrate)

The steps below outline the important steps for migrating your application to Platform.sh - adding the required configuration files and dependencies, for example. Not every step will be applicable to each person's migration. These steps actually assume the earliest starting point possible - that there is no code at all locally, and that this template repository will be rebuilt completely from scratch.

- [Getting started](#getting-started-1)
- [Adding and updating files](#adding-and-updating-files)
- [Dependencies](#dependencies)
- [Deploying to Platform.sh](#deploying-to-platformsh)
- [Migrating your data](#migrating-your-data)
- [Next steps](#next-steps)

If you already have code you'd like to migrate, feel free to focus on the steps most relevant to your application and skip the first section.

### Getting started

[](#getting-started-1)

Assuming that your starting point is no local code, the steps below will setup a starting repository we can begin to make changes to to rebuild this template and migrate to Platform.sh. If you already have a codebase you are trying to migrate, move onto the next step - [Adding and updating files](#adding-and-updating-files) - and substitute any reference to the default branch `main` with some other branch name.

```
$ mkdir drupal8-opigno && cd drupal8-opigno
$ git init
$ git remote add upstream https://bitbucket.org/opigno/opigno-composer.git
$ git branch -m main
$ git fetch --all --depth=2
$ git fetch --all --tags
$ git merge --allow-unrelated-histories -X theirs 2.29.0
```

### Adding and updating files

[](#adding-and-updating-files)

A small number of files need to be added to or modified in your repository at this point. Some of them explicitly configure how the application is built and deployed on Platform.sh, while others simply modify files you may already have locally, in which case you will need to replicate those changes.

Open the dropdown below to view all of the **Added** and **Updated** files you'll need to reproduce in your migration.

**View files**
FilePurpose[`config/sync/.gitkeep`](config/sync/.gitkeep)**Added**[`web/sites/default/settings.php`](web/sites/default/settings.php)**Updated:**

 The Drupal settings file has been updated to import and use `web/sites/default/settings.platformsh.php`.[`web/sites/default/settings.platformsh.php`](web/sites/default/settings.platformsh.php)**Added:**

 Contains Platform.sh-specific configuration, namely setting up the database connection to the MariaDB service and caching via Redis.[`.environment`](.environment)**Added:**

 The `.environment` file is a convenient place to [set environment variables](https://docs.platform.sh/development/variables/set-variables.html#set-variables-via-script) relevant to your applications that may be dependent on the current environment. It is sourced before the start command is run, as the first step in the `deploy` and `post_deploy` hooks, and at the beginning of each session when you SSH into an application container. It is written in dash, so be aware of the differences to bash.

It can be used to set any environment variable, including ones that depend on Platform.sh-provided variables like `PLATFORM_RELATIONSHIPS` and `PLATFORM_ROUTES`, or to modify `PATH`. This file should not [produce output](https://docs.platform.sh/development/variables/set-variables.html#testing-environment-scripts).

 Here, the Composer config and `PATH` are updated to allow executable app dependencies from Composer to be run from the path (i.e. `drush`).[`.gitignore`](.gitignore)**Added:**

 A `.gitignore` file is not included in the upstream, so one has been added.[`.lando.upstream.yml`](.lando.upstream.yml)**Added:**

 This file configures [Lando](https://docs.platform.sh/development/local/lando.html) as a local development option for this template. See the [Platform.sh Lando plugin documentation](https://docs.lando.dev/platformsh/) for more information about configuration and the [Local development](#local-development) section of this README for how to get started.[`.platform.app.yaml`](.platform.app.yaml)**Added:**

 This file is required to define the build and deploy process for all application containers on Platform.sh. Within this file, the runtime version, relationships to service containers, and writable mounts are configured. It's also in this file that it is defined what dependencies are installed, when they are installed, and that package manager will be used to do so.

Take a look at the [Application](https://docs.platform.sh/configuration/app.html) documentation for more details about configuration. For more information about the sequence of events that lead from a build to deployment, see the [Build and deploy timeline documentation](https://docs.platform.sh/overview/build-deploy.html).

 This template uses Composer 2 to install dependencies using the default `composer` [build flavor](https://docs.platform.sh/languages/php.html#build-flavor) prior to the `build` hook. Drush tasks are run during the `deploy` hook, and referenced again during the defined `cron` job.[`drush/platformsh_generate_drush_yml.php`](drush/platformsh_generate_drush_yml.php)**Added:**

 This file has been included to generate the drush yaml configuration on every deployment.[`.platform/services.yaml`](.platform/services.yaml)**Added:**

 Platform.sh provides a number of on-demand managed services that can easily be added to your projects. It's within this file that each service's version, name, resources, and additional configuration are set. See the [Services documentation](https://docs.platform.sh/configuration/services.html) for more details on configuration, version and service availability.

 In this template, MariaDB and Redis have been configured.[`.platform/routes.yaml`](.platform/routes.yaml)**Added:**

 This file is require to deploy on Platform.sh, as it defines how requests should be handled on the platform. It's within this file that redirects and basic caching can be configured. See the [Routes documentation](https://docs.platform.sh/configuration/routes.html) for more configuration details.

[`php.ini`](php.ini)**Added:**

 An initial `php.ini` file has also beed added. The settings are a result of performance testing and best practice recommendations coming from [Blackfire.io](https://blackfire.io). They will initialize Drupal with a number of good baseline performance settings for production applications, and complement many of the tests specified in [`.blackfire.yml`](.blackfire.yml).[`.blackfire.yml`](.blackfire.yml)**Added:**

 This file has been added to help you get started using [Blackfire.io](https://blackfire.io) on your project. See [the Blackfire section below](#blackfireio-creating-a-continuous-observability-strategy) for more information on how to get started.[`.lando.upstream.yml`](.lando.upstream.yml)**Added:**

 This file configures [Lando](https://docs.platform.sh/development/local/lando.html) as a local development option for this template. See the [Platform.sh Lando plugin documentation](https://docs.lando.dev/platformsh/) for more information about configuration and the [Local development](#local-development) section of this README for how to get started.[`.ddev/providers/platform.yaml`](.ddev/providers/platform.yaml)**Added:**

 This file configures [ddev](https://ddev.readthedocs.io/en/latest/users/providers/platform/) as a local development option for this template. See the [Platform.sh ddev integration documentation](https://ddev.readthedocs.io/en/latest/users/providers/platform/) for more information about configuration and the [Local development](#local-development) section of this README for how to get started. Be sure to follow the instructions provided through the ddev CLI and in the comments section of that file to correctly configure ddev for your project.### Dependencies and configuration

[](#dependencies-and-configuration)

Sometimes it is necessary to install additional dependencies to and modify the configuration of an upstream project to deploy on Platform.sh. When it is, we do our best to keep these modifications to the minimum necessary. Run the commands below to reproduce the dependencies in this template.

```
$ composer require platformsh/config-reader drush/drush:^9.1 drupal/console drupal/redis psr/cache:^1.0
$ composer config allow-plugins.composer/installers true --no-plugins
$ composer config allow-plugins.drupal/core-composer-scaffold true --no-plugins
$ composer config allow-plugins.drupal/core-project-message true --no-plugins
$ composer config allow-plugins.cweagans/composer-patches true --no-plugins
```

### Deploying to Platform.sh

[](#deploying-to-platformsh)

Your repository now has all of the code it needs in order to deploy to Platform.sh.

Deploy directly to Platform.sh from the command line1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-4)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-4)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Set the project remote

    Find your `PROJECT_ID` by running the command `platform project:list`

    ```
    +---------------+------------------------------------+------------------+---------------------------------+
    | ID            | Title                              | Region           | Organization                    |
    +---------------+------------------------------------+------------------+---------------------------------+
    | PROJECT_ID    | Your Project Name                  | xx-5.platform.sh | your-username                   |
    +---------------+------------------------------------+------------------+---------------------------------+
    ```

    Then from within your local copy, run the command `platform project:set-remote PROJECT_ID`.
4. Push

    ```
    git push platform DEFAULT_BRANCH
    ```

Integrate with a GitHub repo and deploy pull requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to whatever you have set at `https://YOUR_NAMESPACE/nextjs-drupal`.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-5)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-5)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Setup the integration:

    Consult the [GitHub integration documentation](https://docs.platform.sh/integrations/source/github.html#setup) to finish connecting your repository to a project on Platform.sh. You will need to create an Access token on GitHub to do so.

Integrate with a GitLab repo and deploy merge requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-6)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-6)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Create the repository

    Create a new repository on GitLab, set it as a new remote for your local copy, and push to the default branch.
4. Setup the integration:

    Consult the [GitLab integration documentation](https://docs.platform.sh/integrations/source/gitlab.html#setup) to finish connecting a repository to a project on Platform.sh. You will need to create an Access token on GitLab to do so.

Integrate with a Bitbucket repo and deploy pull requests1. Create a free trial:

    [Register for a 30 day free trial with Platform.sh](https://auth.api.platform.sh/register). When you have completed signup, select the **Create from scratch** project option. Give you project a name, and select a region where you would like it to be deployed. As for the *Production environment* option, make sure to match it to this repository's settings, or to what you have updated the default branch to locally.
2. Install the Platform.sh CLI

    #### Linux/OSX

    [](#linuxosx-7)

    ```
    curl -sS https://platform.sh/cli/installer | php
    ```

    #### Windows

    [](#windows-7)

    ```
    curl -f https://platform.sh/cli/installer -o cli-installer.php
    php cli-installer.php
    ```

    You can verify the installation by logging in (`platformsh login`) and listing your projects (`platform project:list`).
3. Create the repository

    Create a new repository on Bitbucket, set it as a new remote for your local copy, and push to the default branch.
4. Setup the integration:

    Consult the [Bitbucket integration documentation](https://docs.platform.sh/integrations/source/bitbucket.html#setup) to finish connecting a repository to a project on Platform.sh. You will need to create an Access token on Bitbucket to do so.

### Migrating your data

[](#migrating-your-data)

If you are moving an existing site to Platform.sh, then in addition to code you also need to migrate your data. That means your database and your files.

Importing the database
First, obtain a database dump from your current site and save your dump file as `database.sql`. Then, import the database into your Platform.sh site using the CLI:

```
platform sql -e main projectEntropy;
```

This setting was insufficient to cover some user configurations - such as those cases when an application depends on a `Null` value for `hash_salt`.

Now, the setting looks like this in `settings.platformsh.php`:

```
$settings['hash_salt'] = empty($settings['hash_salt']) ? $platformsh->projectEntropy : $settings['hash_salt'];
```

This change sets `hash_salt` to the built-in environment variable `PLATFORM_PROJECT_ENTROPY` value if the project contains the default settings OR `Null`. If your application code *depends* on an empty value, feel free to comment out that line, or reset again later in that file.

Feel free to visit [`platformsh-templates/drupal9#73`](https://github.com/platformsh-templates/drupal9/pull/73) for more details on this discussion.

### Blackfire.io: creating a Continuous Observability Strategy

[](#blackfireio-creating-a-continuous-observability-strategy)

This template includes a starting [`.blackfire.yml`](.blackfire.yml) file that can be used to enable [Application Performance Monitoring](https://blackfire.io/docs/monitoring-cookbooks/index), [Profiling](https://blackfire.io/docs/profiling-cookbooks/index), [Builds](https://blackfire.io/docs/builds-cookbooks/index) and [Performance Testing](https://blackfire.io/docs/testing-cookbooks/index) on your project. Platform.sh comes with Blackfire pre-installed on application containers, and [setting up requires minimal configuration](https://docs.platform.sh/integrations/observability/blackfire.html).

- [What is Blackfire?](https://blackfire.io/docs/introduction)
- [Configuring Blackfire.io on a Platform.sh project](https://docs.platform.sh/integrations/observability/blackfire.html)
- [Blackfire.io Platform.sh documentation](https://blackfire.io/docs/integrations/paas/platformsh)
- [Profiling Cookbooks](https://blackfire.io/docs/profiling-cookbooks/index)
- [Monitoring Cookbooks](https://blackfire.io/docs/monitoring-cookbooks/index)
- [Testing Cookbooks](https://blackfire.io/docs/testing-cookbooks/index)
- [Using Builds](https://blackfire.io/docs/builds-cookbooks/index)
- [Configuring Integrations](https://blackfire.io/docs/integrations/index)

### Resources

[](#resources)

- [Opigno](https://www.opigno.org/)
- [Drupal](https://www.drupal.org/)
- [Drupal 8 on Platform.sh](https://docs.platform.sh/guides/drupal9/deploy.html)
- [Platform.sh PHP documentation](https://docs.platform.sh/languages/php.html)

### Contact

[](#contact)

This template is maintained by the Platform.sh Developer Relations team, and they will be notified of all issues and pull requests you open here.

- **Community:** Share your question with the community, or see if it's already been asked on our [Community site](https://community.platform.sh).
- **Slack:** If you haven't done so already, you can join Platform.sh's [public Slack](https://chat.platform.sh/) channels and ping the `@devrel_team` with any questions.

### About Platform.sh

[](#about-platformsh)

This template has been specifically designed to deploy on Platform.sh.

What is Platform.sh?
Platform.sh is a unified, secure, enterprise-grade platform for building, running and scaling web applications. We’re the leader in Fleet Ops: Everything you need to manage your fleet of websites and apps is available from the start. Because infrastructure and workflows are handled from the start, apps just work, so teams can focus on what really matters: making faster changes, collaborating confidently, and scaling responsibly. Whether managing a fleet of ten or ten thousand sites and apps, Platform.sh is the Developer- preferred solution that scales right.

Our key features include:

- **GitOps: Git as the source of truth**

    Every branch becomes a development environment, and nothing can change without a commit.
- **Batteries included: Managed infrastructure**

    [Simple abstraction in YAML](https://docs.platform.sh/configuration/yaml.html) for [committing and configuring infrastructure](https://docs.platform.sh/overview/structure.html), fully managed patch updates, and 24 [runtimes](https://docs.platform.sh/languages.html) &amp; [services](https://docs.platform.sh/configuration/services.html) that can be added with a single line of code.
- **Instant cloning: Branch, merge, repeat**

    [Reusable builds](https://docs.platform.sh/overview/build-deploy.html) and automatically inherited production data provide true staging environments - experiment in isolation, test, then destroy or merge.
- **FleetOps: Fleet management platform**

    Leverage our public API along with custom tools like [Source Operations](https://docs.platform.sh/configuration/app/source-operations.html) and [Activity Scripts](https://docs.platform.sh/integrations/activity.html) to [manage thousands of applications](https://youtu.be/MILHG9OqhmE) - their dependency updates, fresh content, and upstream code.

To find out more, check out the demo below and go to our [website](https://platform.sh/product/).

[![The Platform.sh demo](https://camo.githubusercontent.com/75b95a00468f0ac3f8f5d79b153c9f2bc3d9af56917f0c2ab198fa3daaee782c/68747470733a2f2f696d672e796f75747562652e636f6d2f76692f6e7932596544365174334d2f302e6a7067)](https://platform.sh/demo/)

Contribute
----------

[](#contribute)

### Help us keep top-notch templates!

[](#help-us-keep-top-notch-templates)

Every one of our templates is open source, and they're important resources for users trying to deploy to Platform.sh for the first time or better understand the platform. They act as getting started guides, but also contain a number of helpful tips and best practices when working with certain languages and frameworks.

See something that's wrong with this template that needs to be fixed? Something in the documentation unclear or missing? Let us know!

**How to contribute**

[**Report a bug**](https://github.com/platformsh-templates/drupal8-opigno/issues/new?assignees=&labels=bug&template=bug_report.yml) [**Submit a feature request**](https://github.com/platformsh-templates/drupal8-opigno/issues/new?assignees=&labels=feature+request&template=improvements.yml) [**Open a pull request**](https://github.com/platformsh-templates/drupal8-opigno/pulls)

**Need help?**

[**Ask the Platform.sh Community**](https://community.platform.sh) [**Join us on Slack**](https://chat.platform.sh)

### **Thanks to all of our amazing contributors!**

[](#thanks-to-all-of-our-amazing-contributors)

[ ![](https://camo.githubusercontent.com/21cdacd44ae51a3175728cd6e8e1d293e63850429f39e1f73a42d72ff871a90d/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d706c6174666f726d73682d74656d706c617465732f64727570616c382d6f7069676e6f)](https://github.com/platformsh-templates/drupal8-opigno/graphs/contributors)

*Made with [contrib.rocks](https://contrib.rocks)*

###  Health Score

19

—

LowBetter than 10% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community20

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 54.6% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://www.gravatar.com/avatar/6ae5aac9c9f6b33d57fb70c593808445da3aefe9cc3a250641073a199810414c?d=identicon)[gilzow](/maintainers/gilzow)

![](https://www.gravatar.com/avatar/b4518010a3eb800a5ede865b20b64814514fa28d80cd35f42215d4dc3c99c593?d=identicon)[platformsh-devrel](/maintainers/platformsh-devrel)

---

Top Contributors

[![platformsh-devrel](https://avatars.githubusercontent.com/u/51342364?v=4)](https://github.com/platformsh-devrel "platformsh-devrel (142 commits)")[![actions-user](https://avatars.githubusercontent.com/u/65916846?v=4)](https://github.com/actions-user "actions-user (52 commits)")[![chadwcarlson](https://avatars.githubusercontent.com/u/5473659?v=4)](https://github.com/chadwcarlson "chadwcarlson (28 commits)")[![Crell](https://avatars.githubusercontent.com/u/254863?v=4)](https://github.com/Crell "Crell (20 commits)")[![gilzow](https://avatars.githubusercontent.com/u/2332956?v=4)](https://github.com/gilzow "gilzow (11 commits)")[![otaviojava](https://avatars.githubusercontent.com/u/863011?v=4)](https://github.com/otaviojava "otaviojava (4 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (2 commits)")[![RudyWeber](https://avatars.githubusercontent.com/u/3034760?v=4)](https://github.com/RudyWeber "RudyWeber (1 commits)")

### Embed Badge

![Health badge](/badges/platformsh-drupal8-opigno/health.svg)

```
[![Health](https://phpackages.com/badges/platformsh-drupal8-opigno/health.svg)](https://phpackages.com/packages/platformsh-drupal8-opigno)
```

###  Alternatives

[laravel/telescope

An elegant debug assistant for the Laravel framework.

5.2k67.8M191](/packages/laravel-telescope)[spiral/roadrunner

RoadRunner: High-performance PHP application server and process manager written in Go and powered with plugins

8.4k12.2M84](/packages/spiral-roadrunner)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M256](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

708181.8M593](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
