PHPackages                             frastel/puphpeteer-installer - 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. frastel/puphpeteer-installer

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

frastel/puphpeteer-installer
============================

Installs versioned Puppet modules with PHP and Composer

765PHP

Since Jul 4Pushed 12y ago1 watchersCompare

[ Source](https://github.com/frastel/puphpeteer-installer)[ Packagist](https://packagist.org/packages/frastel/puphpeteer-installer)[ RSS](/packages/frastel-puphpeteer-installer/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

puphpeteer-installer
====================

[](#puphpeteer-installer)

Installs versioned Puppet modules with PHP and Composer.

The default [puppet module installer](http://docs.puppetlabs.com/puppet/2.7/reference/modules_installing.html) is too complicated for you or adding Puppet modules as git submodules feels strange? Then this installer might be useful for you.

The required Puppet modules are installed via Composer in the `vendor` directory as usual, however they are copied after Composer installation to the defined modules dir. Afterwards all Puppet modules are located in one main directory and Puppet provisioning could be executed from there.

The resulting folder structure is then

```
puppet/
  manifests/
    .pp
  modules/

vendor/
  /
    /

```

The contents of the `modules` and `vendor` directory should be ignored from git.

This setup assumes that you have PHP and Composer already installed on your machine. So you can not use this setup on a clean install. But anyway this was only an idea during development of [PuPHPet](https://github.com/puphpet/puphpet/issues/56) and maybe it helps you in some cases.

The required Puppet modules do not need a composer.json, the installation works anyway but without versioning. Adding a composer.json to a module will add versioning support.

Usage in composer.json
----------------------

[](#usage-in-composerjson)

Add `frastel/puphpeteer-installer` to your required packages.

```
    "require": {
        "frastel/puphpeteer-installer": "dev-master"
    },

```

Add the Puppet module installer to the `scripts` section:

```
    "scripts": {
        "post-install-cmd": "Frastel\\Puphpeteer\\Installer::build",
        "post-update-cmd": "Frastel\\Puphpeteer\\Installer::build"
    },

```

Define where the Puppet modules should be copied to and how they should be renamed during installation:

```
    "extra": {
        "puppet-modules-dir": "puppet/modules",
        "puppet-modules": {
            "jfryman/puppet-nginx":      "nginx",
            "puppetlabs/postgresql":     "postgresql",
            "frastel/puppet-phpmyadmin": "phpmyadmin",
            "frastel/puppet-symfony":    "symfony"
        }
    },

```

- *puppet-modules-dir*: Relative path dependent to your composer.json
- *puppet-modules*: A list of modules which are installed via Composer and should be copied to the `puppet-modules-dir`. The keys are the original project names and the values the expected puppet module names.

Example: [Demo](https://github.com/frastel/puphpeteer-installer-demo/blob/master/composer.json)

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/84dcec5194d1b83503a725c7326a076657dc823e837d7e38e3269515eacdb139?d=identicon)[frastel](/maintainers/frastel)

---

Top Contributors

[![frastel](https://avatars.githubusercontent.com/u/433380?v=4)](https://github.com/frastel "frastel (11 commits)")

### Embed Badge

![Health badge](/badges/frastel-puphpeteer-installer/health.svg)

```
[![Health](https://phpackages.com/badges/frastel-puphpeteer-installer/health.svg)](https://phpackages.com/packages/frastel-puphpeteer-installer)
```

###  Alternatives

[hidehalo/nanoid-php

A copy of nanoid in PHP

8124.1M41](/packages/hidehalo-nanoid-php)[humanmade/hm-gutenberg-tools

Human Made Gutenberg Tools

18997.6k](/packages/humanmade-hm-gutenberg-tools)[monsieurbiz/sylius-menu-plugin

This plugins allows you to manage menus.

1570.2k1](/packages/monsieurbiz-sylius-menu-plugin)[sroze/argument-resolver

A lightweight utility to resolve method arguments based on types and names

1041.4k1](/packages/sroze-argument-resolver)

PHPackages © 2026

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