PHPackages                             bugbyte/deployer - 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. bugbyte/deployer

ActiveLibrary[DevOps &amp; Deployment](/categories/devops)

bugbyte/deployer
================

A website deployment tool

1.0.10(12y ago)33843MITPHP

Since Sep 21Pushed 10y ago1 watchersCompare

[ Source](https://github.com/bugbyte/deployer)[ Packagist](https://packagist.org/packages/bugbyte/deployer)[ RSS](/packages/bugbyte-deployer/feed)WikiDiscussions master Synced 3d ago

READMEChangelogDependenciesVersions (14)Used By (0)

Installation
============

[](#installation)

The easiest way is to use Composer:

```
{
    "require": {
        "bugbyte/deployer": "1.0.*"
    }
}

```

If you can't or don't want to use Composer (oh come on..) you can just download from GitHub, but you'll have to take care of loading the files by yourself.

Usage
=====

[](#usage)

See [example.php](https://github.com/bugbyte/deployer/blob/master/example.php) for a simple setup.

Requirements
============

[](#requirements)

- Linux or FreeBSD (on both the local and the remote server)
- SSH &amp; RSync access to the remote server, preferably with public key auth (or you'll be typing your password **a lot**).
- PHP CLI 5.2+ (on both the local and remote servers)

Workings
========

[](#workings)

First, rsync is used to upload files to the remote server. Aside from supplying your own exclude files, data\_dirs are excluded automatically.
If previous deployments are found the latest is used as --copy-dest to speed up rsync, and the new deployment is uploaded next to it in a new directory. At first deploy any directories with User Generated Content (data\_dirs) are moved outside of the project root:

> by running "mv" in the remote shell
> by running "ln -s" symlinks are created in their place (you may need to activate Apache's FollowSymlinks option)

Target specific files are renamed ("mv again") after everything is uploaded. These moved files will appear as changed/missing files in subsequent deploys.
After all file-stuff is done, a symlink called "production" is created, pointing to the deployment directory. This is your DocumentRoot.

There are several stub methods in place to allow you to easily hook custom code into some steps of the deployment process.

- preDeploy
- preActivate
- postDeploy
- preRollback
- postDeactivate
- postRollback
- clearRemoteCaches

In case of trouble, you can rollback to the previous deploy in only a few seconds.
The "production"-symlink is changed back and the new deployment is deleted.

For automating database updates, have a look at [LemonWeb/dbpatcher](https://github.com/LemonWeb/deployer/tree/dbpatcher)).

Todo
====

[](#todo)

- consistent coding style
- finish translating everything from Dutch to English
- clean up the output during deployment a bit more

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity18

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity70

Established project with proven stability

 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

Every ~92 days

Recently: every ~218 days

Total

12

Last Release

3972d ago

Major Versions

1.0.10 → 2.x-dev2015-06-29

### Community

Maintainers

![](https://www.gravatar.com/avatar/2e7d064f3401bc5cad77ce1c8bb97cf72825f5c60a3ce2cd9e04b0067518f473?d=identicon)[bjdelange](/maintainers/bjdelange)

---

Top Contributors

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

### Embed Badge

![Health badge](/badges/bugbyte-deployer/health.svg)

```
[![Health](https://phpackages.com/badges/bugbyte-deployer/health.svg)](https://phpackages.com/packages/bugbyte-deployer)
```

###  Alternatives

[deployer/deployer

Deployment Tool

11.0k25.4M207](/packages/deployer-deployer)[appwrite/server-ce

End to end backend server for frontend and mobile apps.

55.3k84.2k](/packages/appwrite-server-ce)[pragmarx/health

Laravel Server &amp; App Health Monitor and Notifier

2.0k1.0M2](/packages/pragmarx-health)[felixfbecker/language-server-protocol

PHP classes for the Language Server Protocol

22476.7M6](/packages/felixfbecker-language-server-protocol)[heroku/heroku-buildpack-php

Toolkit for starting a PHP application locally, with or without foreman, using the same config for PHP and Apache2/Nginx as on Heroku

8161.3M10](/packages/heroku-heroku-buildpack-php)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4674.7k](/packages/tiamo-phpas2)

PHPackages © 2026

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