Readme.md in mina-0.3.8 vs Readme.md in mina-1.0.0.beta1
- old
+ new
@@ -1,1144 +1,62 @@
# Mina
+[![Code Climate](https://codeclimate.com/repos/5774207165982076ca005984/badges/6877153919d603250738/gpa.svg)](https://codeclimate.com/repos/5774207165982076ca005984/feed)
+[![Test Coverage](https://codeclimate.com/repos/5774207165982076ca005984/badges/6877153919d603250738/coverage.svg)](https://codeclimate.com/repos/5774207165982076ca005984/coverage)
+[![Build Status](https://semaphoreci.com/api/v1/d4be4st/mina/branches/master/shields_badge.svg)](https://semaphoreci.com/d4be4st/mina)
+[![Gem Version](https://badge.fury.io/rb/mina.svg)](http://badge.fury.io/rb/mina)
+
Really fast deployer and server automation tool.
+## Warning
+
+**This is a readme of the current master, version 1.0.0.beta1. If you are using older mina (pre 0.3) please take a look at [0.3 readme](https://github.com/mina-deploy/mina/blob/v0.3.8/Readme.md)**
+
+
Mina works really fast because it's a deploy Bash script generator. It
generates an entire procedure as a Bash script and runs it remotely in the
server.
-Compare this to the likes of Vlad or Capistrano, where each command
+Compare this to the likes of [Vlad](https://github.com/seattlerb/vlad) or
+[Capistrano](https://github.com/capistrano/capistrano), where each command
is run separately on their own SSH sessions. Mina only creates *one* SSH
session per deploy, minimizing the SSH connection overhead.
$ gem install mina
$ mina
-[![Build Status](https://travis-ci.org/mina-deploy/mina.svg?branch=master)](https://travis-ci.org/mina-deploy/mina) [![Gem Version](https://badge.fury.io/rb/mina.svg)](http://badge.fury.io/rb/mina) [![Inline docs](http://inch-ci.org/github/mina-deploy/mina.svg?branch=master)](http://inch-ci.org/github/mina-deploy/mina)
+Documentation
+----------------
-User guide
-==========
+For quick start check out [Getting starting guide](docs/getting_started.md)
-Setting up a project
---------------------
+For migrating your current 0.3.x deploy scripts, please look at the [migrating guide](docs/migrating.md)
-Let's deploy a project using Mina.
+For FAQ please visit the [faq](docs/faq.md)
-### Step 1: Create a config/deploy.rb
+For other documentation please visit the [docs](docs)
-In your project, type `mina init` to create a sample of this file.
+Acknowledgements
+----------------
- $ mina init
- Created config/deploy.rb.
+© 2012-2015, Nadarei.
+2015-2016, Infinum.
+Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
-This is just a Rake file with tasks! See [About deploy.rb](#about-deployrb) for
-more info on what *deploy.rb* is. You will want to at least configure your
-server:
+Mina is authored [Rico Sta. Cruz][rsc] and [Michael Galero][mg] with help from its [contributors][c] and their startup, [Nadarei][nd].
+It is maintained by [Stjepan Hadjić][sh] and [Gabrijel Škoro][gs] and sponsored by [Infinum][inf].
-~~~ ruby
-# config/deploy.rb
-set :user, 'username'
-set :domain, 'your.server.com'
-set :deploy_to, '/var/www/flipstack.com'
-...
-~~~
+Stjepan:
-### Step 2: Set up your server
+* [Github](https://github.com/d4be4st) (@d4be4st)
+* [Twitter](https://twitter.com/_Beast_) (@_Beast_)
-Make a directory in your server called `/var/www/flipstack.com` (in *deploy_to*)
-change it's ownership to the correct user.
+Gabrijel:
- $ ssh username@your.server.com
+* [Github](https://github.com/gabskoro) (@gabskoro)
+* [Twitter](https://twitter.com/gabskoro) (@gabskoro)
- # Once in your server, create the deploy folder:
- ~@your.server.com$ mkdir /var/www/flipstack.com
- ~@your.server.com$ chown -R username /var/www/flipstack.com
-
-### Step 3: Run 'mina setup'
-
-Back at your computer, do `mina setup` to set up the [folder
-structure](#directory_structure) in this path. This will connect to your server
-via SSH and create the right directories.
-
- $ mina setup
- -----> Creating folders... done.
-
-See [directory structure](#directory_structure) for more info.
-
-### Step 4: Deploy!
-
-Use `mina deploy` to run the `deploy` task defined in *config/deploy.rb*.
-
- $ mina deploy
- -----> Deploying to 2012-06-12-040248
- ...
- Lots of things happening...
- ...
- -----> Done.
-
-About deploy.rb
----------------
-
-The file `deploy.rb` is simply a Rakefile invoked by Rake. In fact, `mina` is
-mostly an alias that invokes Rake to load `deploy.rb`.
-
-~~~ ruby
-# Sample config/deploy.rb
-set :domain, 'your.server.com'
-
-task :restart do
- queue 'sudo service restart apache'
-end
-~~~
-
-As it's all Rake, you can define tasks that you can invoke using `mina`. In this
-example, it provides the `mina restart` command.
-
-The magic of Mina is in the new commands it gives you.
-
-The `queue` command queues up Bash commands to be run on the remote server.
-If you invoke `mina restart`, it will invoke the task above and run the queued
-commands on the remote server `your.server.com` via SSH.
-
-See [the command queue](#the-command-queue) for more information on the *queue*
-command.
-
-The command queue
------------------
-
-At the heart of it, Mina is merely sugar on top of Rake to queue commands
-and execute them remotely at the end. Take a look at this minimal *deploy.rb*
-configuration:
-
-~~~ ruby
-# config/deploy.rb
-set :user, 'john'
-set :domain, 'flipstack.com'
-
-task :logs do
- queue 'echo "Contents of the log file are as follows:"'
- queue "tail -f /var/log/apache.log"
-end
-~~~
-
-Once you type `mina logs` in your terminal, it invokes the *queue*d commands
-remotely on the server using the command `ssh john@flipstack.com`.
-
-~~~ sh
-$ mina logs --simulate
-# Execute the following commands via
-# ssh john@flipstack.com:
-#
-echo "Contents of the log file are as follows:"
-tail -f /var/log/apache.log
-~~~
-
-Subtasks
---------
-
-Mina provides the helper `invoke` to invoke other tasks from a
-task.
-
-~~~ ruby
-# config/deploy.rb
-task :down do
- invoke :maintenance_on
- invoke :restart
-end
-
-task :maintenance_on
- queue 'touch maintenance.txt'
-end
-
-task :restart
- queue 'sudo service restart apache'
-end
-~~~
-
-In this example above, if you type `mina down`, it simply invokes the other
-subtasks which queues up their commands. The commands will be run after
-everything.
-
-Directory structure
--------------------
-
-The deploy procedures make the assumption that you have a folder like so:
-
- /var/www/flipstack.com/ # The deploy_to path
- |- releases/ # Holds releases, one subdir per release
- | |- 1/
- | |- 2/
- | |- 3/
- | '- ...
- |- shared/ # Holds files shared between releases
- | |- logs/ # Log files are usually stored here
- | `- ...
- '- current/ # A symlink to the current release in releases/
-
-It also assumes that the `deploy_to` path is fully writeable/readable for the
-user we're going to SSH with.
-
-Deploying
----------
-
-Mina provides the `deploy` command which *queue*s up a deploy script for
-you.
-
-~~~ ruby
-# config/deploy.rb
-set :domain, 'flipstack.com'
-set :user, 'flipstack'
-set :deploy_to, '/var/www/flipstack.com'
-set :repository, 'http://github.com/flipstack/flipstack.git'
-
-task :deploy do
- deploy do
- # Put things that prepare the empty release folder here.
- # Commands queued here will be run on a new release directory.
- invoke :'git:clone'
- invoke :'bundle:install'
-
- # These are instructions to start the app after it's been prepared.
- to :launch do
- queue 'touch tmp/restart.txt'
- end
-
- # This optional block defines how a broken release should be cleaned up.
- to :clean do
- queue 'log "failed deployment"'
- end
- end
-end
-~~~
-
-It works by capturing the *queue*d commands inside the block, wrapping them
-in a deploy script, then *queue*ing them back in.
-
-### How deploying works
-
-Here is an example of a deploy! (Note that some commands have been simplified
-to illustrate the point better.)
-
-### Step 1: Build it
-
-The deploy process builds a new temp folder with instructions you provide.
-In this example, it will do `git:clone` and `bundle:install`.
-
- $ mina deploy --verbose
- -----> Creating the build path
- $ mkdir tmp/build-128293482394
- -----> Cloning the Git repository
- $ git clone https://github.com/flipstack/flipstack.git . -n --recursive
- Cloning... done.
- -----> Installing gem dependencies using Bundler
- $ bundle install --without development:test
- Using i18n (0.6.0)
- Using multi_json (1.0.4)
- ...
- Your bundle is complete! It was installed to ./vendor/bundle
-
-### Step 2: Move it to releases
-
-Once the project has been built, it will be moved to `releases/`. A symlink
-called `current/` will be created to point to the active release.
-
- $
- -----> Moving to releases/4
- $ mv "./tmp/build-128293482394" "releases/4"
- -----> Symlinking to current
- $ ln -nfs releases/4 current
-
-### Step 3: Launch it
-
-Invoke the commands queued up in the `to :launch` block. These often
-commands to restart the webserver process. Once this in complete, you're done!
-
- $
- -----> Launching
- $ cd releases/4
- $ sudo service nginx restart
- -----> Done. Deployed v4
-
-### What about failure?
-
-If it fails at any point, the release path will be deleted. If any commands are
-queued using the `to :clean` block, they will be run. It will be as if nothing
-happened. Lets see what happens if a build fails:
-
- $
- -----> Launching
- $ cd releases/4
- $ sudo service nginx restart
- Starting nginx... error: can't start service
- -----> ERROR: Deploy failed.
- -----> Cleaning up build
- $ rm -rf tmp/build-128293482394
- -----> Unlinking current
- $ ln -nfs releases/3 current
- OK
-
-Command line options
---------------------
-
-Basic usage:
-
- $ mina [OPTIONS] [TASKS] [VAR1=val VAR2=val ...]
-
-### Options
-
-* `-v` / `--verbose` - This will show commands being done on the server. Off by
- default.
-
-* `-S` / `--simulate` - This will not invoke any SSH connections; instead, it
- will simply output the script it builds.
-
-* `-t` / `--trace` - Show backtraces when errors occur.
-
-* `-f FILE` - Use a custom deploy.rb configuration.
-
-* `-V` / `--version` - Shows the current version.
-
-### Tasks
-
-There are many tasks available. See the [tasks reference](http://mina-deploy.github.io/mina/tasks/), or
-type `mina tasks`.
-
-### Variables
-
-You may specify additional variables in the `KEY=value` style, just like Rake.
-You can add as many variables as needed.
-
- $ mina restart on=staging
-
- # This sets the ENV['on'] variable to 'staging'.
-
-
-# Helpers
-
-### invoke
-Invokes another Rake task.
-By default if the task has already been invoked it will not been executed again (see the `:reenable` option).
-
-Invokes the task given in `task`. Returns nothing.
-
-~~~ ruby
-invoke :'git:clone'
-invoke :restart
-~~~
-
-Options:
- reenable (bool) - Execute the task even next time.
-
-task.to_s is a ruby 1.8.7 fix
-
-### erb
-Evaluates an ERB block in the current scope and returns a string.
-
-~~~ ruby
-a = 1
-b = 2
-# Assuming foo.erb is <%= a %> and <%= b %>
-puts erb('foo.erb')
-#=> "1 and 2"
-~~~
-
-Returns the output string of the ERB template.
-
-### run!
-SSHs into the host and runs the code that has been queued.
-
-This is already automatically invoked before Rake exits to run all
-commands that have been queued up.
-
-~~~ ruby
-queue "sudo restart"
-run!
-~~~
-
-Returns nothing.
-
-### run_local!
-runs the code locally that has been queued.
-Has to be in :before_hook or :after_hook queue
-
-This is already automatically invoked before Rake exits to run all
-commands that have been queued up.
-
-~~~ ruby
-to :before_hook do
- queue "cp file1 file2"
-end
-run_local!(:before_hook)
-~~~
-
-Returns nothing.
-
-### report_time
-Report time elapsed in the block.
-Returns the output of the block.
-
-~~~ ruby
-report_time do
- sleep 2
- # do other things
-end
-# Output:
-# Elapsed time: 2.00 seconds
-~~~
-
-### measure
-Measures the time (in seconds) a block takes.
-Returns a [time, output] tuple.
-
-### mina_cleanup
-__Internal:__ Invoked when Rake exits.
-
-Returns nothing.
-
-## Errors
-
-### die
-Exits with a nice looking message.
-Returns nothing.
-
-~~~ ruby
-die 2
-die 2, "Tests failed"
-~~~
-
-### error
-__Internal:__ Prints to stdout.
-Consider using `print_error` instead.
-
-## Queueing
-
-### queue
-Queues code to be run.
-
-This queues code to be run to the current code bucket (defaults to `:default`).
-To get the things that have been queued, use commands[:default]
-
-Returns nothing.
-
-~~~ ruby
-queue "sudo restart"
-queue "true"
-commands == ['sudo restart', 'true']
-~~~
-
-### queue!
-Shortcut for `queue`ing a command that shows up in verbose mode.
-
-### echo_cmd
-Converts a bash command to a command that echoes before execution.
-Used to show commands in verbose mode. This does nothing unless verbose mode is on.
-
-Returns a string of the compound bash command, typically in the format of
-`echo xx && xx`. However, if `verbose_mode?` is false, it returns the
-input string unharmed.
-
-~~~ ruby
-echo_cmd("ln -nfs releases/2 current")
-#=> echo "$ ln -nfs releases/2 current" && ln -nfs releases/2 current
-~~~
-
-## Commands
-
-### commands
-Returns an array of queued code strings.
-
-You may give an optional `aspect`.
-
-Returns an array of strings.
-
-~~~ ruby
-queue "sudo restart"
-queue "true"
-to :clean do
- queue "rm"
-end
-commands == ["sudo restart", "true"]
-commands(:clean) == ["rm"]
-~~~
-
-### isolate
-Starts a new block where new `commands` are collected.
-
-Returns nothing.
-
-~~~ ruby
-queue "sudo restart"
-queue "true"
-commands.should == ['sudo restart', 'true']
-isolate do
- queue "reload"
- commands.should == ['reload']
-end
-commands.should == ['sudo restart', 'true']
-~~~
-
-### in_directory
-Starts a new block where #commands are collected, to be executed inside `path`.
-
-Returns nothing.
-
-~~~ ruby
-in_directory './webapp' do
- queue "./reload"
-end
-commands.should == ['cd ./webapp && (./reload && true)']
-~~~
-
-### to
-Defines instructions on how to do a certain thing.
-This makes the commands that are `queue`d go into a different bucket in commands.
-
-Returns nothing.
-
-~~~ ruby
-to :prepare do
- run "bundle install"
-end
-to :launch do
- run "nginx -s restart"
-end
-commands(:prepare) == ["bundle install"]
-commands(:restart) == ["nginx -s restart"]
-~~~
-
-## Settings helpers
-
-### set
-Sets settings.
-Sets given symbol `key` to value in `value`.
-
-Returns the value.
-
-~~~ ruby
-set :domain, 'kickflip.me'
-~~~
-
-### set_default
-Sets default settings.
-Sets given symbol `key` to value in `value` only if the key isn't set yet.
-
-Returns the value.
-
-~~~ ruby
-set_default :term_mode, :pretty
-set :term_mode, :system
-settings.term_mode.should == :system
-set :term_mode, :system
-set_default :term_mode, :pretty
-settings.term_mode.should == :system
-~~~
-
-### settings
-Accesses the settings hash.
-
-~~~ ruby
-set :domain, 'kickflip.me'
-settings.domain #=> 'kickflip.me'
-domain #=> 'kickflip.me'
-~~~
-
-### method_missing
-Hook to get settings.
-See #settings for an explanation.
-
-Returns things.
-
-## Command line mode helpers
-
-### verbose_mode?
-Checks if Rake was invoked with --verbose.
-
-Returns true or false.
-
-~~~ ruby
-if verbose_mode?
- queue %[echo "-----> Starting a new process"]
-end
-~~~
-
-### simulate_mode?
-Checks if Rake was invoked with --simulate.
-
-Returns true or false.
-
-## Internal helpers
-
-### indent
-Indents a given code block with `count` spaces before it.
-
-### unindent
-__Internal:__ Normalizes indentation on a given string.
-
-Returns the normalized string without extraneous indentation.
-
-~~~ ruby
-puts unindent %{
- Hello
- There
-}
-# Output:
-# Hello
-# There
-~~~
-
-### reindent
-Resets the indentation on a given code block.
-
-### capture
-Returns the output of command via SSH.
-
-# Helpers: Deploy helpers
-Helpers for deployment.
-
-### deploy
-Wraps the things inside it in a deploy script and queues it.
-This generates a script using deploy_script and queues it.
-
-Returns nothing.
-
-### deploy_script
-Wraps the things inside it in a deploy script.
-
-~~~ ruby
-script = deploy_script do
- invoke :'git:checkout'
-end
-queue script
-~~~
-
-Returns the deploy script as a string, ready for `queue`ing.
-
-# Modules: Bundler
-Adds settings and tasks for managing Ruby Bundler.
-
-~~~ ruby
-require 'mina/bundler'
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### bundle_bin
-Sets the bundle path.
-
-### bundle_path
-Sets the path to where the gems are expected to be.
-
-This path will be symlinked to `./shared/bundle` so that the gems cache will
-be shared between all releases.
-
-### bundle_withouts
-Sets the colon-separated list of groups to be skipped from installation.
-
-### bundle_options
-Sets the options for installing gems via Bundler.
-
-## Deploy tasks
-These tasks are meant to be invoked inside deploy scripts, not invoked on
-their own.
-
-### bundle:install
-Installs gems.
-
-# Modules: Default
-This module is loaded when invoking `mina` with or without a project.
-
-## Settings
-Here are some of the common settings. All settings are optional unless
-otherwise noted.
-
-### deploy_to
-(Required) Path to deploy to.
-
-### domain
-(Required) Host name to deploy to.
-
-### port
-SSH port number.
-
-### forward_agent
-If set to `true`, enables SSH agent forwarding.
-
-### identity_file
-The local path to the SSH private key file.
-
-### ssh_options
-Switches to be passed to the `ssh` command.
-
-### env_vars
-Environment variables to be passed to `ssh` command. (e.g. "foo=bar baz=1")
-
-## Tasks
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### environment
-Make the `:environment` task exist by default. This is meant to be overridden
-by users.
-
-### init
-Initializes a new Mina project.
-
-~~~ ruby
-$ mina init
-~~~
-
-### help
-Shows the help screen.
-
-### tasks
-Display all tasks in a nice table.
-
-~~~ ruby
-$ mina tasks
-~~~
-
-### ssh
-Connects to the server via ssh and cd to deploy_to folder
-
-~~~ ruby
-$ mina ssh
-~~~
-
-# Modules: Deployment
-This module is automatically loaded for all Mina projects.
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### releases_path
-(default: 'releases')
-
-### shared_path
-(default: 'shared')
-
-### current_path
-(default: 'current_path')
-
-### lock_file
-Name of the file to generate while a deploy is currently ongoing.
-(default: 'deploy.lock')
-
-### keep_releases
-Number of releases to keep when doing the `deploy:cleanup` task.
-(default: 5)
-
-## Tasks
-
-### deploy:force_unlock
-Forces a deploy unlock by deleting the lock file.
-
-~~~ ruby
-$ mina deploy:force_unlock
-~~~
-
-You can also combine that task with `deploy`:
-
-~~~ ruby
-$ mina deploy:force_unlock deploy
-~~~
-
-### deploy:link_shared_paths
-Links the shared paths in the `shared_paths` setting.
-
-### deploy:cleanup
-Cleans up old releases.
-
-By default, the last 5 releases are kept on each server (though you can
-change this with the keep_releases setting). All other deployed revisions
-are removed from the servers."
-
-### deploy:rollback
-Rollbacks the latest release.
-
-Changes the current link to previous release, and deletes the newest deploy release
-Does NOT rollback the database, use
-
-~~~ ruby
-mina "rake[db:rollback]"
-~~~
-
-Delete existing sym link and create a new symlink pointing to the previous release
-
-Remove latest release folder (current release)
-
-### setup
-Sets up a site's directory structure.
-
-### run[]
-Runs a command on a server.
-
-~~~ ruby
-$ mina "run[tail -f logs.txt]"
-~~~
-
-# Modules: Foreman
-Adds settings and tasks for managing projects with [foreman].
-
-NOTE: Requires sudo privileges
-
-[foreman]: http://rubygems.org/ddolar/foreman
-
- require 'mina/foreman'
-
-## Common usage
-
- set :application, "app-name"
-
- task :deploy => :environment do
-~~~ ruby
- deploy do
- # ...
- invoke 'foreman:export'
- # ...
- end
- to :launch do
- invoke 'foreman:restart'
- end
-~~~
-
- end
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### foreman_app
-Sets the service name that foreman will export to upstart. Uses *application*
-variable as a default. It should be set, otherwise export command will fail.
-
-### foreman_user
-Sets the user under which foreman will execute the service. Defaults to *user*
-
-### foreman_log
-Sets the foreman log path. Defaults to *shared/log*
-
-encoding: utf-8
-
-# Modules: Git
-Adds settings and tasks related to managing Git.
-
-~~~ ruby
-require 'mina/git'
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### branch
-Sets the branch to be deployed.
-
-## Deploy tasks
-These tasks are meant to be invoked inside deploy scripts, not invoked on
-their own.
-
-### git:clone
-Clones the Git repository. Meant to be used inside a deploy script.
-
-### git:revision
-Gets the current git revision deployed on server.
-
-# Modules: Rails
-Adds settings and tasks for managing Rails projects.
-
-~~~ ruby
-require 'mina/rails'
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### rails_env
-Sets the Rails environment for `rake` and `rails` commands.
-
-Note that changing this will NOT change the environment that your application
-is run in.
-
-### bundle_prefix
-Prefix for Bundler commands. Often to something like `RAILS_ENV=production
-bundle exec`.
-
-~~~ ruby
-queue! "#{bundle_prefix} annotate -r"
-~~~
-
-### rake
-The prefix for `rake` commands. Use like so:
-
-~~~ ruby
-queue! "#{rake} db:migrate"
-~~~
-
-### rails
-The prefix for `rails` commands. Use like so:
-
-~~~ ruby
-queue! "#{rails} console"
-~~~
-
-### asset_paths
-The paths to be checked.
-
-Whenever assets are compiled, the asset files are checked if they have
-changed from the previous release.
-
-If they're unchanged, compiled assets will simply be copied over to the new
-release.
-
-Override this if you have custom asset paths declared in your Rails's
-`config.assets.paths` setting.
-
-### compiled_asset_path
-The path to be copied to the new release.
-
-The path your assets are compiled to. If your `assets_path` assets have changed,
-this is the folder that gets copied accross from the current release to the new release.
-
-Override this if you have custom public asset paths.
-
-### rake_assets_precompile
-The command to invoke when precompiling assets.
-Override me if you like.
-
-----
-
-Macro used later by :rails, :rake, etc
-
-## Command-line tasks
-These tasks can be invoked in the command line.
-
-### rails[]
-Invokes a rails command.
-
-~~~ ruby
-$ mina "rails[console]"
-~~~
-
-### rake[]
-Invokes a rake command.
-
-~~~ ruby
-$ mina "rake[db:migrate]"
-~~~
-
-### console
-Opens the Ruby console for the currently-deployed version.
-
-~~~ ruby
-$ mina console
-~~~
-
-### log
-Tail log from server
-
-~~~ ruby
-$ mina log
-~~~
-
-## Deploy tasks
-These tasks are meant to be invoked inside deploy scripts, not invoked on
-their own.
-
-### rails:db_migrate
-
-### rails:db_migrate:force
-
-### rails:db_create
-
-### rails:db_rollback
-
-### rails:assets_precompile:force
-
-### rails:assets_precompile
-
-# Modules: rbenv
-Adds settings and tasks for managing [rbenv] installations.
-
-[rbenv]: https://github.com/sstephenson/rbenv
-
-~~~ ruby
-require 'mina/rbenv'
-~~~
-
-## Common usage
-
-~~~ ruby
-task :environment do
- invoke :'rbenv:load'
-end
-task :deploy => :environment do
- ...
-end
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### rbenv_path
-Sets the path where *rbenv* is installed.
-
-You may override this if rbenv is placed elsewhere in your setup.
-
-## Tasks
-
-### rbenv:load
-Loads the *rbenv* runtime.
-
-# Modules: RVM
-Adds settings and tasks for managing [RVM] installations.
-
-[rvm]: http://rvm.io
-
-~~~ ruby
-require 'mina/rvm'
-~~~
-
-## Common usage
-
-~~~ ruby
-task :environment do
- invoke :'rvm:use[ruby-1.9.3-p125@gemset_name]'
-end
-task :deploy => :environment do
- ...
-end
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### rvm_path
-Sets the path to RVM.
-
-You can override this in your projects if RVM is installed in a different
-path, say, if you have a system-wide RVM install.
-
-## Tasks
-
-### rvm:use[]
-Uses a given RVM environment provided as an argument.
-
-This is usually placed in the `:environment` task.
-
-~~~ ruby
-task :environment do
- invoke :'rvm:use[ruby-1.9.3-p125@gemset_name]'
-end
-~~~
-
-### rvm:wrapper[]
-Creates a rvm wrapper for a given executable.
-
-This is usually placed in the `:setup` task.
-
-~~~ ruby
-task ::setup => :environment do
- ...
- invoke :'rvm:wrapper[ruby-1.9.3-p125@gemset_name,wrapper_name,binary_name]'
-end
-~~~
-
-Adds settings and tasks for managing Node packages.
-
-~~~ ruby
-require 'mina/npm'
-~~~
-
-## Settings
-Any and all of these settings can be overriden in your `deploy.rb`.
-
-### npm_bin
-Sets the npm binary.
-
-### bower_bin
-Sets the bower binary.
-
-### grunt_bin
-Sets the grunt binary.
-
-### npm_options
-Sets the options for installing modules via npm.
-
-### bower_options
-Sets the options for installing modules via bower.
-
-### grunt_options
-Sets the options for grunt.
-
-### grunt_task
-Sets the task parameters for grunt.
-
-## Deploy tasks
-These tasks are meant to be invoked inside deploy scripts, not invoked on
-their own.
-
-### npm:install
-Installs node modules. Takes into account if executed `in_directory` and namespaces the installed modules in the shared folder.
-
-### bower:install
-Installs bower modules. Takes into account if executed `in_directory` and namespaces the installed modules in the shared folder.
-
-### grunt:install
-Launch a task with grunt. Set the grunt_task (defaults to \"build\") variable before calling this.
-
-# Modules: Whenever
-Adds settings and tasks for managing projects with [whenever].
-
-[whenever]: http://rubygems.org/gems/whenever
-
-## Common usage
-~~~ ruby
-require 'mina/whenever'
-task :deploy => :environment do
- deploy do
- ...
- to :launch do
- invoke :'whenever:update'
- end
-end
-~~~
-
-3rd party modules
-------
-
-* [mina-rollbar](https://github.com/code-lever/mina-rollbar)
-* [mina-stack](https://github.com/div/mina-stack)
-* [mina-rsync](https://github.com/moll/mina-rsync)
-* [mina-sidekiq](https://github.com/Mic92/mina-sidekiq)
-* [mina-delayed_job](https://github.com/d4be4st/mina-delayed_job)
-* [mina-nginx](https://github.com/hbin/mina-nginx)
-* [mina-newrelic](https://github.com/navinpeiris/mina-newrelic)
-* [mina-rbenv-addons](https://github.com/stas/mina-rbenv-addons)
-* [mina-multistage](https://github.com/endoze/mina-multistage)
-* [mina-s3](https://github.com/stas/mina-s3)
-* [mina-scp](https://github.com/adie/mina-scp)
-* [mina-hooks](https://github.com/elskwid/mina-hooks)
-* [mina-slack](https://github.com/TAKAyukiatkwsk/mina-slack)
-* [mina-cakephp](https://github.com/mobvox/mina-cakephp)
-* [mina-unicorn](https://github.com/openteam/mina-unicorn)
-* [mina-puma](https://github.com/sandelius/mina-puma)
-* [mina-mercurial](https://github.com/rainlabs/mina-mercurial)
-* [mina-faye](https://github.com/NingenUA/mina-faye)
-* [mina-clockwork](https://github.com/907th/mina-clockwork)
-* [mina-ftp](https://github.com/stas/mina-ftp)
-* [mina-laravel](https://github.com/kikyous/mina-laravel)
-
-Acknowledgements
-----------------
-
-© 2012-2015, Nadarei. Released under the [MIT License](http://www.opensource.org/licenses/mit-license.php).
-
-Mina is authored and maintained by [Rico Sta. Cruz][rsc] and [Michael
-Galero][mg] with help from its [contributors][c]. It is sponsored by our
-startup, [Nadarei][nd].
-
- * [Nadarei](http://nadarei.co) (nadarei.co)
- * [Github](http://github.com/nadarei) (@nadarei)
-
Rico:
* [My website](http://ricostacruz.com) (ricostacruz.com)
* [Github](http://github.com/rstacruz) (@rstacruz)
* [Twitter](http://twitter.com/rstacruz) (@rstacruz)
@@ -1146,12 +64,17 @@
Michael:
* [My website][mg] (michaelgalero.com)
* [Github](http://github.com/mikong) (@mikong)
+Nadrei:
+
+ * [Nadarei](http://nadarei.co) (nadarei.co)
+ * [Github](http://github.com/nadarei) (@nadarei)
+
[rsc]: http://ricostacruz.com
[mg]: http://devblog.michaelgalero.com/
[c]: http://github.com/mina-deploy/mina/graphs/contributors
[nd]: http://nadarei.co
-[issues]: https://github.com/mina-deploy/mina/issues
-[trello]: https://trello.com/board/mina/4fc8b3023d9c9a4d72e573e6
-
+[sh]: https://github.com/d4be4st
+[gs]: https://github.com/gabskoro
+[inf]: https://infinum.co