Open1

fly.ioにRedmineをデプロイする

Otsuka NoboruOtsuka Noboru

RedminePluginを開発する必要が生じたため、あらためて個人用に気軽にPlugin開発できる環境を用意したいと思い、Fly.ioにホスティングされたRedmineを構築する。

RedmineをFly.ioにデプロイは以下の手順に沿って進めていく。

  1. Fly.io CLIのインストール
brew install flyctl
  1. Fly.ioにサインアップしてログイン
flyctl auth signup
flyctl auth login  
  1. Redmineプロジェクトのディレクトリに移動

  2. Fly.ioアプリの初期化

fly launch

このコマンドを実行すると、アプリ名やリージョンの選択、PostgreSQLデータベースのセットアップなどの質問に答える必要があります[1].

  1. データベース設定の更新

config/database.ymlファイルを編集し、productionセクションを以下のように更新:

production:
  adapter: postgresql
  encoding: unicode
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  url: <%= ENV['DATABASE_URL'] %>
  1. 環境変数の設定
fly secrets set SECRET_KEY_BASE=$(rake secret)
  1. Dockerfileの作成

プロジェクトのルートディレクトリにDockerfileを作成し、以下の内容を記述:

FROM redmine:5-alpine

# 追加の依存関係をインストール
RUN apk add --no-cache build-base

# アプリケーションのコードをコピー
COPY . /usr/src/redmine

# 必要なgemをインストール
RUN bundle install

# データベースのマイグレーションを実行
RUN bundle exec rake db:migrate RAILS_ENV=production

# アセットのプリコンパイル
RUN bundle exec rake assets:precompile RAILS_ENV=production

# サーバーを起動
CMD ["rails", "server", "-b", "0.0.0.0"]
  1. デプロイの実行
fly deploy
  1. アプリケーションの起動
fly open

これらの手順を実行することで、RedmineをFly.ioにデプロイできます[1][2]. デプロイ後、ブラウザでアプリケーションにアクセスできるはずです。

注意点:

  • Redmineの設定やプラグインによっては、追加の設定が必要になる場合があります。
  • 本番環境での使用には、セキュリティ設定やバックアップなどの追加の考慮が必要です。
  • Fly.ioの無料プランには制限があるため、使用量や課金に注意してください。

Citations:
[1] https://railsgirls.jp/deployment/fly-io
[2] https://qiita.com/kmkkiii/items/f07803ddaab267e1a407
[3] https://zenn.dev/hokawa/articles/65ddcd9974448c
[4] https://zenn.dev/uemuragame5683/articles/c2d198d6f581df
[5] https://qiita.com/yuuki-h/items/ec23de152368d36672ea
[6] https://redmine.jp/guide/RedmineInstall/
[7] https://redmine.jp/install/
[8] https://www.nowonbun.com/index.html