fly.ioにRedmineをデプロイする
RedminePluginを開発する必要が生じたため、あらためて個人用に気軽にPlugin開発できる環境を用意したいと思い、Fly.ioにホスティングされたRedmineを構築する。
RedmineをFly.ioにデプロイは以下の手順に沿って進めていく。
- Fly.io CLIのインストール
brew install flyctl
- Fly.ioにサインアップしてログイン
flyctl auth signup
flyctl auth login
-
Redmineプロジェクトのディレクトリに移動
-
Fly.ioアプリの初期化
fly launch
このコマンドを実行すると、アプリ名やリージョンの選択、PostgreSQLデータベースのセットアップなどの質問に答える必要があります[1].
- データベース設定の更新
config/database.yml
ファイルを編集し、productionセクションを以下のように更新:
production:
adapter: postgresql
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
url: <%= ENV['DATABASE_URL'] %>
- 環境変数の設定
fly secrets set SECRET_KEY_BASE=$(rake secret)
- 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"]
- デプロイの実行
fly deploy
- アプリケーションの起動
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