2021 Fillmore Street #1128

}

24/7 solutions

Top 10 Cloud Providers

How to Debug Ruby on Rails through SSL with RubyMine Foreman

Joel Garcia Joel Garcia has been building AllCode since 2015. He’s an innovative, hands-on executive with a proven record of designing, developing, and operating Software-as-a-Service (SaaS), mobile, and desktop solutions. Joel has expertise in HealthTech, VoIP, and cloud-based solutions. Joel has experience scaling multiple start-ups for successful exits to IMS Health and Golden Gate Capital, […]

If you’re required to debug Ruby on Rails in RubyMine Foreman through SSL, e.g. you’ve got a Facebook App, you will find the following useful.
Unfortunately, I’ve not been able to find a way to debug by using the standard debug rails configuration.  Instead, I had to take the following steps
1. Install Foreman. Foreman is a nice little gem that enables you to launch multiple processes through the use of a Procfile. You can find more info here, http://blog.daviddollar.org/2011/05/06/introducing-foreman.html. The easiest way to add Foreman is to add the Foreman gem to your Gemfile, and run bundle install.
gem ‘foreman’
2. After you install Foreman, you’ll need to figure out your Foreman path. I’m using RVM. My Foreman is installed here:
/Users/joelgarcia/.rvm/gems/ruby-1.9.3-p484/gems/foreman-0.63.0/bin/foreman
3. In RubyMine, go to RunEdit Configurations. The Run/Debug Configurations Dialogwill come up. Typically, when you debug in RubyMine, you’re debugging in Rails. We’re going to do something a little different, we’re going to debug using a Ruby Script. Click on the + button in the upper left-hand corner. Select Ruby. A new configuration dialog will be displayed. Take the following steps:

  • On the Config Tab, Name: Debug SSL
  • On the Config Tab, Ruby Script: Path to Foreman in my case: /Users/joelgarcia/.rvm/gems/ruby-1.9.3-p484/gems/foreman-0.63.0/bin/foreman
  • On the Config Tab, Script Argument: Start
  • On the Config Tab, Working Directory: Your Project’s root directory.
  • On the Bundler Tab, check the “Run the script in context of the bundle
  • On the Logs, add a new entry where the Log File Entry is equal to development log.

It should look something like this
RubyMine Debug Config
4. Now our configuration is done, but we need to create a Procfile for Foreman to know what to launch when we chose to debug the Debug SSL configuration. Navigate to the root of your Ruby project and create a textfile entitled ‘Procfile’. In the Procfile, you will want to put in the following:
web: bundle exec thin start –debug -p 3000 –ssl –ssl-verify –ssl-key-file /Users/path_to_key/selfsigned.key –ssl-cert-file /Users/path_to_key/selfsigned.crt
Now, what is this? In the Procfile, we’re going to start the Thin web server with the appropriate RVM version. Thin is going to listen on port 3000, and we’re going to run SSL through port 3000 using our SSL keys and cert.
5. Now, in RubyMine, go to RunDebug Debug SSL, and your debugger should launch. In my situation, I’m using a self signed certificate. On my Mac, I’ve only been able to navigate to my http://0.0.0.0:3000 using Firefox d. I’ll write up another article on creating a self signed certificate using OpenSSL later. 

Joel Garcia
Joel Garcia

Joel Garcia has been building AllCode since 2015. He’s an innovative, hands-on executive with a proven record of designing, developing, and operating Software-as-a-Service (SaaS), mobile, and desktop solutions. Joel has expertise in HealthTech, VoIP, and cloud-based solutions. Joel has experience scaling multiple start-ups for successful exits to IMS Health and Golden Gate Capital, as well as working at mature, industry-leading software companies. He’s held executive engineering positions in San Francisco at TidalWave, LittleCast, Self Health Network, LiveVox acquired by Golden Gate Capital, and Med-Vantage acquired by IMS Health.

Related Articles

What is Tigera?

What is Tigera?

An AWS Advanced Technology Partner, Tigera delivers Calico and Calico Enterprise for security and networking on EKS, both of which are AWS Containers Competency certified.

AllCode AWS Analytics Services

AllCode AWS Analytics Services

AWS Analytics ServicesAWS AthenaS3-based query data using SQLAWS CloudsearchManaged Search ServiceAWS ElasticsearchStreamline Elasticsearch...

Free AWS Services List

Download this FREE list of all 200+ AWS services and ensure that you're using the optimal services for your use case to enhance efficiency and save money!

Free AWS Business Continuity Plan Template

Make sure you have the proper business continuity plan explicitly for you AWS infrastructure. our professionals built this template using AWS best practices so you can ensure it's built to scale! 

Free Cloud Migration Checklist

Without the proper cloud migration strategy, you risk losing time and money. Ensure that your migration process is running smoothly with our FREE cloud migration checklist.

Free AWS Services List

You might be optimizing with the wrong AWS services. Download this FREE list of all 200+ AWS services and ensure that you're using the optimal services for your use case to enhance efficiency and save money!

Download your FREE AWS Business Continuity Plan Template
Download Free 200+ AWS Services Checklist
Download our 10-Step Cloud Migration ChecklistYou'll get direct access to our full-length guide on Google Docs. From here, you will be able to make a copy, download the content, and share it with your team.