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
2025
 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