Deployed rails app using chef - ruby-on-rails

Is there is any predefined cookbook to deployed rails app using chef.
I have searched a lot and found a resources:
http://www.concreteinteractive.com/how-to-deploy-a-rails-application-anywhere-with-chef/
Is there any good stuff from it or alternatives? Please share your experiences.
Thanks

Try this out. The Opscode cookbook page has tons of resources
http://community.opscode.com/cookbooks/rails_application

Chef wiki have lot of resources. You can check there. Try this one https://wiki.opscode.com/display/chef/Build+A+Rails+Stack

You can download cookbook from Opscode community sites. You will get a search and Advance Search option on of basis of category and tags. Make sure to check out rating ,no of download, last update and followers.

You can use the following to deploy rails app server, http://devbox.co/setup-ruby-on-rails-server-quickly/ and then can use capistrano to deploy the code. There are multiple options like you want passenger or unicorn, mysql or posgresql etc. You can use any combination as both have predefined setup in separate branches.

Related

Ruby on Rails application installer

I want to develop my rails application installer like in joomla in which we can configure database name, username, password, port, host etc. what is the best idea for it. I tried through rake tasks. But don't know is it good idea or not? Please help me.
Is it possible to configure rails application during runtime. If yes, how to configure?
Any ideas, tutorials, links. Thanks in advance.
What about capistrano? It's a great tool to deploy rails applications
I'll suggest you some links about it)
http://teachmetocode.com/screencasts/basic-deployment-with-capistrano/
http://railscasts.com/episodes/133-capistrano-tasks
http://guides.beanstalkapp.com/deployments/deploy-with-capistrano.html

Deploying Rails app to a VPS

I've been building my first site using Rails, and I want to get it live. Up to now I've only ever put a site live by just dropping all the files onto my VPS via FTP, and I know that's not how it works with a Rails app.
What I don't know is where to even begin with making sure Rails is installed on my VPS (it's Linux based, I bought a package from Webfusion), and then how to deploy it and get it all running properly. My VPS has Plesk 10 installed on it, and from what I've read I need to install Rails alongside Plesk? I may have the wrong end of the stick, so don't hold back if I'm saying stupid things.
I realise this is a really green question to ask, but I've scoured forums looking for a solution I can understand and come up with nothing, so hoping someone here can help.
Thanks in advance!
I've never used a control panel like Plesk but I do have a VPS at linode.com. To get my rails sites up and running I got help from a smashingmagazine blog post and pro railscast episode. The railscast episode is not free but it has great info.
There are a lot of details with each step of getting a rails web server running on a VPS so please look at the blog or railscast video. But a high level overview of the steps is:
install rvm
install ruby and ruby gems
install rails
install a rails web server (a common option is passenger and nginx)
install a database (postgres is a common option)
capistrano for deployment
I wrote an ebook an this topic. After explaining how to set up a server from scratch it focuses on how to deploy an application manually, helping you to understand how this process works under the hood (I left automation out intentionally).
It covers a nginx/Unicorn/MySQL/rbenv setup. If you think that's something for you, you can get it here (it's free for people on my mailing list).

Preferable way to distribute a Rails app

Although Rails and PHP have different deployment methods, what is the preferable way to distribute a FOSS Rails app? Suppose one of the major PHP apps - Magento, Drupal, Wordpress had been build upon RoR, what would have been the preferable way for them to have distributed their application?
Packaging up the code as a gem seems to be the wrong approach for a complete out-of-the-box application, but I could be wrong.
Coming from the world of PHP with its upload-and-go approach, and being a newcomer to Rails, it's rather opaque at the moment to see how code could be easily and effectively distributed.
Packaging a completed Rails app as a gem is probably the wrong approach. I think the best solution is to provide access to a git repository or a tarball of your git repo.
If you want to offer your users something more than rake db:schema:load to setup your app it's pretty easy to create custom setup commands.
Many applications are packaged with the source code just like typical PHP applications. While deploying Rails applications may seem difficult its expected that the user will know how to set up the server properly according to their environment and needs. The only issue you need to worry about is distributing the code, setting up the server is not a domain that you are going to want to help with.
For information on deployment in Rails you should see the deployment page here.
Well, usually Rails apps run in environment running Apache + Passenger (aka mod_rails).
Deployment is easily done with Capistrano gem.
When you're running Rails app in shared host environment, they usually use fcgi/cgi dispatchers to run Ruby.

How do you remove a Ruby on Rails app from a production server?

I'd like to replace our existing Ruby on Rails application with a new version of the site in PHP, but I'm not sure how to remove the rails app from our shared VPS server.
Is there a way to delete the app via FTP or some way to remove it in Cpanel? The developers set it up to use a custom deployment script. Are there any typical uninstall scripts that might remove it?
Ideally, I'd like to avoid completely re-provisioning the server instance because I don't want to lose our blog database and email accounts.
Sorry for such a dumb noob question, but I'd really be grateful for some advice.
Thanks so much!
If its on linux, it should be at /var/www. Remove the database entries and put the PHP versions there too.

Well built rails code for download

I want to get into rails by examining well built code
where can i find typical open source rails project that i can download
and learn from ?
i'm interested in facebook connect integration (facebooker), tag clouds, searching in
my website
I'm not looking not tutorials or screen casts
Thanks!
This question gives a good list
a list of projects with good test-suites
a list of open source rails apps to learn from
Have a browse of ruby tool box and download some open source. For example there's refinery and zena, two content management systems and Rboard, a forum. Depends what you want really but there's plenty out there. Ruby toolbox entries are ordered by github watchers and forks to give you an idea of their popularity.
I really like looking at the commits in teambox.
I find it a bit more complicated. But there's also spree.
There's also devise which is really interesting to look at too.
Finally, I'd recommend you to follow the rails commits (it's the only commits feed I have in my Google Reader).
Gady, this is an extremely rich topic you're asking about and resources are all over the internet. Try starting at http://rubyonrails.org/.
You should be able to find tens of questions just like yours (asked and answered) by searching SO at the top bar.
For Rails, part of it is the building process, so one feasible approach is to read a tutorial like http://railstutorial.org/book
then when in Chapter 2, you will use Scaffold, and at that time, you will have some basic code to look into how a basic Rails app is.
I also suggest you use source control like Git, Mercurial, or SVN to commit different phases of the project, from creating the rails project and then after each step, so you can diff what the changes are during each step.
If you already have Ruby 1.9.2, Rails 3.0.1, and sqlite3, then you can
rails new myproj
cd myproj
rails generate scaffold foo name:string salary:integer gpa:float note:text
rake db:migrate
rails server
and now you can use http://localhost:3000/foos to create, display, update, delete the foo records, and have quite a bit of source code to look at. Most of the customizable code is in app, with css and javascript in the public folder.
Ryan Bates has an excellent series of videos.
http://railscasts.com/
An extremely valuable resource.
Radiant is a CMS that you can download for free and see how it works. It is a great piece of code to look at and see how it works.
I guess that most open source Rails projects are shared on Github, so it may be interesting to browse its Ruby section and look for most watched or most forked projects:
http://github.com/languages/Ruby
Steady stream of new interesting projects to take a look at :)
And don't forget the official:
guides.rubyonrails.org
well there is one "bigger" project on github, waiting for downloading and contribution...
but it's a little controversial because of the security issued they have (had?)
It's still worth a look:
http://github.com/diaspora/diaspora

Resources