Coder Social home page Coder Social logo

dennmart / moonshine Goto Github PK

View Code? Open in Web Editor NEW

This project forked from railsmachine/moonshine

0.0 2.0 0.0 1.52 MB

Simple Rails deployment and configuration management. 15 minute deploys of Rails 2 or Rails 3 apps.

Home Page: http://railsmachine.github.com/moonshine/

License: GNU Lesser General Public License v3.0

Ruby 100.00%

moonshine's Introduction

Moonshine

Moonshine is Rails deployment and configuration management done right.

By leveraging capistrano and puppet, moonshine allows you have a working application server in 15 minutes, and be able to sanely manage it's configuration from the comfort of your version control of choice.

To get started, check out our tutorial. It covers configuring and deploying your application for the first time with Moonshine.

Once you're a bit more comfortable with Moonshine, you'll find our documentation on the wiki to be helpful!

Requirements

  • A server running Ubuntu 8.10, 10.04 LTS or 12.04 LTS (Want to see your favorite platform supported? Fork Moonshine on GitHub!)
  • A Rails 2.3 or Rails 3 app. Rails 4 is supported with the plugger gem.
  • A user on this server that can:
    • Execute commands via sudo
    • Access your application's source code repository

Installation

It's also pretty simple!

Rails 2

$ script/plugin install git://github.com/railsmachine/moonshine.git
$ script/generate moonshine

Rails 3

$ script/rails plugin install git://github.com/railsmachine/moonshine.git
$ script/rails generate moonshine

Rails 4

Add gem 'plugger' to your Gemfile and bundle install, then:

$ plugger install git://github.com/railsmachine/moonshine.git
$ script/rails generate moonshine

If you get errors about not being able to find shadow_puppet during deploys, you'll also need to add the following to your Gemfile:

gem 'shadow_puppet', :require => false

Running Tests

It's easy enough:

$ gem install shadow_puppet isolate-scenarios
$ rake spec

isolate-scenarios is used to test against multiple versions of Rails. To run all scenarios at once:

$ isolate-scenarios rake spec

Getting Help

You can find more examples in the documentation and on the Wiki.

For help or general discussion, visit the Moonshine newsgroup.

Passenger Enterprise Support

We've added support for Passenger Enterprise Edition! In order to install it, you need to make a few changes to moonshine.yml. Phusion now provides a gem server for Passenger Enterprise. You will need to put your license file in app/manifests/templates and call it passenger-enterprise-license so we can put it in the right place during install.

This is what a passenger enterprise block in moonshine.yml should look like (in addition to your usual Passenger settings):

:passenger:
  :version: 4.0.10
  :enterprise: true
  :order_reference: YOUR-ORDER-REFERENCE-NUMBER
  :order_password: YOUR-ORDER-PASSWORD
  :rolling_restarts: true

A Word on Rails 4

We've been torturing ourselves trying to turn Moonshine into a gem ever since it was announced that Rails 4 was dropping support for plugins. Moonshine is... different... and we think it actually makes sense as a plugin. So, instead of turning Moonshine, and the dozens of Moonshine plugins we've written, into a gem, we decided to add plugin support back to Rails 4! That's where plugger comes in. Just add it to your Gemfile and bundle install and voila, plugins are back!

Keeping Your App From Loading Manifests

By default, everything within the app directory is eager-loaded by the app at startup in production mode (and staging). That's not good. So, to keep that from happening, add this to config/application.rb inside the Application class:

path_rejector = lambda { |s| s.include?("app/manifests") }
config.eager_load_paths = config.eager_load_paths.reject(&path_rejector)
ActiveSupport::Dependencies.autoload_paths.reject!(&path_rejector)

That'll keep the manifests from loading when the app starts up!

Getting rid of that annoying message when you run rails console

With Rails 4, it doesn't want you to use the --binstubs argument for bundler, so it's now optional. If you're using Moonshine and Rails 4, add this to config/moonshine.yml, and you'll be all set:

:bundler:
  :disable_binstubs: true

After your next deploy, you should be able to run rails console without that annoying error message.

moonshine's People

Contributors

andrewroth avatar arussell avatar bryantraywick avatar ches avatar ernie avatar fyafighter avatar griffordson avatar hrp avatar jarinudom avatar jnewland avatar john-griffin avatar joshgoebel avatar kplawver avatar leejones avatar malmckay avatar michaelbiven avatar morgancurrie avatar pinguskahn avatar pjkelly avatar queso avatar railsmachine-ops avatar rmatei avatar rylwin avatar skalnik avatar slamere avatar technicalpickles avatar vegantech avatar wfarr avatar wrecked avatar

Watchers

 avatar  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.