# Login as root ssh root@domain # Create deploy user adduser <username> #Adds User with username given. Enter Password when Prompted. Other Details are Optional # Add user to sudo group usermod -g <groupname> <username> # Add .ssh/authorized_keys for deploy user #update and upgrade packages sudo apt-get update sudo apt-get upgrade # Install curl sudo apt-get install curl # Install RVM curl -L get.rvm.io | bash -s stable # Source RVM source ~/.rvm/scripts/rvm # Relogin to shell # RVM requirements rvm requirements # Enable RVM autolibs to autoinstall requirements rvm autolibs enable # RVM requirements rvm requirements # Install ruby rvm install 2.0.0 # Set default rvm --default use 2.0.0 # Install current ruby gems rvm rubygems current # Before installing set gem config to NOT do rdoc and ri installation echo "gem: --no-rdoc --no-ri" >> .gemrc # Install rails gem install rails # to install specific version use like - gem install rails -v 3.0.1 # Install passenger gem install passenger # Install Nginx rvmsudo passenger-install-nginx-module # Make nginx service as per http://askubuntu.com/questions/257108/trying-to-start-nginx-on-vps-i-get-nginx-unrecognized-service # Download nginx startup script wget -O init-deb.sh https://www.linode.com/docs/assets/660-init-deb.sh # Move the script to the init.d directory & make executable sudo mv init-deb.sh /etc/init.d/nginx sudo chmod +x /etc/init.d/nginx # Add nginx to the system startup sudo /usr/sbin/update-rc.d -f nginx defaults # Start nginx sudo service nginx start # Connect Nginx to rails project sudo vim /opt/nginx/conf/nginx.conf # Make following settings in nginx conf server { listen 80; server_name example.com; passenger_enabled on; root /var/www/my_awesome_rails_app/public; } # Install nodejs if not previously installed # Install mysql server and other related components sudo apt-get install mysql-server libmysqld-dev # Now use capistrano to deploy rails app