PHPackages                             studiometa/foehn-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. [DevOps &amp; Deployment](/categories/devops)
4. /
5. studiometa/foehn-installer

ActiveComposer-plugin[DevOps &amp; Deployment](/categories/devops)

studiometa/foehn-installer
==========================

Composer plugin that generates the WordPress web root, symlinks, and wp-config.php for Foehn projects.

0.4.1(4mo ago)141MITPHPPHP ^8.4

Since Feb 10Pushed 4mo agoCompare

[ Source](https://github.com/studiometa/foehn-installer)[ Packagist](https://packagist.org/packages/studiometa/foehn-installer)[ RSS](/packages/studiometa-foehn-installer/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (2)Versions (3)Used By (1)

Foehn Installer
===============

[](#foehn-installer)

Composer plugin that generates the WordPress web root for [Føhn](https://github.com/studiometa/foehn-framework) projects.

> **Note**This package is part of the [Føhn Framework](https://github.com/studiometa/foehn-framework) monorepo. Please report issues and submit pull requests in the [main repository](https://github.com/studiometa/foehn-framework).

What it does
------------

[](#what-it-does)

On `composer install` and `composer update`, this plugin automatically:

1. Creates the `web/` directory structure (document root)
2. Generates `web/wp-config.php` (loads config from `config/` directory)
3. Generates `web/index.php` (WordPress front controller)
4. Symlinks `theme/` → `web/wp-content/themes/{name}`
5. Symlinks `mu-plugins/` → `web/wp-content/mu-plugins/_custom`
6. Generates the mu-plugin loader

Installation
------------

[](#installation)

```
composer require studiometa/foehn-installer
```

Configuration
-------------

[](#configuration)

Configure via `extra.foehn` in your project's `composer.json`:

```
{
  "extra": {
    "foehn": {
      "web-dir": "web",
      "wp-dir": "wp",
      "theme-dir": "theme",
      "theme-name": "my-theme",
      "mu-plugins-dir": "mu-plugins",
      "config-dir": "config"
    }
  }
}
```

All options are optional and have sensible defaults.

OptionDefaultDescription`web-dir``web`Web root directory (document root)`wp-dir``wp`WordPress core directory within web root`theme-dir``theme`Theme source directory to symlink`theme-name``theme`Theme directory name in `wp-content/themes/``mu-plugins-dir``mu-plugins`Custom mu-plugins directory to symlink`config-dir``config`Configuration files directoryGenerated structure
-------------------

[](#generated-structure)

```
web/                            ← Document root (nginx/apache)
├── index.php                   ← Generated front controller
├── wp-config.php               ← Generated configuration
├── wp/                         ← WordPress core (via composer)
└── wp-content/
    ├── themes/
    │   └── my-theme → ../../theme/
    ├── plugins/                ← Composer-managed plugins
    ├── mu-plugins/
    │   ├── 00-loader.php       ← Generated loader
    │   └── _custom → ../../mu-plugins/
    └── uploads/

```

License
-------

[](#license)

MIT

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance74

Regular maintenance activity

Popularity5

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity43

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 87.5% 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

Every ~0 days

Total

2

Last Release

145d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/7e88435dae9fed57464c2668f35d4c7dd7f874e55e9727972369538d639d6373?d=identicon)[titouanmathis](/maintainers/titouanmathis)

---

Top Contributors

[![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4)](https://github.com/github-actions[bot] "github-actions[bot] (7 commits)")[![titouanmathis](https://avatars.githubusercontent.com/u/250145?v=4)](https://github.com/titouanmathis "titouanmathis (1 commits)")

---

Tags

wordpressinstallercomposer-pluginfoehn

### Embed Badge

![Health badge](/badges/studiometa-foehn-installer/health.svg)

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

###  Alternatives

[composer/installers

A multi-framework Composer library installer

1.4k143.6M6.8k](/packages/composer-installers)[johnpbloch/wordpress-core-installer

A custom installer to handle deploying WordPress with composer

21911.3M51](/packages/johnpbloch-wordpress-core-installer)[roots/wordpress-core-installer

A Composer custom installer to handle installing WordPress as a dependency

4216.6M51](/packages/roots-wordpress-core-installer)[mnsami/composer-custom-directory-installer

A composer plugin, to help install packages of different types in custom paths.

1465.4M62](/packages/mnsami-composer-custom-directory-installer)[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.

3014.6M26](/packages/vaimo-composer-patches)[automattic/jetpack-autoloader

Creates a custom autoloader for a plugin or theme.

576.1M127](/packages/automattic-jetpack-autoloader)

PHPackages © 2026

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