Giter Site home page Giter Site logo

moonshine_god's Introduction

Five Minute Rails Application Deployment

Ready to deploy your Rails application to Rails Machine? Follow these steps and you’ll have it running in no time! Feel free to utilize Rails Machine’s Ask Us Anything Support and contact us with any questions you have along the way.

Update Gems

Install the latest version of the railsmachine gem:

  
    $ sudo gem install railsmachine
  

Install Phusion Passenger and Ruby Enterprise Edition

If you do not have Phusion Passenger and Ruby Enterprise Edition installed on your Rails Machine yet you can run this installer on your server.

  
    $ wget http://assets.railsmachine.com/wiki/centos_passenger_install.sh
    $ sh centos_passenger_install.sh
  

Setup Capistrano

Capify your application:

  
    $ capify .
  

Configure Capistrano for Rails Machine

The following step customizes your config/deploy.rb with two bits of information you provide:

  • --name: a simple name for your application. no spaces, please.
    • example: my-cool-app
  • --domain: the primary domain name for your application. please omit the ‘www’ – we automaticaly alias www.whateveryouprovide.com as needed.
    • example: my-cool-app.com
  
    $ railsmachine --apply-to . --name my-cool-app --domain my-cool-app.com 
  

Please note that the domain name provided will need to be correctly pointed at your Rails Machine account. If you don’t have a DNS provider, we’ve been more than happy with DNS Made Easy.

Update Database Config

Update your applications config/database.yml’s section with your desired MySQL datbase name, username, and password. The database and user will be created for you in a forthcoming step.

Application Setup

Rails Machine defaults to using mongrel + mod_proxy_balancer to run your Rails Application. If you’d like to switch to Phusion Passenger, edit the line in your application’s config/deploy.rb that begins set :app_server to reflect your choice. For example:

  
    set :app_server, :passenger
  

Run the following Capistrano task to setup your MySQL databases and configure your application servers (mongrel/passenger):

  
    $ cap servers:setup
  

Source Control

If you’re already using Source Control…

…edit the lines in your application’s config/deploy.rb that begin set :scm and set :repository. For example:

  
    set :scm, :git
    set :repository, "[email protected]:yourname/my-cool-app.git"
  

If you’re not yet using Source Control…

…you can easily setup a Git/Subversion repository on your Rails Machine. Subversion is the default, edit the line in your application’s config/deploy.rb that begins set :scm if you’d like to change it to git. For example:

  
    set :scm, :git
  

Next, run the following task to import your application into a Git/SVN repository on your Rails Machine:

  
    $ cap repos:setup
  

Initial Deploy

That’s it! You’re ready to use Capistrano to deploy your app for the first time:

  
    $ cap deploy:cold
  

Once that’s done, open your application in a web browser and test it out!

To perform a subsequent deploy with Capistrano:

  
    $ cap deploy
  

or, if you need to run migrations as well:

  
    $ cap deploy:migrations
  

moonshine_god's People

Contributors

bryantraywick avatar jnewland avatar kplawver avatar leejones avatar queso avatar sborsje avatar shepbook avatar technicalpickles avatar wfarr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

moonshine_god's Issues

Restart recipe should use terminate instead of stop

Hello, In this morning when I tested a new feature in staging a experienced some problems with god after each deploy.

The problem happens because the default restart recipe call a god stop and this task only reload the god proccess and not his watched proccess. To fix this problem what I did was change the recipe to:

task :restart do
sudo 'god terminate'
sudo 'start god'
sleep 5
end

After that everything works.

Ubuntu >= 9.04 changed config dir

Ubuntu >= 9.04 uses /etc/init instead of /etc/event.d for upstart config files, as well as slightly different format. Not sure how best to fix the plugin to do the right thing depending on the version (potentially, both files could be written), but I see someone forked and made a version that works only on 9.04 and up. Logging this just in case someone else encounters the same issue - the fork is varyform/moonshine_god.

god is not running after first deploy of moonshine_god

The first deploy needs to ensure that god is actually running, or else other cap tasks, like the restarting of god, will fail. Basically, it's just this:

service 'god', :ensure => :running, :require => [list_of_required_stuff]

It actually looks like god is manually restarted on this line, but it must not be working effectively. Consider replacing this zanyness with the plain old service call.

Ruby 1.9 and latest moonshine cause errors

I get this error:

Uncaught exception: Puppet::Error: Parameter alias failed: /etc/logrotate.d/varloggodlog.conf can not create alias logrotate_varloggodlog: object already exists

I am only able to resolve it by removing the logrotate command from the moonshine_god recipe (not needed in my case because I put ithe logs under shared/log)

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.