Step1
Renderのアカウント作成
Step2
アプリケーションの作成 New>Web Service
Githubとアカウント連携することで、任意のリポジトリをデプロイすることが可能になる。
変更するのは以下の3点
Step3
環境変数の登録
Environment> Environment Variables
にmaster.keyの中身を登録する。
「Key」に「RAILS_MASTER_KEY」と入力し、Valueにmaster.keyの中身を記述する。
Step4
DBの作成
New>PostgreSQL
Nameを設定する。
Database名やUser名は入力しないと適当に決められてしまうため、気になる場合は自分で設定しておく。
Step5
コードの編集
config/puma.rbの書き換え
- # preload_app! + preload_app! - # workers ENV.fetch("WEB_CONCURRENCY") { 2 } + workers ENV.fetch("WEB_CONCURRENCY") { 2 }
- config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? || ENV['RENDER'].present?
bin直下に「render-build.sh」を作成し、中身は以下のようにする
#!/usr/bin/env bash # exit on error set -o errexit bundle install yarn install yarn build bundle exec rake assets:precompile bundle exec ridgepole -c config/database.yml -E production --apply -f db/schemas/Schemafile
また、ターミナルで以下を実行して権限を付与する
chmod a+x bin/render-build.sh
アプリケーション直下に「render.yaml」を作成し、中身は以下のようにする
databases: - name: 作成したDBのNameを入力する databaseName: 作成したDBのDatabaseNameを入力する user: 作成したDBのUserを入力する region: singapore services: - type: web name: 作成したDBのNameを入力する env: ruby region: singapore plan: free buildCommand: "./bin/render-build.sh" startCommand: "bundle exec puma -C config/puma.rb" envVars: - key: DATABASE_URL fromDatabase: name: 作成したDBのNameを入力する property: connectionString - key: RAILS_MASTER_KEY sync: false
5か所、自身で作成したDBに基づき編集する箇所があるので注意する事!
あとは変更点をコミット&プッシュすると自動的にデプロイが行われる。
ちなみに
15分間アクセスがないと停止する。
再度アクセスした際は、起動に30秒~1分程度を要する。
「ずっと使うわけじゃないけど、開いたときにすぐ使いたいな」という場合はcron-job.orbなどを利用するのも手である。