Giter Site home page Giter Site logo

mina-puma's Introduction

Mina Puma

Mina tasks for handle with Puma.

This gem provides several mina tasks:

mina puma:phased_restart  # Restart puma (with zero-downtime)
mina puma:restart         # Restart puma
mina puma:start           # Start puma
mina puma:stop            # Stop puma

Installation

Add this line to your application's Gemfile:

gem 'mina-puma', :require => false

And then execute:

$ bundle

Or install it yourself as:

$ gem install mina-puma

Usage

Add this to your config/deploy.rb file:

require 'mina/puma'

Make sure the following settings are set in your config/deploy.rb:

  • deploy_to - deployment path

Make sure the following directories exists on your server:

  • shared/tmp/sockets - directory for socket files.
  • shared/tmp/pids - direcotry for pid files.

OR you can set other directories by setting follow variables:

  • puma_socket - puma socket file, default is shared/tmp/sockets/puma.sock
  • puma_pid - puma pid file, default shared/tmp/pids/puma.pid
  • puma_state - puma state file, default shared/tmp/sockets/puma.state
  • pumactl_socket - pumactl socket file, default shared/tmp/sockets/pumactl.sock

Then:

$ mina puma:start

Example

require 'mina/puma'

task :setup => :environment do
  # Puma needs a place to store its pid file and socket file.
  queue! %(mkdir -p "#{deploy_to}/#{shared_path}/tmp/sockets")
  queue! %(chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/tmp/sockets")
  queue! %(mkdir -p "#{deploy_to}/#{shared_path}/tmp/pids")
  queue! %(chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/tmp/pids")

  ...

end

task :deploy do
  deploy do
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    ...

    to :launch do
      ...
      invoke :'puma:phased_restart'
    end
  end
end

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

mina-puma's People

Contributors

imnotquitejack avatar rabsztok avatar maximgladkov avatar hbin avatar keating avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.