Search code examples
ruby-on-railssetup-deploymentvpslinode

Setting up Ruby on rails web application on Linode


I am an absolute newbie to web development and ruby on rails. I am planing to deploy a ror application on the Linode 512 plan. My website would be basically a forum that allows users to upload photos using Ruby 1.9.3 and Rails 3.2.

Which OS should I use? What are their difference? (Ubuntu / Debian / CentOS / Fedora)

Should I use Apache or Nginx? What are their difference?

Should I use PostgreSQL, MySQL, MongoDB or any other kinds of DB provided on Linode? What are their difference?

My target audience would come from China which means I can't use Amazon S3. Should I let the users upload the photos to the Linode server?

Is there any step-by-step beginner‘s guide for this issue?

Thx


Solution

  • First of all, I think you are worrying too much. If you are a newbie, just follow the popular choice for a start, then change, modify, scale as you go. As your skills mature, you will know what best suites you.

    Below are some choices that will be easier for you:

    1. Which OS should I use? What are their difference? Ubuntu

    2. Should I use Apache or Nginx? What are their difference? Apache. If it is a small website, it doesn't matter for now.

    3. Should I use PostgreSQL, MySQL, MongoDB or any other kinds of DB provided on Linode? What are their difference? MySQL. MongoDB is a NoSQL database, may not be for you for the moment.

    4. My target audience would come from China which means I can't use Amazon S3. Should I let the users upload the photos to the Linode server? Upload to Linode for now. Don't scale it prematurely.

    5. Is there any step-by-step beginner‘s guide for this issue? Ryan's RailsCasts: http://railscasts.com/episodes/373-zero-downtime-deployment and http://railscasts.com/episodes/335-deploying-to-a-vps, they are must-watch, but not free.

    For all these setup, Linode's tutorial is good for a start. You should look at @Stefan answer too.

    You should also try to deploy to Heroku just to get a feel of it. Rails Tutorial is good for you to learn up from development to deployment.