For a customer we should do a bunch of sites build with Drupal. Multisite is not possible because of different hosting solutions.

Would creating a custom distribution work out for that case? Is it possible to make a "private" distribution not listed on Drupal.org?

  • Sounds more like a Composer-based multi-site. I guess private distros are not possible on drupal.org. – leymannx Feb 11 at 11:20
  • How it will work with composer-multisites when each site will be deployed individually? And how with updating them? – Max Feb 11 at 11:35
  • Ah OK, I overread that, different hosting solutions. Still, I'd go for Composer and a version-managed custom profile. Why do you want a distribution? – leymannx Feb 11 at 11:46
  • My hope was a easier update and change management. – Max Feb 11 at 11:49

On drupal.org, a distribution is a single download containing Drupal core, contributed modules, themes, and pre-defined configuration. You could create a distribution locally, using the same tools used on drupal.org to create a distribution, but that would involve creating a drupal-org.make file using drush make, which is a command removed from Drush.

Instead, as Drush itself suggests, you should use Composer. Create a composer.json file, locally, and add all the dependencies (including modules) you need with composer require. If then you need, for example, to create specific content types, roles, taxonomy terms, or other entities, you could create an installation profile, as described in How to Write a Drupal 8 Installation Profile. Using an installation profile doesn't work for already created sites, but for sites you still have to create, a custom installation profile helps in building a site.

As example of what an installation profile can do, see the content of the core/profiles/standard directory, in particular the config directory, which contains the configuration files necessary to create the default entities you normally used on the default Drupal installation. An installation profile can have dependencies, a list of core modules that needs to be installed (see the standard.info.yml file), implement hook_install() (see the standard.install file) and other hooks a module can implements, including the one to alter the site configuration form shown during the installation of Drupal (see the standard.profile file).


As you are deploying the same Drupal sites for different hosting providers, and you may want to install the same modules again and again with same kind of settings. Distribution is the way to manage initial default module dependencies and settings, And you can create your custom distribution and place it in /profiles folder.

  • The /profiles directory is for installation profiles, which are quite different from distributions. – kiamlaluno Feb 11 at 15:46

You can add your own git repositories as sources for composer. This way, you can allow composer to look for code updates in areas other than the standard (public) repositories.

In composer.json, look for the "extra" array, and add a "repositories" item, and then add your own repositories like this:

    "extra": {
        "repositories": [
                "type": "vcs",
                "url": "..."

More info on adding repositories to composer.

You can also configure composer to use private repositories.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.