Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Helpful stuffs for Heroku.

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README.rdoc

Heroku San

Helpful rake tasks for Heroku.

Install

Rails 3

Add this to your Gemfile:

group :development do
  gem 'heroku_san'
end

Rails 2

To install add the following to config/environment.rb:

config.gem 'heroku_san'

Rake tasks are not automatically loaded from gems, so you’ll need to add the following to your Rakefile:

begin
  require 'heroku_san/tasks'
rescue LoadError
  STDERR.puts "Run `rake gems:install` to install heroku_san"
end

Configure

In config/heroku.yml you will need to add the Heroku apps that you would like to attach to this project. You can generate this file by running:

rake heroku:create_config

Customize the file for your project. If this is a fresh project, heroku_san can create all the applications for you, and set each one's RACK_ENV.

rake all heroku:create heroku:rack_env

Configure your Heroku apps according to config/heroku.yml by running:

rake all heroku:config

Usage

After configuring your Heroku apps you can use rake tasks to control the apps.

rake production deploy

A rake task with the shorthand name of each app is now available and adds that server to the list that subsequent commands will execute on. Because this list is additive, you can easily select which servers to run a command on.

rake demo staging restart

A special rake task 'all' is created that causes any further commands to execute on all heroku apps.

Manipulate collaborators on all this project's apps (prompts for email address):

rake all heroku:share
rake all heroku:unshare

Need to add remotes for each app?

rake all heroku:remotes

A full list of tasks provided:

rake after_deploy              # Callback after deploys
rake all                       # Select all Heroku apps for later command
rake before_deploy             # Callback before deploys
rake capture                   # Captures a bundle on Heroku
rake console                   # Opens a remote console
rake db:pull                   # Pull the Heroku database
rake db:push                   # Push local database to Heroku database
rake deploy[commit]            # Pushes the given commit, migrates and restarts (default: HEAD)
rake deploy:force[commit]      # Force-pushes the given commit, migrates and restarts (default: HEAD)
rake heroku:apps               # Lists configured apps
rake heroku:apps:local         # Lists configured apps without hitting Heroku
rake heroku:config             # Add config:vars to each application
rake heroku:config:list        # Lists config variables as set on Heroku
rake heroku:config:list:local  # Lists local config variables without setting them
rake heroku:create             # Creates the Heroku app
rake heroku:create_config      # Creates an example configuration file
rake heroku:gems               # Generate the Heroku gems manifest from gem dependencies
rake heroku:maintenance        # Enable maintenance mode
rake heroku:maintenance_off    # Disable maintenance mode
rake heroku:push[commit]       # Pushes the given commit (default: HEAD)
rake heroku:push:force[commit] # Force-pushes the given commit (default: HEAD)
rake heroku:rack_env           # Add proper RACK_ENV to each application
rake heroku:rake[task]         # Runs a rake task remotely
rake heroku:remotes            # Add git remotes for all apps in this project
rake heroku:share              # Adds a collaborator
rake heroku:unshare            # Removes a collaborator
rake logs                      # Shows the Heroku logs
rake migrate                   # Migrates and restarts remote servers
rake restart                   # Restarts remote servers

Frequently used tasks are not namespaced, everything else lives under heroku.

Links

Homepage

github.com/fastestforward/heroku_san

Issue Tracker

github.com/fastestforward/heroku_san/issues

Contributors

  • Elijah Miller (elijah.miller@gmail.com)

  • Glenn Roberts (glenn.roberts@siyelo.com)

  • Damien Mathieu (42@dmathieu.com)

  • Matthew Hassfurder (matthew.hassfurder@gmail.com)

  • Peter Jaros

  • Lee Semel

  • Michael Haddad (michael@ludditetechnology.com)

  • Les Hill (leshill@gmail.com)

  • Bryan Ash

  • Barry Hess (barry@bjhess.com)

  • Ryan Ahearn (ryan@craftsoftwaresolutions.com)

  • Jon Wood (jon@blankpad.net)

  • Mat Schaffer (mat@schaffer.me)

  • Jonathan Hironaga (jonathan.hironaga@halogennetwork.com)

License

License

Copyright © 2009 Elijah Miller <elijah.miller@gmail.com>, released under the MIT license.

Something went wrong with that request. Please try again.