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
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
# PostgreSQL → 本番用
group :production do
  gem 'pg'
end
🔸2. Gemfile.lockを削除
Gemfile.lock がある場合は右クリックで削除してください!ない場合はそのままで大丈夫です。

🔸3. ターミナルで実行
brew install postgresql libpq
export PATH="/opt/homebrew/opt/libpq/bin:$PATH"
bundle config --local build.pg --with-opt-dir="$(brew --prefix libpq)"
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
libpq5 はアプリ実行中に PostgreSQL に接続するためのクライアントライブラリです。
🔸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
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"] %> # 追加
バージョン8の人のみ
# config.active_job.queue_adapter = :resque
+ config.active_job.queue_adapter = :async
# config.cache_store = :mem_cache_store
+ config.cache_store = :memory_store, { size: 64.megabytes }
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 上の最新コミットを使って再デプロイが始まります。