Heroku
Redmine
RubyOnRails
Windows10

HerokuにRedmine 3.4.4 をデプロイしてみた(Windows)

More than 1 year has passed since last update.


はじめに

普段は、ゲームリンクスというサークル名でフリーのノベルゲームなどの制作をしています。

今回、プロジェクト管理ツールであるRedmineをゲームリンクスでのゲーム制作に導入することにしました。

本記事は、Heroku上にデプロイした時の手順をまとめたものとなります。


導入に至った経緯

まず、昨年から外部のサークルなどと共同でゲーム制作を行うことが増えてきました。

とはいえ、互いの進捗状況を確認するすべなどもない状況でしたし、なにより複数の制作プロセスをチェックすることが負担になっていました。

そういった負担の軽減と進捗状況の見える化を行うために、HerokuへRedmineを運用しようと思い立ちました。

それと、少し前からシナリオの執筆にGitを使いだしてかなり効率的に作業が進んだこともあり、OSSのプロジェクト管理ツールを導入しようと検討していたことも背景の一つにありますねー


実際のデプロイまで


ざっくりとした手順

基本的には、こちらの記事に書いてある通りに進めていきます。

How to deploy Redmine to Heroku

大まかな流れとしては、記事にもあるように、

1:ソースコードを clone

2:gitignore を弄る

3:Gemfile を弄る

4:bundle install & rake generate_secret_token を実行

5:Heroku へデプロイ

といった感じですね。

あと、HerokuへのデプロイにはHerokuアカウントと Heroku CLI を使用します。

Herokuアカウントの作成や Heroku CLI のインストールは、この辺の記事が参考になります。

Heroku初心者がHello, Herokuをしてみる

コマンドでHerokuを操作する Heroku CLI のインストール


ローカルでの作業

まずは、Redmineのソースコードを clone します。

git clone https://github.com/redmine/redmine.git -b 3.4-stable

次に、作業ディレクトリを redmine に移します。

cd redmine

gitignore を編集して、以下のファイル項目を削除します。

Gemfile.lock

Gemfile.local
public/plugin_assets
config/initializers/session_store.rb
config/initializers/secret_token.rb
config/configuration.yml
config/email.yml

次に、Gemfile 内の下記の記述をコメントアウト(又は削除)します。

database_file = File.join(File.dirname(__FILE__), "config/database.yml")

if File.exist?(database_file)
database_config = YAML::load(ERB.new(IO.read(database_file)).result)
adapters = database_config.values.map {|c| c['adapter']}.compact.uniq
if adapters.any?
adapters.each do |adapter|
case adapter
when 'mysql2'
gem "mysql2", "~> 0.4.6", :platforms => [:mri, :mingw, :x64_mingw]
when /postgresql/
gem "pg", "~> 0.18.1", :platforms => [:mri, :mingw, :x64_mingw]
when /sqlite3/
gem "sqlite3", (RUBY_VERSION < "2.0" && RUBY_PLATFORM =~ /mingw/ ? "1.3.12" : "~>1.3.12"),
:platforms => [:mri, :mingw, :x64_mingw]
when /sqlserver/
gem "tiny_tds", (RUBY_VERSION >= "2.0" ? "~> 1.0.5" : "~> 0.7.0"), :platforms => [:mri, :mingw, :x64_mingw]
gem "activerecord-sqlserver-adapter", :platforms => [:mri, :mingw, :x64_mingw]
else
warn("Unknown database adapter `#{adapter}` found in config/database.yml, use Gemfile.local to load your own database gems")
end
end
else
warn("No adapter found in config/database.yml, please configure it first")
end
else
warn("Please configure your config/database.yml first")
end

コメントアウト(又は削除)した後に、下記の記述を追加します。

追加するところは先ほどコメントアウト(又は削除)したところです。

group :development, :test do

gem 'sqlite3'
end

group :production do
gem 'pg', '~> 0.20'
gem 'rails_12factor'
gem 'thin' # change this if you want to use other rack web server
end

Gemfile の編集が終わったら bundle install を行います。

bundle install --without production test rmagick

rmagick を除いているのは、単にウチの環境ではコケるためですね。

あと、rmagickをインストールするのが面倒くさかったので……

bundle install が終わった後に、下記のコマンドを実行します。

rake generate_secret_token 

あとは、Herokuでデプロイするための変更をいくつか加えます。

まずは、config/environment.rb の exit 1 をコメントアウト(又は削除)します。


config/environment.rb

exit 1


次に、config/application.rb 内に以下の記述を追加します。


config/application.rb

config.assets.initialize_on_precompile = false


これで、ローカルでの作業は終わり。


Herokuへデプロイ

まず、Heroku上にアプリを作成します。

heroku apps:create -a APP_NAME

次に、Herokuアプリに postgres を追加します。

heroku addons:create heroku-postgresql 

作成したHerokuアプリとローカルのリポジトリを以下のコマンドで繋ぎます



heroku git:remote -a APP_NAME

そして、以下のコマンドでHerokuへデプロイします。

git add -A

git commit -m “Prepare Redmine for Heroku deployment”
git push heroku 3.4-stable:master

最後に、マイグレーションなどを行ってデプロイは終了です。

heroku run rake db:migrate

heroku run rake redmine:load_default_data


おわりに

とりあえず、これでHeroku上にRedmineをデプロイできました。


参考資料

How to deploy Redmine to Heroku

Gem::LoadError: Specified 'postgresql' for database adapter, but the gem is not loaded. Add gem 'pg' to your Gemfile

Heroku and Rails: Gem Load Error with Postgres, however it is Specified in GEMFILE

Heroku初心者がHello, Herokuをしてみる

コマンドでHerokuを操作する Heroku CLI のインストール