自分で作ったRailsアプリを、インターネットに公開したいと思ったことはありませんか?この記事では、「Ruby on Railsで作成したアプリを、ローカルサーバーからインターネット上へ公開する方法」について初心者にもわかりやすく解説します。Herokuなど無料のクラウドサービスを使った方法から、独自ドメインでプロっぽく公開する手順までを網羅。最終的には、RailsのMVC構造がインターネット上でもそのまま活用できる仕組みが理解できるはずです。副業開発者や個人ポートフォリオを公開したい人にもおすすめの内容です。
🌐 第1章: Railsアプリでウェブサーバ構築
この第1章で、Railsアプリを自分のPC上で立ち上げる基礎スキルを身に付けます。次章で、インターネット上に公開するための準備をしていく訳です。整理して考えましょう!
🧱 ステップ1:Railsプロジェクトの作成(アプリ全体の土台)
rails new blog_app
cd blog_app
これでMVC構造(Model, View, Controller)を持つRailsアプリの基本が完成。app/
フォルダー内にそれぞれの役割を持つディレクトリが作成されます。
🧠 ステップ2:Modelの作成(データの定義と操作)
ブログ記事を保存・管理するPost
モデルを作成します。
rails generate model Post title:string content:text
rails db:migrate
Post
モデルは、データベースのposts
テーブルに対応title
やcontent
といった属性(カラム)を持つdb:migrate
コマンドで、実際のテーブルが作成されます
🔎 ModelはControllerから呼び出され、Viewで表示するデータの元になります
🎮 ステップ3:ScaffoldでControllerとViewを一括生成
初心者におすすめなのが、scaffold
コマンド。
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サーバーの起動
<rails server>
このコマンドでRails内蔵のPumaサーバーが起動し、Webブラウザで http://localhost:3000/posts
にアクセスできるようになります。
すると:
- ユーザーがURLにアクセス
- ルーティングがController(
PostsController#index
)に渡る - ControllerがModelから記事一覧を取得
- View(
index.html.erb
)がHTMLとして生成・表示される
📌 この一連の流れが、RailsのMVCアーキテクチャにおける「HTTPサーバーを立ち上げる」本質です。以上の作業をすることでユーザーが画面を見る準備ができます。
🌐 第2章: RailsアプリをURLで一般公開する方法(独自ドメインにも対応)
具体的にRailsアプリは以下の2通りの方法で公開可能です:
公開パターン | 説明 |
---|---|
パターン① サブドメインで公開 | ホスティングサービス上のURL(例:〇〇.herokuapp.com )を利用 |
パターン② 独自ドメインで公開 | 自分で取得した独自ドメイン(例:www.example.com )をマッピング |
🧭 パターン①:Heroku標準URLでの公開
すでに紹介した手順で、Herokuの無料プランで公開可能。 この場合は https://アプリ名.herokuapp.com
の形式になります。
ローカル開発が完了した後、次はRailsアプリを実際にインターネット上に公開するステップ。これにより、誰でもブラウザからURL経由でアプリにアクセスできるようになります。
🧳 ステップ1:クラウドサービス選び
Railsアプリを公開するにはホスティングが必要です。初心者にも優しい選択肢は以下の通りです:
サービス | 特徴 |
---|---|
Render | 無料枠あり。GitHub連携で自動デプロイ可能 |
Heroku | 学習用に人気。CLIで簡単にデプロイできる |
Railway | UIが直感的。チーム共有もしやすい |
🚀 ステップ2:Herokuで公開する手順(例)
① Heroku CLIのインストール
公式サイトからHeroku CLIをインストール 👉
② Herokuアプリを作成
heroku login
heroku create blog-app-kouji
③ Gitでアプリを登録・プッシュ
git init
git add .
git commit -m "Initial commit"
git push heroku master
④ データベースの設定
HerokuのPostgreSQLを使用:
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レコードを設定します:
- タイプ:CNAME
- ホスト名:www(または空欄)
- 値:
アプリ名.herokuapp.com
これにより、www.example.com
でアクセスするとHerokuに転送されます。
⚙️ ③ Herokuにカスタムドメインを登録
Heroku CLIで以下のように設定:
heroku domains:add www.example.com
HerokuがCNAMEターゲットを返してくるので、それをDNSに設定します。
🔒 ④ HTTPS対応(SSL証明書)
Herokuでは自動的にSSL/TLS証明書が提供されるので、HTTPSで安全に通信可能です(無料)。
💡 独自ドメイン活用のメリット
- 覚えやすく、ブランディングに活用できる
- 自身のポートフォリオやプロダクトサイトに信頼感をプラス
- Googleなど検索エンジンに認識されやすくなる
🔗 さらに進むと…
取得した独自ドメイン上でAPIを公開し、LlamaIndexなどを通じてデータ検索に活用することもできます。更にはそのあたりも一緒に整理ができます。
「独自ドメイン+LlamaIndex連携」の方向でページを拡張したい場合は、その設計から一緒に進められますよ。興味ありますか?読者諸兄からのリクエストに応じて改訂していきます。