No commit activity in last 3 years
No release in over 3 years
Laravel specific deployment options for Capistrano 3.x
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
~> 10.4

Runtime

 Project Readme

Capistrano::laravel

Deploy Laravel applications with Capistrano v3.*

Installation

Add this line to your application's Gemfile:

gem 'capistrano', '~> 3.0.0'
gem 'capistrano-laravel'

And then execute:

$ bundle

Or install it yourself as:

$ gem install capistrano-laravel

Usage

Require the module in your Capfile:

require 'capistrano/laravel'

Configuration

The gem makes the following configuration variables available (shown with defaults).

# Which roles to execute commands on.
set :laravel_roles, :all

# Determines which operations to perform based on which version
# of the Laravel framework your project is using.
set :laravel_version, 5.1

# If using Laravel 5+, a dotenv file is used for environment configuration.
# This variable uploads the given file from the the host to the guest.
set :laravel_dotenv_file, './.env'

# Flags to add to artisan calls.
set :laravel_artisan_flags, "--env=production"

# Will set linked folders based on your Laravel version
set :laravel_set_linked_dirs, false

# Will set ACL paths based on your Laravel version
set :laravel_set_acl_paths, true

# Which user to set ACL permissions for.
set :laravel_server_user, "www-data"

Tasks

The tasks are more or less automatic and are executed as follows:

  before "deploy:starting", :prepare_laravel do
    invoke "laravel:configure_folders"
  end

  before "deploy:updated", :laravel_tasks do
    invoke "laravel:upload_dotenv_file"
    invoke "laravel:optimize_release"
    invoke "laravel:create_acl_paths"
    invoke "deploy:set_permissions:acl"
  end

Task Descriptions

# Execute an artisan command
invoke "laravel:artisan", "command"

# Run any optimization commands
invoke "laravel:optimize_release"

# Configure linked dirs/acl dirs
invoke "laravel:configure_folders"

# Upload the dotenv file from local to remote
invoke "laravel:upload_dotenv_file"

# Seed the database
invoke "laravel:seed_db"

# Create any missing folders for ACL
invoke "laravel:create_acl_paths"

# Run migrations for the database
invoke "laravel:migrate_db"

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request