0
0
RailsHow-ToBeginner · 4 min read

How to Deploy Rails Application in Ruby on Rails Easily

To deploy a Ruby on Rails application, you typically prepare your app by setting environment variables and database configs, then use a platform like Heroku or tools like Capistrano to push your code and start the server. Deployment involves running commands such as git push heroku main or cap production deploy to make your app live.
📐

Syntax

Deployment commands vary by platform but follow a pattern:

  • Heroku: Use git push heroku main to send your code to Heroku's servers.
  • Capistrano: Use cap production deploy to automate deployment to your server.
  • Environment setup: Set environment variables and database configs before deploying.
bash
git push heroku main

# or for Capistrano
cap production deploy
💻

Example

This example shows deploying a Rails app to Heroku. It assumes you have a Git repo and Heroku CLI installed.

bash
# 1. Login to Heroku
heroku login

# 2. Create a new Heroku app
heroku create my-rails-app

# 3. Push your code to Heroku
git push heroku main

# 4. Run database migrations on Heroku
heroku run rails db:migrate

# 5. Open the app in your browser
heroku open
Output
Creating app... done, ⬢ my-rails-app Enumerating objects: 10, done. Counting objects: 100% (10/10), done. Delta compression using up to 4 threads Compressing objects: 100% (8/8), done. Writing objects: 100% (10/10), 1.2 KiB | 1.2 MiB/s, done. Total 10 (delta 2), reused 0 (delta 0) remote: -----> Ruby app detected remote: -----> Installing dependencies using bundler 2.3.7 remote: -----> Installing node-v18.16.0-linux-x64 remote: -----> Detecting rake tasks remote: -----> Preparing app for Rails asset pipeline remote: -----> Running: rake assets:precompile remote: -----> Launching... remote: Released v1 remote: https://my-rails-app.herokuapp.com/ deployed to Heroku Running rails db:migrate on ⬢ my-rails-app... up, run.1234 == 20230601000000 CreateUsers: migrating ====================================== -- create_table(:users) -> 0.0123s == 20230601000000 CreateUsers: migrated (0.0124s) ============================= Opening browser to https://my-rails-app.herokuapp.com/
⚠️

Common Pitfalls

Common mistakes when deploying Rails apps include:

  • Not setting environment variables like RAILS_ENV or database URLs.
  • Forgetting to run database migrations on the server.
  • Ignoring asset precompilation errors.
  • Using development gems in production environment.

Always check logs with heroku logs --tail or server logs to debug.

bash
## Wrong: Forgetting to migrate database
# After deployment, app crashes due to missing tables

## Right: Run migrations
heroku run rails db:migrate
📊

Quick Reference

StepCommandDescription
Login to Herokuheroku loginAuthenticate your Heroku account
Create appheroku create Create a new Heroku app
Push codegit push heroku mainDeploy your code to Heroku
Run migrationsheroku run rails db:migrateUpdate database schema
Open appheroku openView your live app in browser

Key Takeaways

Use platforms like Heroku or tools like Capistrano to deploy Rails apps easily.
Always set environment variables and run database migrations after deployment.
Check logs to troubleshoot deployment issues quickly.
Precompile assets and avoid development gems in production.
Follow deployment steps in order: login, create app, push code, migrate, open.