なんのために
個人プロジェクトをタスク管理したくなりました。
タスク管理しなければ、思い出すだけで時間が過ぎてしまって、遅々として進まず、いつの間にか立ち消えてしまう運命をたどりやすいです。
そうならないための対策です。
Redmine を建てる、無料で
タスク管理では、日常的に Redmine を使っています。
特に新しいツールを覚えたいわけでもなく、 慣れて無料で利用できる Redmine が良かったですね。
問題は環境です。
VPC や GAE も考えましたが、できるだけコストを抑えたかったので、前例が結構ある Heroku にインストールしてみました。
前例があると入っても、エラーなどの対処で半日くらいかかりました。
たどった手順
環境
- MacBook M1 + Big Sure
- Ruby 2.6.6
- Heroku
参考にした記事
Redmine3.0系をHerokuで動かせるようにする
https://qiita.com/KazuyaHara/items/27818ad3e7285cfefde1
やったこと
最新版をクローンし、
1$ git clone git://github.com/redmine/redmine.git
1$ cd redmine
に移動します。
Heroku デプロイ向けに .gitignore
を編集します。
削除するもの
1/config/configuration.yml
2/config/email.yml
3/config/initializers/session_store.rb
4/config/initializers/secret_token.rb
5/public/plugin_assets
6/Gemfile.lock
7/Gemfile.local
追加するもの
1/vendor/bundle
を追加する。
Gemfile
を編集します。
1ruby '>= 2.4.0', '< 2.8.0'
のバージョン部分を
1ruby '2.2.1'
2ruby '>= 2.4.0', '< 2.8.0'
としました。ここは脳死でやってます。
次に、 Gemfile
の
1database_file = File.join(File.dirname(__FILE__), "config/database.yml")
2if File.exist?(database_file)
から、
1else
2 warn("Please configure your config/database.yml first")
3end
までをバッサリ削除し、代わりに次を追加して保存します。
1group :production do
2 gem "pg", ">= 0.11.0", :platforms => [:mri, :mingw, :x64_mingw]
3 gem 'rails_12factor'
4 gem "activerecord-jdbcpostgresql-adapter", :platforms => :jruby
5end
config/application.rb
をひらき
require 'sprockets/railtie'
がコメントされていればコメントを外し、
1 class Application < Rails::Application
を
1 class Application < Rails::Application
2 config.assets.initialize_on_precompile = false
とします。
私は、これを宣言する場所が悪かったようで、ここでかなりハマりました。
ここまでやったらパッケージをインストールします。
1$ bundle install --path vendor/bundle --without development test rmagick
Redmine の下にインストールするように --path vendor/bundle
必須です。
また、 macOS で、 Permission Error が発生する場合は、 OS 標準の Ruby ではなくて、 Homebrew から Ruby をインストールしてー、という対応が必要です。
大変です。
つづけて、次を実行してセッションストアを初期化します。
1$ bundle exec rake generate_secret_token
アセットのマニフェストも追加しました。
/app/assets/config/manifest.js
がなければ追加します。
/app/assets
以下に何もファイルがないと思うので、 manifest.js
モカラのファイルをコミットで OK でした。
次に Heroku です。
サインインして、コマンドラインツールをインストールします。
1$ brew install heroku/brew/heroku
Heroku にログインし、
1$ heroku login
アプリを新規作成し、
1$ heroku create myredmine
PostgreSQL をインストール、
1$ heroku addons:add heroku-postgresql
手元で変更したファイルをコミットし、 Heroku に Push します。
1$ git add .
2$ git commit -am "Redmine setting"
3$ git push heroku master
Push がうまく言ったら、初期設定をします。
migrate を実行し、
1$ heroku run rake db:migrate RAILS_ENV=production
初期データを設定し、
1$ heroku run rake redmine:load_default_data RAILS_ENV=production
最後に再起動して完了です。
1$ heroku restart
以上で Redmine が表示されるはず。

されましたー。
初期アカウントは admin/admin 担っているのでログインしてパスワードを変更してください。
Basic 認証を設定する
ついでに、 Basic 認証 を設定しました。
app/controllers/application_controller.rb
を開き、次を追記
1http_basic_authenticate_with :name => ENV['BASIC_AUTH_USERNAME'], :password => ENV['BASIC_AUTH_PASSWORD'] if Rails.env == "production"
追記場所は def verify_authenticity_token
の直前に入れました。
この変更を Commit Push し、
Heroku に環境変数を設定
1$ heroku config:add \
2 BASIC_AUTH_USERNAME="user_name" \
3 BASIC_AUTH_PASSWORD="password"
でした。
これはスッとできましたー。