PHPackages                             imscp/composer-installers - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. imscp/composer-installers

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

imscp/composer-installers
=========================

i-MSCP composer installers

1.0.0(7y ago)01.0k14LGPL-2.1-onlyPHPPHP ^7.1

Since Mar 14Pushed 7y ago1 watchersCompare

[ Source](https://github.com/i-MSCP/composer-installers)[ Packagist](https://packagist.org/packages/imscp/composer-installers)[ Docs](https://www.i-mscp.net/)[ RSS](/packages/imscp-composer-installers/feed)WikiDiscussions master Synced 1w ago

READMEChangelog (1)Dependencies (5)Versions (2)Used By (4)

[Composer](https://getcomposer.org) installers for [i-MSCP](https://www.i-mscp.net/)
====================================================================================

[](#composer-installers-for-i-mscp)

[![Build Status](https://camo.githubusercontent.com/1a18574e51c1e71a26cdf06bdc5a237550ce4b8ee253f9543cf7e4debbcaf761/68747470733a2f2f7365637572652e7472617669732d63692e6f72672f692d4d5343502f636f6d706f7365722d696e7374616c6c6572732e7376673f6272616e63683d6d6173746572)](https://secure.travis-ci.org/i-MSCP/composer-installers)[![Coverage Status](https://camo.githubusercontent.com/3f8040fc82241a3a7aca1bb5ee23164611058cbef3b7a6e616e90fd522625fab/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f692d4d5343502f636f6d706f7365722d696e7374616c6c6572732f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/i-MSCP/composer-installers?branch=master)

This is for i-MSCP composer package authors to require in their `composer.json`. It will install their package to the correct location based on the specified package type.

Current supported installers and package types
----------------------------------------------

[](#current-supported-installers-and-package-types)

InstallerTypesi-MSCP**`imscp-plugin`**
**`imscp-theme`**
**`imscp-tool`**Roundcube**`roundcube-plugin`**Example `composer.json`
-----------------------

[](#example-composerjson)

This is an example for the i-MSCP PhpMyAdmin composer package. The only important parts to set in the composer.json file are `"type": "imscp-tool"`which describes what package is and `"require": { "imscp/composer-installers": "^1.0" }`which tells composer to load the custom installers.

```
{
    "name": "imscp/phpmyadmin",
    "type": "imscp-tool",
    "require": {
        "imscp/composer-installers": "^1.0"
    }
}
```

This would install the package to the `gui/public/tools/phpmyadmin/` path.

Custom install paths
--------------------

[](#custom-install-paths)

i-MSCP developers and/or administrators can override the install paths in different ways, using the `installer-paths` extra in the `composer.json` of the i-MSCP instance :

### Per package basis

[](#per-package-basis)

```
{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                "konzeptplus/imscp-api",
                "imscp/dns-provisioning"
            ]
        }
    }
}
```

would install both the `konzeptplus/imscp-api` and `imscp/dns-provisioning`packages into the `custom/path/{$name}/` path.

### Per package type basis

[](#per-package-type-basis)

```
{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                 "type:imscp-plugin"
             ]
        }
    }
}
```

would install any package of type `imscp-plugin` into the `custom/path/{$name}/` path.

### Per vendor basis

[](#per-vendor-basis)

```
{
    "extra": {
        "installer-paths": {
            "custom/path/{$name}/": [
                "vendor:konzeptplus"
            ]
        }
    }
}
```

would install any package provided by the `konzeptplus` vendor into the `custom/path/{$name}/` path.

In all the above cases, the following variables are available for use in paths:

- `{$name}`: Package name
- `{$vendor}` Vendor name
- `{$type}` Package type

Custom install name
-------------------

[](#custom-install-name)

As a package author, you can name it differently when installed by using the `installer-name` extra in the package `composer.json`.

If you have a package named `imscp/roundcube` of type` imscp-tool`, it would be installed in the `gui/public/tools/roundcube` path. To provide this package as default Webmail, you need override its name as follows:

```
{
    "name": "imscp/roundcube",
    "type": "imscp-tool",
    "extra": {
        "installer-name": "webmail"
    }
}
```

By doing so, the package would be installed in the `gui/public/tools/webmail`path.

Disabling installers
--------------------

[](#disabling-installers)

There may be time when you want to disable one or more installers from `imscp/composer-installers`. For instance, if you are managing a package that uses a specific installer that conflicts with `imscp/composer-installers` but also have a dependency on a package that depends on `imscp/composer-installers`.

Installers can be disabled by specifying the extra `installer-disable`property. If set to `true`, `"all"`, or `"*"` all installers will be disabled.

```
{
    "extra": {
        "installer-disable": true
    }
}
```

Otherwise a single installer or an array of installers may be specified.

```
{
    "extra": {
        "installer-disable": [
            "imscp",
            "roundcube"
        ]
    }
}
```

**Note:** Using a global disable value (`true`, `"all"`, or `"*"`) will take precedence over individual installer names if used in an array. The example below will disable all installers.

```
{
    "extra": {
        "installer-disable": [
          "imscp",
          "all"
        ]
    }
}
```

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity16

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 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.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2622d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1a75a331b80411facd6f9749d9287a75e0959c5b0fa5b5bfdc5b800c79869623?d=identicon)[nuxwin](/maintainers/nuxwin)

---

Top Contributors

[![nuxwin](https://avatars.githubusercontent.com/u/125594?v=4)](https://github.com/nuxwin "nuxwin (19 commits)")

---

Tags

libraryroundcubepluginstoolsimscpinstallers

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/imscp-composer-installers/health.svg)

```
[![Health](https://phpackages.com/badges/imscp-composer-installers/health.svg)](https://phpackages.com/packages/imscp-composer-installers)
```

###  Alternatives

[tgmpa/tgm-plugin-activation

TGM Plugin Activation is a PHP library that allows you to easily require or recommend plugins for your WordPress themes (and plugins).

1.8k222.5k13](/packages/tgmpa-tgm-plugin-activation)[vaimo/composer-patches

Applies a patch from a local or remote file to any package that is part of a given composer project. Patches can be defined both on project and on package level. Optional support for patch versioning, sequencing, custom patch applier configuration and patch command for testing/troubleshooting added patches.

2994.3M16](/packages/vaimo-composer-patches)[glpi-project/tools

Various tools for GLPI and its plugins

12710.9k4](/packages/glpi-project-tools)[ramsey/devtools

A Composer plugin to aid PHP library and application development.

7134.7k26](/packages/ramsey-devtools)

PHPackages © 2026

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