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
Release Status
- 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
- Provision VMs
- Install system packages
- Configure the web server, database or other services
- Run a test suite or check code quality
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.
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 (or yarn install)
and then build the assets
$ gulp
- PHP 5.5.9+ or newer
- A database, either MySQL or PostgreSQL are recommended but SQLite can be used
- Composer
- Redis
- Node.js
- Beanstalkd for queuing jobs. Although Laravel can use redis there is currently an issue when using more than 1 queue worker, the default in Deployer is 3.
- 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 - Yarn an improved package manager for Node.js
- Clone the repository
$ git clone https://github.com/REBELinBLUE/deployer.git
- Checkout the latest release
$ git checkout 0.0.40
- Install dependencies
$ composer install -o --no-dev
$ npm install --production
- Make sure the storage and upload directories are writable
$ chmod -R 777 storage
$ chmod -R 777 public/upload
- Run the installer and follow the instructions
$ php artisan app:install
- (Optional) Make any additional configuration changes
$ editor .env
-
Configure your web server to point to
public/
, seeexamples/
for Apache and nginx sample configuration files. If you use Apache you will need to ensure you have themod_rewrite
module enabled. -
Start socket server and setup cron jobs. If you are not configuring
supervisor
you will need to manually start the socket server withnode socket.js
(listens on port 6001 by default) and setup cron jobs, seeexamples/crontab
. If you are configuringsupervisor
seeexamples/supervisor.conf
- Get the latest code
$ git fetch --all
$ git checkout 0.0.40
- Update the dependencies
$ composer install -o --no-dev
$ npm install --production
- Run the updater
$ php artisan app:update
Deployer is licensed under The MIT License (MIT).