RailsアプリをWebで公開する方法【Herokuと独自ドメインの使い方】

pika1.0で作成した動画の画像 New Challenge
pika1.0で作成した動画の画像

自分で作ったRailsアプリを、インターネットに公開したいと思ったことはありませんか?この記事では、「Ruby on Railsで作成したアプリを、ローカルサーバーからインターネット上へ公開する方法」について初心者にもわかりやすく解説します。Herokuなど無料のクラウドサービスを使った方法から、独自ドメインでプロっぽく公開する手順までを網羅。最終的には、RailsのMVC構造がインターネット上でもそのまま活用できる仕組みが理解できるはずです。副業開発者や個人ポートフォリオを公開したい人にもおすすめの内容です。

🌐 第1章: Railsアプリでウェブサーバ構築

この第1章で、Railsアプリを自分のPC上で立ち上げる基礎スキルを身に付けます。次章で、インターネット上に公開するための準備をしていく訳です。整理して考えましょう

🧱 ステップ1:Railsプロジェクトの作成(アプリ全体の土台)

<bash>
rails new blog_app
cd blog_app

これでMVC構造(Model, View, Controller)を持つRailsアプリの基本が完成。app/ フォルダー内にそれぞれの役割を持つディレクトリが作成されます。

🧠 ステップ2:Modelの作成(データの定義と操作)

ブログ記事を保存・管理するPostモデルを作成します。

<bash>
rails generate model Post title:string content:text
rails db:migrate
  • Postモデルは、データベースのpostsテーブルに対応
  • titlecontentといった属性(カラム)を持つ
  • db:migrateコマンドで、実際のテーブルが作成されます

🔎 ModelはControllerから呼び出され、Viewで表示するデータの元になります

🎮 ステップ3:ScaffoldでControllerとViewを一括生成

初心者におすすめなのが、scaffoldコマンド。

<bash>
rails generate scaffold Post title:string content:text
rails db:migrate

これにより、

  • PostsController(HTTPリクエストの処理)
  • app/views/posts/*.html.erb(画面表示用テンプレート)
  • 必要なルーティング設定

がすべて自動生成されます。

🖼 ステップ4:Viewファイルの役割(.html.erb ⇒ HTML)

Viewファイルは、ブラウザでユーザーが見る画面に相当します。

  • 例えば、app/views/posts/index.html.erb は記事一覧を表示するHTMLに変換されます。
  • .html.erbは、HTMLの中にRubyコード(<%= %>など)を埋め込めるテンプレート形式

👀 HTTPリクエストが来ると、Controller → Model → View の順に処理され、結果がHTMLとしてブラウザに表示される流れです。

🚀 ステップ5:HTTPサーバーの起動

bash
<rails server>

このコマンドでRails内蔵のPumaサーバーが起動し、Webブラウザで http://localhost:3000/posts にアクセスできるようになります。

すると:

  1. ユーザーがURLにアクセス
  2. ルーティングがController(PostsController#index)に渡る
  3. ControllerがModelから記事一覧を取得
  4. View(index.html.erb)がHTMLとして生成・表示される

📌 この一連の流れが、RailsのMVCアーキテクチャにおける「HTTPサーバーを立ち上げる」本質です。以上の作業をすることでユーザーが画面を見る準備ができます。

🌐 第2章: RailsアプリをURLで一般公開する方法(独自ドメインにも対応)

Ruby on Rails の初心者向けにHTTPサーバーを立ち上げる手順を解説します。Rails学んでいくと段々にMVCの意味が分かってくると思いますが、その仕組みはHttpサーバーを立ち上げる時にも有効なのです。

具体的にRailsアプリは以下の2通りの方法で公開可能です:

公開パターン説明
パターン① サブドメインで公開ホスティングサービス上のURL(例:〇〇.herokuapp.com)を利用
パターン② 独自ドメインで公開自分で取得した独自ドメイン(例:www.example.com)をマッピング

🧭 パターン①:Heroku標準URLでの公開

すでに紹介した手順で、Herokuの無料プランで公開可能。 この場合は https://アプリ名.herokuapp.com の形式になります。

ローカル開発が完了した後、次はRailsアプリを実際にインターネット上に公開するステップ。これにより、誰でもブラウザからURL経由でアプリにアクセスできるようになります。

🧳 ステップ1:クラウドサービス選び

Railsアプリを公開するにはホスティングが必要です。初心者にも優しい選択肢は以下の通りです:

サービス特徴
Render無料枠あり。GitHub連携で自動デプロイ可能
Heroku学習用に人気。CLIで簡単にデプロイできる
RailwayUIが直感的。チーム共有もしやすい

🚀 ステップ2:Herokuで公開する手順(例)

① Heroku CLIのインストール

公式サイトからHeroku CLIをインストール 👉 

② Herokuアプリを作成

bash
heroku login
heroku create blog-app-kouji

③ Gitでアプリを登録・プッシュ

bash
git init
git add .
git commit -m "Initial commit"
git push heroku master

④ データベースの設定

HerokuのPostgreSQLを使用:

bash
heroku addons:create heroku-postgresql:hobby-dev
rails db:migrate

✅ 公開完了!

これで https://blog-app-kouji.herokuapp.com のようなURLで一般公開され、誰でもブラウザからアクセス可能になります。

🎯 補足:公開後のMVCの流れはそのまま!

  • ユーザーがURLにアクセス
  • HerokuのサーバーがHTTPリクエストを受け取る
  • Controller → Model → Viewの順に処理され
  • .html.erbファイルがHTMLに変換され、ブラウザに表示される

つまりローカルでやっていたMVCの流れが、そのままWeb上でも機能するようになります。

🛡 セキュリティやUXの最終調整

  • Viewでレイアウトを整え、ユーザー体験を向上
  • HTTPSを有効にして安全な通信を確保
  • 必要ならベーシック認証やユーザー管理を実装

次は、「独自ドメインに切り替える方法」や「公開したAPIをLlamaIndexと連携する構成」も深掘りしていけますよ。どこを重点的に掘り下げたいですか?

 

 

独自ドメインを習得している場合には別の方策がある。独自ドメインを習得している場合を含めて改定して。

 

もちろんです、koujiさん。では「独自ドメインをすでに持っている場合」を前提にした内容へ改定し、Railsアプリをインターネットに公開する方法を2パターンとして整理します。

🔑 パターン②:取得済みの独自ドメインで公開する方法

✅ ① 独自ドメインの取得確認

お名前.com、ムームードメインなどで取得済みであることを前提にします。

🔄 ② DNSの設定変更(Heroku用)

ドメイン管理会社の管理画面で、DNSレコードを設定します:

これにより、www.example.comでアクセスするとHerokuに転送されます。

⚙️ ③ Herokuにカスタムドメインを登録

Heroku CLIで以下のように設定:

bash
heroku domains:add www.example.com

HerokuがCNAMEターゲットを返してくるので、それをDNSに設定します。

🔒 ④ HTTPS対応(SSL証明書)

Herokuでは自動的にSSL/TLS証明書が提供されるので、HTTPSで安全に通信可能です(無料)。

💡 独自ドメイン活用のメリット

  • 覚えやすく、ブランディングに活用できる
  • 自身のポートフォリオやプロダクトサイトに信頼感をプラス
  • Googleなど検索エンジンに認識されやすくなる

🔗 さらに進むと…

取得した独自ドメイン上でAPIを公開し、LlamaIndexなどを通じてデータ検索に活用することもできます。更にはそのあたりも一緒に整理ができます。

「独自ドメイン+LlamaIndex連携」の方向でページを拡張したい場合は、その設計から一緒に進められますよ。興味ありますか?読者諸兄からのリクエストに応じて改訂していきます。

 

タイトルとURLをコピーしました