PHPackages                             aegir/hostmaster-project - 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. aegir/hostmaster-project

ActiveProject

aegir/hostmaster-project
========================

Project template for Aegir Hostmaster.

1133[1 issues](https://github.com/aegir-project/hostmaster-composer-project/issues)PHP

Since Jan 1Pushed 6y ago5 watchersCompare

[ Source](https://github.com/aegir-project/hostmaster-composer-project)[ Packagist](https://packagist.org/packages/aegir/hostmaster-project)[ RSS](/packages/aegir-hostmaster-project/feed)WikiDiscussions master Synced 5d ago

READMEChangelogDependenciesVersions (1)Used By (0)

Aegir Hostmaster Composer Template
==================================

[](#aegir-hostmaster-composer-template)

This project template provides a starter kit for the Aegir Hostmaster Drupal distribution.

Usage
-----

[](#usage)

First you need to [install composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-osx).

> Note: The instructions below refer to the [global composer installation](https://getcomposer.org/doc/00-intro.md#globally). You might need to replace `composer` with `php composer.phar` (or similar) for your setup.

After that you can create the project:

```
composer create-project aegir/hostmaster-project:dev-master --no-interaction /var/aegir/hostmaster-7.x-4.x

```

With `composer require ...` you can download new dependencies to your installation.

```
cd some-dir
composer require drupal/devel:~1.0

```

The `composer create-project` command passes ownership of all files to the project that is created. You should create a new git repository, and commit all files not excluded by the .gitignore file.

What does the template do?
--------------------------

[](#what-does-the-template-do)

When installing the given `composer.json` some tasks are taken care of:

- Drupal will be installed in the `web`-directory.
- Modules (packages of type `drupal-module`) will be placed in `web/sites/all/modules/contrib/`
- Theme (packages of type `drupal-module`) will be placed in `web/sites/all/themes/contrib/`
- Profiles (packages of type `drupal-profile`) will be placed in `web/profiles/`
- Libraries (packages of type `drupal-library`) will be placed in `web/sites/all/libraries/` (See Libraries)
- Helps for using other PHP packages almost similar to the Drupal 8 version
- Creates default writable versions of `settings.php`.
- Creates `web/sites/default/files`-directory.
- Latest version of drush is installed locally for use at `vendor/bin/drush`.

Generate composer.json from existing project
--------------------------------------------

[](#generate-composerjson-from-existing-project)

With using [the "Composer Generate" drush extension](https://www.drupal.org/project/composer_generate)you can now generate a basic `composer.json` file from an existing project. Note that the generated `composer.json` might differ from this project's file.

How to enable the Composer autoloader in your Drupal 7 website
--------------------------------------------------------------

[](#how-to-enable-the-composer-autoloader-in-your-drupal-7-website)

The skeleton already installs the `composer_autoloader` module. Just enable it in the website before enabling any possible module that have dependencies various packages.

Libraries
---------

[](#libraries)

Libraries normally would be extra packages that need to be public available (CSS and JS). Normally this are not maintained using Composer, but if you want to have a 100% Composer deployment and benefit from patches you can use in `composer.json` this example, changing the `repositories` section and adding in `require` section:

```

"repositories": [
  ...
  {
    "type": "package",
    "package": {
        "name": "kenwheeler/slick",
        "version": "1.6.0",
        "dist": {
            "url": "https://github.com/kenwheeler/slick/archive/1.6.0.zip",
            "type": "zip"
        },
        "source": {
            "url": "https://github.com/kenwheeler/slick.git",
            "type": "git",
            "reference": "1.6.0"
        },
        "type": "drupal-library"
    }
  }
],
"require": {
  ...
  "kenwheeler/slick": "~1.6.0"
},

```

After this run `composer update --lock` to install just the manually managed package. *(You may run `composer require "kenwheeler/slick:~1.6.0"` as well if you add just the package definition)*

FAQ
---

[](#faq)

### Should I commit the contrib modules I download?

[](#should-i-commit-the-contrib-modules-i-download)

Composer recommends **no**. They provide [argumentation against but also workrounds if a project decides to do it anyway](https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md).

### How can I apply patches to downloaded modules?

[](#how-can-i-apply-patches-to-downloaded-modules)

If you need to apply patches (depending on the project being modified, a pull request is often a better solution), you can do so with the [composer-patches](https://github.com/cweagans/composer-patches) plugin.

To add a patch to drupal module foobar insert the patches section in the extra section of composer.json:

```
"extra": {
    "patches": {
        "drupal/foobar": {
            "Patch description": "URL or local path to patch"
        }
    }
}
```

### How do I switch from packagist.drupal-composer.org to packages.drupal.org?

[](#how-do-i-switch-from-packagistdrupal-composerorg-to-packagesdrupalorg)

Follow the instructions in the [documentation on drupal.org](https://www.drupal.org/docs/develop/using-composer/using-packagesdrupalorg).

### How do I specify a PHP version ?

[](#how-do-i-specify-a-php-version-)

This project supports PHP 5.3 as minimum version (see [Drupal 7 PHP requirements](https://www.drupal.org/docs/7/system-requirements/php-requirements)), however it's possible that a `composer update` will upgrade some package that will then require PHP 7+.

To prevent this you can add this code to specify the PHP version you want to use in the `config` section of `composer.json`:

```
"config": {
    "sort-packages": true,
    "platform": {
        "php": "5.3.3"
    }
},
```

###  Health Score

15

—

LowBetter than 3% of packages

Maintenance0

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity35

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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/10539fb9e887c35b626eba70c97dd9d53ba14e987d4f129b55a488664a834eca?d=identicon)[jonpugh](/maintainers/jonpugh)

---

Top Contributors

[![jonpugh](https://avatars.githubusercontent.com/u/106420?v=4)](https://github.com/jonpugh "jonpugh (5 commits)")

### Embed Badge

![Health badge](/badges/aegir-hostmaster-project/health.svg)

```
[![Health](https://phpackages.com/badges/aegir-hostmaster-project/health.svg)](https://phpackages.com/packages/aegir-hostmaster-project)
```

PHPackages © 2026

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