1. 概要
Rails 7系アプリを Neon(PostgreSQL) + Render で無料公開するまでの手順をまとめました。
- ActiveStorageで画像/動画投稿対応
- SQLite3(開発用) → PostgreSQL(本番用)
- Neon+Renderの無料枠で運用可能
2. GitHubの新規登録
RailsアプリをNeonやRenderで公開するには、まず GitHubアカウント が必要です。以下の手順で無料作成できます。
🔸1. GitHub公式サイトにアクセス
🔸2. 新規アカウントを作成
- 「Sign up」または「Sign up for GitHub」をクリック
- 以下を順に入力:
| 項目 | 説明 |
|---|---|
| Username | 任意のユーザー名(URLに使われます) |
| Email address | メールアドレス |
| Password | 安全なパスワード |
| Verify account | ロボットでないことを確認 |
🔸3. メール認証
入力したメールに届いた認証リンクをクリックして登録完了!
🔸4. プラン選択
「Freeプラン」でOK
🔸5. Authenticatorインストール
- iPhoneの人はこちら!
- Androidの人はこちら!
3. NeonでPostgreSQLを作成
🔸1. Neon公式サイトへアクセス
👉 https://neon.tech/
下記のようなトップページが表示されます。

🔸2. 「Sign Up」→ GitHubを選択
Start for free をクリックし、 GitHub を選びます。

🔸3. GitHubアカウントでログイン
GitHubのログイン画面が表示されるので、アカウントの「ユーザー名 / パスワード」を入力します。

🔸4. GitHubとNeonの連携を許可する
「Authorize Neon Console」をクリックして連携完了です。

🔸5. Create Project(NeonでPostgreSQL DBを作成)
GitHubでログインすると、自動的に「Create a new project」画面が表示されます👇

🔸6. 各項目を入力・選択
- Project name:
自分のアプリ名(geektwitter) - Postgres version:
17 - Cloud provider:
AWS - Region:
Singapore
✅ 全部入力したら右下の Create ボタンをクリック!
🔸7. Project Dashboardへ移動
数秒でプロジェクトが作成され、「Dashboard」画面が表示されます👇

🔸8. DATABASE_URL を取得
- Connect to your database の 「Connect」 ボタンをクリック
- 左下の「Show password」を押して
DATABASE_URLをコピー(''はコピーしないでね)
postgresql://ユーザー名:パスワード@ホスト名/データベース名?sslmode=require
🔸9. .env ファイルに DATABASE_URLを保存
- アプリ直下に
.envファイルを作成し、DATABASE_URLを貼り付ける -
.gitignoreに.envを追加
# DATABASE_URL=postgresql://ユーザー名:パスワード@ホスト名/データベース名?sslmode=require
必ずコメントアウトしてね!
💡 .env ファイルは 機密情報の保管場所なので、必ず .gitignore しておきましょう。
4. Gemfileで PostgreSQL に切り替える
Railsはデフォルトで sqlite3 を使用しますが、本番運用やNeon接続には pg(PostgreSQL用)のgemが必要です。
🔸1. Gemfileを編集
# gem 'sqlite3' コメントアウトする(8行目付近)
# SQLite3 → 開発用(37行目付近)
group :development, :test do
gem 'sqlite3' # 追加
gem 'dotenv-rails' # 追加
end
最後に以下の4行をそのままGemfileの最後の行に追加してください!
# PostgreSQL → 本番用
group :production do
gem 'pg'
end
🔸2. Gemfile.lockを削除
Gemfile.lock がある場合は右クリックで削除してください!ない場合はそのままで大丈夫です。

🔸3. コマンドプロンプトで実行
bundle lock --add-platform x86_64-linux
bundle install --without production
💡 SQLite3は開発用DB。RenderやNeonでは使えないので、pgに必ず切り替えておきましょう。
5. Dockerfileの修正(PostgreSQL用ライブラリの追加)
Neon(PostgreSQL)に接続するために pg gem を使用するため、Dockerfileには PostgreSQL関連のライブラリ追加が必要です。
🔸baseステージの修正
🧾 変更前(元の内容):
# Install base packages
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives
✅ 変更後(libpq5 を追加):
# Install base packages
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y curl libjemalloc2 libvips sqlite3 libpq5 && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives
🔸buildステージの修正
🧾 変更前(元の内容):
# Install packages needed to build gems
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y build-essential git pkg-config && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives
✅ 変更後(libpq-dev libyaml-dev を追加):
# Install packages needed to build gems
RUN apt-get update -qq && \
apt-get install --no-install-recommends -y build-essential git pkg-config libpq-dev libyaml-dev && \
rm -rf /var/lib/apt/lists /var/cache/apt/archives
📝 libpq-dev は pg gem(PostgreSQLクライアント)をインストールするために必要な開発用ライブラリです。
6. config/database.yml を書き換え
Neonの DATABASE_URL を使って、環境ごとのDB設定を共通化します。
default: &default
# adapter: sqlite3 コメントアウトする
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
timeout: 5000
development:
<<: *default
adapter: sqlite3 # 追加
database: storage/development.sqlite3
test:
<<: *default
adapter: sqlite3 # 追加
database: storage/test.sqlite3
production:
<<: *default
adapter: postgresql # 追加
encoding: unicode # 追加
url: <%= ENV["DATABASE_URL"] %> # 追加
7. GitHubにPushする(Render連携の準備)
🔸1. GitHubで新しいリポジトリを作成
- Repository name:例)geektwitter
- その他の設定はデフォルトでOK
🔸2. ローカルからGitHubにpush
git config --global user.email "githubに登録したメアド"
git config --global user.name "githubのユーザー名"
git init
git add -A
git commit -m "first commit"
git remote add origin https://github.com/githubのユーザー名/リポジトリ名.git
git branch -M main
git push -u origin main
💡 .env ファイルは .gitignore 済みであることを確認!
8. Renderの新規登録手順(GitHub連携)
🔸1. Render公式サイトへアクセス
👉 https://render.com/
Get Started for Free をクリックします。
🔸2. GitHubアカウントでサインアップ
「Continue with GitHub」をクリック
👉 GitHubの認証画面にリダイレクトされます。
🔸3. GitHubとの連携を許可
初回のみ「Authorize Render」の確認画面が出ます:
- ✅ Authorize render ボタンを押してRenderとGitHubを連携
- Renderがあなたの リポジトリの一覧にアクセスできるようになります
🔸4. GitHubのリポジトリアクセス範囲を選択
- 右上の
+Newを押しWeb Serviceをクリック -
GitHubを選択 - 「Only select repositories」を選択
- 公開したいリポジトリにチェックを入れる(例:
geektwitter) - Install をクリック
🔸5. Renderのダッシュボードに移動
サインアップが完了すると、Renderの管理画面(Dashboard)に移動します。
-
New +ボタンから「Web Service」を作成できます - あとはGitHub上のRailsアプリを選択して、環境変数などを設定すれば公開できます(この後の手順で説明)
9. Renderで「New Web Service」を作成
NeonでDBを作成し、GitHubにアプリをPushした後は、RenderにログインしてWebアプリとして本番公開できるように設定します。
🔸1. Renderにログイン
👉 https://render.com/
右上から Log in をクリックし、「Continue with GitHub」でログイン
🔸2. ダッシュボードで「New +」ボタンをクリック
Renderにログインすると、ダッシュボード画面に移動します。
画面左上の「New +」ボタンをクリックし、「Web Service」 を選択します。
🔸3. GitHubリポジトリを選択
連携済みのGitHubアカウントから、デプロイしたいアプリのリポジトリを選びます。

「Only select repositories」で選択していない場合は、ここでGitHub連携の再設定を求められることがあります。

🔸4. Webサービスの各種設定を入力
| 項目 | 内容 |
|---|---|
| Name | 任意(例:geektwitter) |
| Instance Type |
Free(無料プランでOK) |
| その他 | 初期のままでOK(RuntimeやRegionなど) |
🔸5. 環境変数(Environment Variables)の設定
サービス作成画面の下部にある「Advanced → Environment Variables」を開いて、以下を追加します:
| Name | Value(入力内容) |
|---|---|
RAILS_MASTER_KEY |
config/master.keyの中身 |
DATABASE_URL |
Neonで発行された接続URL(例:postgresql://~?sslmode=require) |
※DATABASE_URL はデフォルトにないので、Add Environment Variable を押して追加してね!
💡 Cloudinaryを使って画像/動画アップロードをしている場合は、以下の3つも追加で登録してください:
| Name | Value(.envから取得) |
|---|---|
CLOUD_NAME |
あなたのクラウド名(例:d8xxxxx) |
CLOUDINARY_API_KEY |
APIキー |
CLOUDINARY_API_SECRET |
APIシークレットキー |
🔐 これらは .env で使っていたものと同じです。Renderの環境変数に登録することで、本番環境でもCloudinaryが機能するようになります。
✅ すべて入力が完了したら「Create Web Service」ボタンをクリック!
自動でデプロイが始まります!
10. デプロイ確認方法
🔎 デプロイの進行状況を確認する
Render では、「Create Web Service」ボタンをクリックすると自動でデプロイが開始されます。
その後、画面上部の「Deploys」タブに自動で切り替わり、ビルドログがリアルタイムで表示されます。
✅ 成功のサイン
下記のように表示されれば、デプロイは無事完了です!
✅ Deploy succeeded
そのすぐ下に本番環境の URL が表示されます:
https://geektwitter.onrender.com
👆このURLをクリックすると、アプリが本番環境で動いているか確認できます!
🎉 これで本番デプロイ完了!
Neon(PostgreSQL)× Render を活用し、完全無料で Rails アプリを公開することができました!
お疲れさまでした!🚀✨
🔁 再デプロイする方法
🔸ステップ1:修正をGitHubにPush
git add -A
git commit -m "(変更内容の説明)"
git push
🔸ステップ2:「Manual Deploy」→「Deploy latest commit」をクリック
これで、GitHub 上の最新コミットを使って再デプロイが始まります。