heroku_san

Helpful stuffs for Heroku.

3 years after

= 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:: http://github.com/fastestforward/heroku_san Issue Tracker:: http://github.com/fastestforward/heroku_san/issues

== Contributors

== License

License:: Copyright (c) 2009 Elijah Miller mailto:[email protected], released under the MIT license.

Related Repositories

heroku-rails

heroku-rails

easy configuration / multi-environment setup with heroku with deployment hooks * ...

codebase_san

codebase_san

Integration between heroku_san and CodebaseHQ.com ...

publish2cloud

publish2cloud

publish content to amazon cloudfront ...