Googleカレンダーに予定を入れるようにしていたんだけれど、カレンダーなので日付を入れなくてはいけなくて
日にちが決まってないけれどやろうと思っていることを入れておくことができないのでちょっと不便でした
Redmine等のプロジェクト管理ソフトを入れるのは大袈裟な気がしていたんだけれどRedmineは以前仕事でも使っていたし
自分のサーバにインストールして使うとなると思いの外選択肢が少ない感じだったのでRedmineを入れてみました
もやっとした要件は
- サービスでなく、自分のサーバにインストールできること
- 依存するものが少なく、導入が楽
- 日付を入れずにタスクを登録できる
- 優先度を設定できる
- 日付が入っているものはカレンダーで確認できる
- スマホからタスクを確認、編集できる
なんとなく導入が面倒というイメージを持っていたんだけれど、手順を見る限り簡単そうでした
ただ、少しハマった部分もあるのでそれは後述 (最新は3.0.1なんだけれどドキュメントが2.xのまま更新されていなかったりする
あとスマホでのタスクの確認はRedmineではできなくて、 RedminePM というアプリから行うことにしました
今回RedmineをインストールするOSにはRubyが入っていないのでRedmine用のユーザを用意して
ホームディレクトリにrbenvをインストール、rbenvを使ってRubyをインストール、Redmineをインストール
と、全て専用ユーザのホームディレクトリ以下で済ますことにしました
また、追加でインストールするものも抑えたかったのでRedmineはWEBRick、SQLite、ImageMagickなし、で動かすことにしました
まずユーザを作って、ログイン
# useradd -m redmine
# su - redmine
rbenv と ruby-build をインストールする
ここからは全てこのユーザのホームディレクトリ以下で作業
rbenvとruby-buildをclone
$ git clone https://github.com/sstephenson/rbenv.git .rbenv
$ git clone https://github.com/sstephenson/ruby-build.git .rbenv/plugins/ruby-build
rbenvの設定を.bashrcに追加
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >>.bashrc
$ echo 'eval "$(rbenv init -)"' >>.bashrc
$ source .bashrc
rbenvでrubyとbundlerをインストールする
rbenv install -l
でインストール可能なRubyのバージョン、 rbenv versions
でインストール済みを確認できる
$ rbenv install -l
...
2.2.0-rc1
2.2.0
2.2.1
2.3.0-dev
...
$ rbenv install 2.2.1
$ rbenv versions
2.2.1
$ rbenv global 2.2.1
$ rbenv exec gem install bundler --no-rdoc --no-ri
$ rbenv rehash
Redmineをインストールする
Redmineをclone (最新のバージョンは3.0なので、ブランチを切り替え)
$ git clone https://github.com/redmine/redmine.git
$ cd redmine
$ git checkout 3.0-stable
$ cp config/database.yml.example config/database.yml
$ cp config/configuration.yml.example config/configuration.yml
config/database.yml
は以下のSQLiteの部分以外すべてコメントアウト
config/configuration.yml
には本来メールサーバ等の設定が必要だけれど今回は必要ないので特に編集はしない
# SQLite3 configuration example
production:
adapter: sqlite3
database: db/redmine.sqlite3
RedmineがURLのサブディレクトリ以下に見えるようにインストールしたかったのでこれらを参考にした
- Redmine 2.0 "No route matches"
- Run Redmine in a sub directory results in "No route matches"
- FCGI mode does not support sub-URI
config/environment.rb
の末尾の部分がこのようになるように default_scope
と relative_url_root
を追加
RedmineApp::Application.routes.default_scope = { :path => '/redmine', :shallow_path => '/redmine' }
# Initialize the Rails application
Rails.application.initialize!
Redmine::Utils::relative_url_root = "/redmine"
サブディレクトリにアクセスしてもpublicの中身が見えるようにリンクを作成
$ ln -s . public/redmine
Redmineが依存するGemをインストール、各種初期データの生成
$ bundle install --without development test rmagick --path vendor/bundle
$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data
ひと通りインストールが終わったので起動して http://localhost:3000/redmine にアクセスしてみる
$ ruby bin/rails server webrick -e production
bin/rails
を使う (2.x系と変わっているらしい- デフォルトでは127.0.0.1にbindされるので別のマシンからアクセスしたい場合は
-b 192.168.1.1
オプションを使う - デーモンとして起動させたい場合は
-d
オプションを使う
起動しなかったり、うまく動作していなさそうだったら log/production.log
を確認する
問題なさそうであれば config/environments/production.rb
を編集してログレベルを下げる
config.log_level = :warn
前段のNginxに設定を追加して外からアクセスできるようにしておわり
location /redmine {
auth_basic "restricted - redmine";
auth_basic_user_file /path/to/htpasswd/of/redmine;
proxy_pass http://localhost:3000;
}