PHPackages                             imarc/craft-boost - 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. imarc/craft-boost

ActiveCraft-plugin

imarc/craft-boost
=================

A Craft plugin that provides basic deployment.

2.5.2(7y ago)101.7kApache-2.0PHP

Since Apr 20Pushed 7y ago22 watchersCompare

[ Source](https://github.com/imarc/craft-boost)[ Packagist](https://packagist.org/packages/imarc/craft-boost)[ Docs](https://github.com/imarc/craft-boost)[ RSS](/packages/imarc-craft-boost/feed)WikiDiscussions master Synced 2mo ago

READMEChangelogDependencies (1)Versions (20)Used By (0)

README
======

[](#readme)

Boost is a Craft plugin that enables a very simplified deployment system based on our [typical process](http://handbook.imarc.net/deployment). While this software is functional, it should be treated as beta at best. It has strict requirements on how Craft is configured as well as the server environment.

Boost is designed to work with three environments – dev, stage, and prod. It automates copying assets and databases between evironments as well as pulling fresh code from a git repository.

- The database and assets are always copied from the current canonical environment (either dev or prod.)
- When deploying to dev or stage, the most recent commit from Git is used for VCS files.
- When deploying to prod, the current commit on stage is used for VCS files.

For more information, see the [iMarc Handbook](http://handbook.imarc.net/deployment).

Boost can

- Copy files from one Craft environment to another Craft environment on the same server,
- Copy Craft's database from one environment to another, and
- Pull new files from Git.

Boost **does not support**

- Migrations - including database migrations. All Database/Craft changes need to be made to the canonical environment only (dev initially, and prod once any content is put in prod.)

Craft Configuration
-------------------

[](#craft-configuration)

First, you **must** be using **per environment configuration settings**. While it should be possible to use Craft's built-in, domain-based environments, we have only tested using Boost with custom code like this:

```
/* craft/config/general.php */

$env = preg_replace('#^.*/#', '', dirname(CRAFT_BASE_PATH));

$config = [
        'omitScriptNameInUrls' => true,
        'maxUploadFileSize' => 104857600
];

switch ($env) {
        case 'dev':
                $config = array_merge($config, [
                        'siteUrl' => 'http://dev.example.com',
                        'devMode' => true,
                        'useCompressedJs' => false,
                ]);
                break;
        case 'stage':
                $config = array_merge($config, [
                        'siteUrl' => 'http://stage.example.com',
                        'useCompressedJs' => false,
                ]);
                break;
        case 'prod':
                $config = array_merge($config, [
                        'siteUrl' => 'http://www.example.com',
                ]);
                break;
        default:
                die("Unfortunately, the server is misconfigured. Please review the configuration in config/general.php.");
}

return $config;
```

The benefit here is that environment is determined solely off of `CRAFT_BASE_PATH`, which avoids issues with domain aliases. **Both craft/config/general.php and craft/config/db.php** need to be setup like this.

### Keep Assets Relative

[](#keep-assets-relative)

Second, if you want to avoid needing to reconfigure Craft after every deployment, you should use **relative paths when defining Asset Sources**. For example, you might use '../public/writable/documents' instead of '/var/www/example.com/prod/public/writable/documents'.

Installing and Configuring Boost
--------------------------------

[](#installing-and-configuring-boost)

Installing Boost is straight forward:

1. Put the plugin in craft/plugins/boost/.
2. Through Craft's admin panel, install the plugin.
3. Click on 'Boost', the now-hyperlinked name for the plugin to get to Boost's settings.
4. Fill out the settings.

Composer, NPM, and Gulp
-----------------------

[](#composer-npm-and-gulp)

If a `composer.json`, `package.json`, or `gulpfile.js` are found in the new environment, then `composer install --ignore-platform-reqs`, `npm install --production`, and `gulp` will be called respectively. For these files to exist in the new environment, you will **need to add them to the VCS Direcories setting below.** If you do not add them, then these command won't be automatically called.

Boost Settings
--------------

[](#boost-settings)

- **Environment Root** – a single directory containing all environments. For example, `/var/www/example.com/`.
- **Canonical Environment** – With environment to use as the canonical source for content. This is typically dev before a site is launched, and prod once the site is launched.
- **VCS URL** – This is the URL to checkout from version control. For example, `git@github.com:imarc/example-com.git`.
- **VCS Cache Directory** – Boost keeps a local clone of the repository in this directory. Typically, something like `/var/www/example.com/cache`.
- **VCS Directories** – This is a space separated list of relative paths to directories to copy from VCS into the environment as part of deployment. This might be something like

```
craft/plugins craft/templates public/css public/fonts public/img public/.htaccess composer.json

```

### Database Settings

[](#database-settings)

For each database, you can specify the **name**, **user**, **password**, and **host**. All of these are optional except for the production database name. If The development or staging database names are omitted, then they use the production name prefixed with 'dev\_' or 'stage\_' respectively.

### Advanced Settings

[](#advanced-settings)

- **Reset Ownership** – If specified, this will reset the ownership of files synced from version control to this value. (Example: `www-data:web`).
- **Reset File Permissions** – If specified, this is passed to `chmod` to reset the permissions of files and directories synced from version control. (Example: `g+rw`).
- **Keep Database** – Boost's default behavior is to delete and recreate each database so that it will only contain tables/records from the export. However, if you do not have permissions to do this, You can enable this setting and Boost will make sure the export includes `DROP TABLE` statements, so that it can replace the tables in the target database without needing to remake it. It does mean that tables that are part of the target environment and not the source environment will persist.
- **Reset Database Permissions** – If specified, database full database permissions are granted to this user when creating new databases. (Ex: `web@localhost`).
- **Delete Leftover Files** – If specified, after the VCS directories are synced, leftover files present in the VCS directories but not in the repository will be deleted.
    - **Protect From Deletion** – A space separated list of files and folders that exist in the VCS directories on the server to protect from being deleted. (Ex: `/writable*`)

### Hooks

[](#hooks)

- **Pre Deployment Hooks** – These are run within the new environment **before** it is deployed live. This is a good place to run any additional build steps.
- **Post Deployment Hooks** – These are run within the new environment **after** it is deployed live. This is a good place to run any kind of caching clearing.

Usage
-----

[](#usage)

To call this command, we use Craft's default CLI:

```
php /var/www//prod/craft/app/etc/console/yiic.php boost

```

To deploy to a specific environment, use

```
php /var/www//prod/craft/app/etc/console/yiic.php boost deploy --env=stage

```

To deploy to a branch to a specific environment, use

```
php /var/www//prod/craft/app/etc/console/yiic.php boost deploy --env=stage --branch=branch-name

```

To show the log of commits that will be deployed to an env

```
php /var/www//prod/craft/app/etc/console/yiic.php boost log --env=stage

```

Shows the current versions of each of the environments

```
php /var/www//prod/craft/app/etc/console/yiic.php boost versions

```

###  Health Score

35

—

LowBetter than 79% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 64.7% 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 ~51 days

Recently: every ~144 days

Total

18

Last Release

2796d ago

Major Versions

0.3.3 → 1.0.02016-04-22

0.3.4 → 1.0.22016-05-05

1.2.0 → 2.0.02016-08-25

### Community

Maintainers

![](https://www.gravatar.com/avatar/00725533df5fd021ac93639028725bf46bef78f6d924618a987b9bfd5c32c3eb?d=identicon)[jeffturcotte](/maintainers/jeffturcotte)

![](https://www.gravatar.com/avatar/4c423d4aa457201693aadc0ffd67895f3383709e89c66547949d65a37123ee22?d=identicon)[khamer](/maintainers/khamer)

---

Top Contributors

[![khamer](https://avatars.githubusercontent.com/u/1452?v=4)](https://github.com/khamer "khamer (33 commits)")[![jeffturcotte](https://avatars.githubusercontent.com/u/65089?v=4)](https://github.com/jeffturcotte "jeffturcotte (17 commits)")[![dtcollins](https://avatars.githubusercontent.com/u/3641365?v=4)](https://github.com/dtcollins "dtcollins (1 commits)")

### Embed Badge

![Health badge](/badges/imarc-craft-boost/health.svg)

```
[![Health](https://phpackages.com/badges/imarc-craft-boost/health.svg)](https://phpackages.com/packages/imarc-craft-boost)
```

###  Alternatives

[elgg/elgg

Elgg is an award-winning social networking engine, delivering the building blocks that enable businesses, schools, universities and associations to create their own fully-featured social networks and applications.

1.7k15.7k5](/packages/elgg-elgg)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

44643.1k1](/packages/pressbooks-pressbooks)[johnbillion/user-switching

Instant switching between user accounts in WordPress and WooCommerce.

19768.3k2](/packages/johnbillion-user-switching)[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/user-plugin

User plugin for October CMS

11954.3k13](/packages/rainlab-user-plugin)

PHPackages © 2026

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