Skip to content

Latest commit

 

History

History
156 lines (106 loc) · 5.54 KB

README.md

File metadata and controls

156 lines (106 loc) · 5.54 KB

Deployer

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.

Gitter

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

Requirements

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

Installation

  1. Clone the repository
$ git clone https://github.com/REBELinBLUE/deployer.git
  1. Checkout the latest release
$ git checkout 0.0.37
  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

Updating

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

License

Deployer is licensed under The MIT License (MIT).