A configurable deploy script
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
docs
src
tests
.gitattributes
.gitignore
.travis.yml
README.md
build
composer.json
phpunit.xml
quality.sh

README.md

Deployer

Build Status Latest Stable Version Total Downloads Scrutinizer Quality Score Code Coverage

Easily deploy your applications

Deployer is a tool that helps to deploy projects of any type to a server with minimal requirements.

Requirements on the server side:

  • SSH Access to the server
  • PHP if you want to use composer

The library works perfectly and is used in production for a few years now. It is still marked as beta as there are some things I still want to improve.

What does it do better than others ?

There are so much tools to deploy an application to one or many servers, the problem is that they're hard to configure and / or they need to install software on the destination server.

This tool has two advantages:

  • Nothing needs to be installed on the destination
  • Very simple configuration

Deploying is as simple as :

./deploy server:deploy production

Commands

Two commands are available

  • server:deploy : To deploy the latest commit on one or more servers
  • server:rollback : To rollback the latest deploy on one or more servers

Installation

You can install the library through composer. All you need is to add it as dependency to your composer.json.

{
    "require-dev": {
        "onigoetz/deployer": "1.0.0-beta2"
    }
}

Quick Start

The full documentation is available at

http://onigoetz.ch/deployer/

In Laravel 4

Add the following lines to your application in config/local/app.php

    'providers' => append_config(
        ['Onigoetz\Deployer\DeployServiceProvider']
    ),

With that part configured you can run ./artisan config:publish onigoetz/deployer

this will copy the default configurations to config/packages/onigoetz/deployer You can find the details of each file in the Configuration section

Then you can run ./artisan server:deploy production to deploy

Standalone launcher

This time the configuration is made in a folder called .deployer

to do this, add deployer to your composer dependencies and do

cp vendor/onigoetz/deployer/src/config .deployer

You can now configure your infrastructure.

Then you can run vendor/bin/deployer server:deploy production to deploy

Roadmap

The ideas I have partly implemented or that I want to implement

  • Connect to servers with SSH Keys instead of the usual username:password combo
  • Create a zip locally and upload it to the server. (instead of a zip clone)