Ruby on Rails runs best on a VPS server – typically hosted on one of the various “cloud” providers. Whilst this is pretty standard (and relatively simple to set up), what isn’t simple is the way in which you have to set up the software running on the various VPS boxes you may have. going in depth in this article you learn more on How To Ruby on Rails

The truth is that the majority of setting up a VPS server for the likes of Rails is software centric – meaning that the underlying “VPS” is still the same no matter which setup you end up using.

This is why it’s called a “stack” – you’re basically installing various “layers” of the system, from the OS to the underlying libraries to the web server & GIT etc.

If you’re interested in getting your Ruby on Rails application uploaded and running on a “cloud” VPS, you’ll be best placed to look at the various pieces of *software* you’ll require to get it running. This can be done in a number of different ways, but the underlying essentials are still the same. This tutorial is going to explain how to do it…

What’s Required To Get A Rails-Powered VPS Running

The most important thing is to appreciate that this “stack” exists on *ALL* systems – regardless of the operating system or whatever.

The specific software stack you require is as follows:

  • Operating System (Linux or Windows)
  • System Libraries (OpenSSL, GIT, etc)
  • Language Interpreters (Ruby/PHP etc)
  • Software Packages (Web Server etc)
  • GIT Repo’s + Server Config

The main reason for the above represents the typical “stack” required to get any web server online. ALL Web servers standardized systems designed to provide users with the ability to “publish” HTML pages on the web.

The only difference – and this is especially pertinent with Rails – is that you need what’s known as “application” server software – which represents the “processing” of dynamic requests. For Rails, this is typical “Passenger” but Puma is also applicable.

To understand how this works, I’ll briefly explain the steps required to get it all working…

Installing The Various Software Packages

As mentioned, 99% of the job is installing the different packages.

To do this, you basically let the host set up the server either through their web-based interface or through the API. The API is only really for third-party apps, so it’s probably not going to be something you’ll be concerned with.

The point is that everything after that is up to you. Here’s how you do it…

    1. SSH Access

      The first thing you need to is gaining SSH access to the box. Related image



      This is done typically through the provider’s web service (Digital Ocean has a “console” applet for example. This will give you direct access to the server, and you should be able to log in using the “root” username (& password delivered via email).

    2. Create “deploy” User

      After you gain initial SSH access, you’re best removing access for the “root” user (to prevent hackers) and change the port to something other than 22. This typically means you have to remember the port – but you need to make sure that you are able to essentially “block” most of the hacking attempts you’ll get. Related image


      It is advisable you create some sort of “deploy” user. This basically allows you to replace the “root” user and remove reliance on the default settings for the deployment.

    3. Install OS-Level Libraries

      After setting up a “deploy” user, you’ll then need to install the various OS-level libraries which will be required to run the various applications. Related image

      These will vary depending on which type of application you wish to use – but will typically include most of the same packages.

    4. Install Programming Languages

      Related imageNext, you need to install the various programming languages required by your application. If you’re using Ruby on Rails, this will be Ruby. You may also require NodeJS to help the system execute the various Javascript elements of your apps.

    5. Install Web Server Software

      This will either be Apache or Try Nginx for free. Both are supported on all flavors of Linux – and you should be able to get them working on Windows too.

      Install Web Server Software

    6. Install “Application” Server Software

      After the web server, you’ll need to install the “application” server. This is the program which turns HTTP requests over to the Ruby interpreter – allowing for your Rails app to deliver HTML responses.


      choose packageFor Rails, this will either be Phusion Passenger, or Puma. Setting up both is relatively complicated, you will need to check how to set it up.

    7. Set Up The Various Domains In The Server Config FilesHow To Set Up Apache Virtual Hosts on Ubuntu 16.04

      Both NGinx & Apache operate a “virtual host” system – whereby you’re able to “split” the server amongst different domains/apps. By setting them in the config files, you’re able to determine exactly which apps you’re hosting on your servers.

    8. Set up GIT Repo’s

      Finally, you need to set up the various GIT repo’s that you may require for your various apps. Whilst you could use a “File Manager” system – or even FTP – to upload files directly, GIT is far more effective at handling versioned uploads.

      Related image

Therefore, doing this you’ll have the capacity to get your applications sent to your own VPS servers. Whilst not exhaustive, the above is pretty much what you need to get it all working.

Source by Richard Peck

Write A Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.