Ruby Apps - Hello World
Overview
This guide walks you through configuring and deploying a Ruby application using Nife. You'll learn how to set up your Ruby project, initialize it with Nife CLI, and deploy it to production using a simple Hello World example.
Ruby is a dynamic, open-source programming language known for its simplicity and productivity. The Hello World example demonstrates fundamental Ruby concepts and best practices for deploying Ruby applications to cloud infrastructure.
Application Features:
- Simple yet powerful Ruby syntax
- Easy-to-understand code structure
- Bundler dependency management
- Docker containerization support
- RESTful application design
- Production-ready configuration
We'll use this sample repository: Ruby Example
Prerequisites
Before you start, make sure you have:
- Nife account and CLI installed
Step 1: Install Nifectl CLI
Follow the official installation guide for your operating system:
Step 2: Login to Nifectl
Authenticate with your Nife account:
nifectl auth login
You'll be prompted to enter your credentials. A browser window will open to complete the authentication.
You can deploy applications directly from GitHub, Bitbucket, or GitLab.
Step 3: Initialize Your Application
Initialize the Ruby application for deployment:
nifectl init
Interactive Configuration
The CLI will prompt you for the following information. Follow each step carefully:
1. App Name
? App Name (leave blank to use an auto-generated name)
Press Enter to generate a random name or enter your preferred app name.
2. Select Organization
? Select organization: [Use arrows to move, type to filter]
BNC (bnc)
NIFEDOCUMENT (nifedocument)
Use arrow keys to select your organization.
3. Deployment Source
? Deployment source: [Use arrows to move, type to filter]
Image Public Docker image
Docker Private registry image
Database S3/GS, Postgres, Redis, Mongo...
Loadbalancer Load balancer config
Runtime Language & framework runtimes
Repository GitHub ,GitLab
Select "Repository" from the list.
4. Repository Provider
? Select repository provider: [Use arrows to move, type to filter]
GitHub Deploy from a GitHub repository URL
GitLab Deploy from a GitLab repository URL
Bitbucket Deploy from a Bitbucket repository URL
Select GitHub for this example.
5. GitHub URL and Branch
? Enter your GitHub URL: https://github.com/nifetency/ruby-example.git
? Enter your GitHub Branch: main
Provide your repository URL and the branch to deploy (typically main or master).
6. Deployment Type
? Deployment type (Kubernetes workload kind): Deployment
Leave as default (Deployment).
7. Workload and Resource Configuration
? Workload type: deployment
? Resource type: CPU
? Do You Wish To Add Volume (y/N): No
? Specify the Replicas Count for deployment(1): 1
Accept the defaults for a standard Ruby deployment.
8. Port Configuration
? Select Internal Port: [? for help] (4000): 8080
? Select External Port: [? for help] (80): 80
Set internal port to 8080 and external port to 80.
9. Memory and Routing
? Do You Wish To Add Memory Allocations: No
? Select Routing Policy: [Use arrows to move, type to filter]
Geolocation
Latency
Select Geolocation for global distribution.
10. Deployment Strategy
? Deployment strategy: [Use arrows to move, type to filter]
rolling
recreate
blue-green
canary
shadow
ab-testing
Select rolling for zero-downtime deployments.
11. Environment Variables
? Add environment variables? (y/N): No
Skip for now (can be added later if needed).
Configuration Complete
When initialization finishes, you'll see:
New app created
Name = your-app-name
Organization = nifedocument
Version = 0
Status = New
Hostname = <empty>
Update config file nife.toml
Your nife.toml configuration file has been created with all your settings.
Step 4: Deploy Your Application
Before deploying, you'll need to select the region where your application will be deployed.
Deploy the Ruby application:
nifectl deploy
Select Deployment Region
When you run the deploy command, you'll be prompted to select a region:
? Select region for deployment: [Use arrows to move, type to filter]
IND - India, Mumbai
EUR - Europe
APAC - Asia Pacific
AMER - Americas
my-cluster - my-cluster
Use arrow keys to select your desired region. Choose the region closest to your target users for optimal performance.
Deployment Process
The deployment process includes:
- Validating app configuration
- Cloning repository
- Building Docker image
- Optimizing image
- Creating release and deployment
Expected Output
Deploying ruby-app
==> Validating App Configuration
--> Validating App Configuration done
==> Building Image from Repository
--> Cloning repository
--> Building Docker image
==> Optimizing Image
--> Done Optimizing Image
==> Creating Release
==> Creating Deployment
Release v1 created at: https://your-app.on.nifetency.com
Deployment...Done
Your deployed application will be available at the URL shown in the output. Save this for later reference.
Step 5: Access Your Application
Once deployment completes successfully, your Ruby application is live!
Navigate to your deployment URL:
https://your-app.on.nifetency.com
Ruby Configuration Tips
Gemfile Configuration
Ensure your Gemfile is properly configured with all required dependencies:
source "https://rubygems.org"
gem "rack"
gem "sinatra"
gem "bundler"
group :production do
gem "puma"
end
Always commit your Gemfile.lock to ensure consistent dependency versions across environments.
Check the Nife Documentation or contact support if you encounter any issues.