Deployer is a free and open source deployment tool.
PHP HTML JavaScript Other
Latest commit c634062 Aug 21, 2016 @REBELinBLUE Removed create-release
Failed to load latest commit information.
.github Fixed link Aug 6, 2016
app Fixes #258 - Fatal error in PHP 5 when git tags are not valid version… Aug 17, 2016
bootstrap Clean up Feb 6, 2016
config Clean up May 29, 2016
database More PHPDoc block cleanup, added @fires blocks for events and @dispat… Jun 25, 2016
examples Priority WS for optimal transport browser (#250) Jul 23, 2016
public Revert "Changed permissions on gitignore files to fix update problems… Mar 28, 2016
resources Fixes #257 - Touch files when extracting to prevent warnings about ti… Aug 6, 2016
storage Started adding unit tests May 12, 2016
tests Clean up May 16, 2016
.codeclimate.yml exclude JS Mar 22, 2016
.editorconfig Add editorconfig Aug 13, 2015
.env.example Tweak .env example May 29, 2016
.gitattributes Removed create-release Aug 21, 2016
.gitignore Added model property PHPDoc blocks Jun 25, 2016
.php_cs Ran php-cs-fixer on languages Mar 30, 2016
.phpci.yml Removed create-release Aug 21, 2016
.styleci.yml Added missing trailing new lines Jan 31, 2016 Updated CHANGELOG Aug 21, 2016 Rename to Jun 17, 2015 Updated CHANGELOG Aug 21, 2016 Link to screenshots May 3, 2016
VERSION Updated version Aug 21, 2016
artisan Clean up Feb 6, 2016
bower.json Pin jquery version as cropper now installs version 3.0.0 which doesn'… Jun 24, 2016
composer.json Updated google2fa library Aug 2, 2016
composer.lock Updated dependencies Aug 21, 2016
gulpfile.js Fixed gulpfile so that assets don't get removed before they are versi… Aug 2, 2016
package.json Updated ioredis Aug 2, 2016
phpcs.xml Added grumphp Mar 30, 2016
phpmd.xml Added missing trailing new lines Jan 31, 2016
phpunit.xml.dist Updated dependencies Jun 23, 2016
server.php Fix PSR2 Aug 13, 2015
socket.js Updated ioredis Aug 2, 2016


Deployer is a PHP Application deployment system powered by Laravel 5.2, written & maintained by Stephen Ball.

Check out the releases, license, screenshots, and contribution guidelines.


Current Build Status

StyleCI Build Status Code Climate Test Coverage SensioLabs Insight

Release Status

PHP Dependency Status Node Dependency Status Latest Version

What it does

  • Deploys applications to multiple servers accessible via SSH
  • Clones your project's git repository
  • Installs composer dependencies
  • Runs arbitrary bash commands
  • Gracefully handles failure in any of these steps
  • Keeps a number of previous deployments
  • Monitors that cronjobs are running
  • Allows deployments to be triggered via a webhook

What it doesn't do

Usage in production

The master branch of this repository is a development branch and should not be used in production. Changes are merged into the release branch when they are considered stable and may then be tagged for release at any time. It is recommended that you use the latest tag release for production. For information on contributing see contribution guidelines.

Common Error

If you see an error like the following in the logs

'ErrorException' with message 'file_get_contents(/var/www/deployer/public/build/rev-manifest.json): failed to open stream: No such file or directory' in /var/www/deployer/vendor/laravel/framework/src/Illuminate/Foundation/helpers.php:343

or the following on the page

ErrorException (E_ERROR) file_get_contents(/var/www/deployer/public/build/rev-manifest.json): failed to open stream: No such file or directory

it means you are not using a production build. You either need to checkout the release branch or a specific release, or install the additional development dependencies

$ composer install
$ npm install

and then build the assets

$ gulp


Optional extras

  • Supervisor to keep the queue listener and Node.js socket server running
  • A caching server, unless you expect a lot of traffic the default file cache is probably enough


  1. Clone the repository
$ git clone
  1. Checkout the latest release
$ git checkout 0.0.38
  1. Install dependencies
$ composer install -o --no-dev
$ npm install --production
  1. Make sure the storage and upload directories are writable
$ chmod -R 777 storage
$ chmod -R 777 public/upload
  1. Run the installer and follow the instructions
$ php artisan app:install
  1. (Optional) Make any additional configuration changes
$ editor .env
  1. Configure your web server to point to public/, see examples/ for Apache and nginx sample configuration files.

  2. Start socket server and setup cron jobs. If you are not configuring supervisor you will need to manually start the socket server with node socket.js (listens on port 6001 by default) and setup cron jobs, see examples/crontab. If you are configuring supervisor see examples/supervisor.conf


  1. Get the latest code
$ git fetch --all
$ git checkout 0.0.38
  1. Update the dependencies
$ composer install -o --no-dev
$ npm install --production
  1. Run the updater
$ php artisan app:update


Deployer is licensed under The MIT License (MIT).