Redmine は Ruby on Rails 製の OSS なバグトラッキング & プロジェクトのチケット管理システム。
$ cd redmine/tmp/
$ touch restart.txt
$ less ./redmine/log/production.log
$ bundle exec rake tmp:cache:clear
$ bundle exec rake tmp:sessions:clear
Redmine API - www.redmine.org
REST API - redmine.jp
curl + 4 通りの方法で Redmine の API 認証を通してみる
- システム管理者でログイン
- 管理 > 設定 > API より「REST による Web サービスを有効にする」をチェック
- 個人設定 > API アクセスキーより認証用のキーを取得
curl
などでGET /issues/[id].[format]
とかリクエスト- このとき API アクセスキーを
key
パラメータまたはX-Redmine-API-Key
ヘッダとして付与
- このとき API アクセスキーを
# key パラメータで送る例
$ curl https://$HOST/issues/12345.json?key=$KEY
# ヘッダで送る例
$ curl -H "X-Redmine-API-Key: $KEY" https://$HOST/issues/12345.json
redmine-slack プラグインもあるが、カスタマイズ性を考えると RSS を利用するのもよさそう。
テーマは redmine/public/themes
にぶち込んで管理画面より変更。
CSSの編集はテーマ側でやっちゃうのが無難か...
$ vim public/themes/themename/stylesheets/application.css
- configuration.yml を設定
- Googleだとアカウント設定から脆弱なアプリログインを許可しないと動作せず?
$ git commit -m "->DONE #999 @0.0h"
# 連携キーワード チケット番号 時間の順番
# gitbucket 側の webhook テスト失敗してても動きました
- 【初回】ApacheのSSHキー登録
$ mkdir /var/www/.ssh
$ chown -R apache:apache /var/www/.ssh
$ sudo -u apache ssh-keygen -t rsa
$ cat /var/www/.ssh/id_rsa.pub
- 【初回】gitbucket側でSSHキー登録
$ sudo -u apache touch /var/www/.ssh/config
$ sudo -u apache vi /var/www/.ssh/config
- 【初回】redmine配下にgitディレクトリ作成
$ mkdir /var/www/html/redmine/git
$ chown -R apache:apache
- 【初回】Redmine>管理で以下設定
- リポジトリ>APIキー:生成→(5.)のtokenへ
- API:RESTによるWEBサービス有効へ
- 【追加時】Redmine用リポジトリclone
$ cd redmine/git
$ sudo -u apache git clone --mirror ~.git
- 【追加時】GitbucketにてService-hook設定
- Add Webhook から追加
- URL:
http://~/github_hook?project_id=p1
- content type:
application/json
- token:
(3.)のAPIキー
- Which events...:
pushのみ
- 参考:https://goo.gl/BfGhzL
- 【追加時】Redmineのプロジェクト設定
- プロジェクト>設定>リポジトリ>新しい...
- 管理システム:Git
- メインリポジトリ:True
- 識別子:p1 など任意
- パス:
/var/www/html/redmine/git/~.git
- エンコーディング:UTF-8
- 最新コミット表示:True
コマンドラインで bundle exec rake redmine:send_reminders
を実行することにより、各々のユーザーに対して期日間近および期日超過のチケットの一覧が送られます。
- 期日が間近のチケットをメールで通知する(リマインダ機能)
- Redmine で期日が間近のチケットをメールで通知する
- Cron に
rake
コマンドパス通ってなくてはまった
- Cron に
オプション | 説明 |
---|---|
days | 期限何日前から通知するか (デフォルト: 7) |
tracker | 通知対象トラッカーのid (デフォルト: すべてのトラッカー) |
project | 通知対象プロジェクトのidまたは識別子 (デフォルト: すべてのプロジェクト) |
users | 通知対象のユーザーまたはグループのid (デフォルト: すべてのユーザー)※コンマで区切って複数のidを指定できます |
version | 通知対象の対象バージョン (デフォルト: 指定なし) |
$ vim /etc/crontab
> 30 8 * * * root cd /path/to/redmine && /usr/local/bin/bundle exec /usr/local/bin/rake redmine:send_reminders RAILS_ENV=production
- Redmine Agile Plugin - カンバンとかチャートとか
- Redmine Slack - Slack 連携
- Usability - UI/UX 向上
- Progressive Projects List - プロジェクト一覧拡張
- ナレッジベース
- Redmine のバージョンが新しいと
plugins/redmine_knowledgebase/app/views/articles/show.html.erb:17
にて削除リンクのconfirm
を改修する必要がある - link_to, confirmオプションが廃止
- Redmine のバージョンが新しいと
- 工数ロガー
- Issue Templates
- Work Time - 工数管理
- Recurring Issues - 繰り返しチケット
- Local avatar - アバター
- Issues Tree - チケットの親子階層の一覧表示
- Redmine のバージョンにあわせて clone するブランチを選択する必要あり
- Absolute Dates - 日時を相対表示から絶対表示へ
- redmine_ics_export - Google カレンダーへのエクスポート
- EastGantt
- Lychee ガントチャート - 国産ガントチャートプラグイン
- Redmine Lightbox2 - 画像の lightbox 化
- Redmine のバージョンにあわせて clone するブランチを選択する必要あり
各プラグインの GitHub いって README.md 見れば大体わかる。以下手順でインストール後にメニュー「管理」からプラグインが登録されていることを確認&設定ぽちぽち ... 。
$ cd /path/to/redmine
$ cd plugins
$ git clone https://github.com/hoge/redmine-fuga-plugin.git
$ cd ..
$ bundle install
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ touch tmp/restart.txt
$ cd /path/to/redmine
$ bundle exec rake redmine:plugins:migrate NAME=redmine_plugin VERSION=0 RAILS_ENV=production
$ rm -rf plugins/redmine_plugin
$ touch tmp/restart.txt
redmine/plugins
に プラグインディレクトリを作って中にinit.rb
とか置いておくと読み込まれてくれる。他のプラグイン参考に組み立てていけば OK 。- グローバルメニュー追加
- Redmineのtar.gz落としてきて展開
- config/database.yml を新規作成or移植
- config/configuration.yml を新規作成or移植
- plugins 中身あれば移植
- files中身あれば移植
- bundle install
- セッション秘密鍵
$ bundle exec rake generate_secret_token
- DBマイグレート
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=development bundle exec rake db:migrate
- キャッシュクリア
$ bundle exec rake tmp:cache:clear tmp:sessions:clear
- 権限設定
$ chown -R apache:apache /var/www/html/redmine
$ chown -R apache:apache /usr/local/app/redmine-***
- 再起動
$ touch レッドマインDIR/tmp/restart.txt
$ service httpd restart
# Redhat / CentOS
$ yum install ipa-pgothic-fonts
$ yum install ipa-pmincho-fonts
$ cd /usr/share/fonts/ipa-pgothic # 存在確認
$ cd /path/to/redmine
$ vim config/configuration.yml
> # 日本語に対応したフォントのパスを指定。値は環境によって異なる。
> rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf
# Amazon Linux
$ yum install ipa-gothic-fonts
$ yum install ipa-mincho-fonts
$ cd /usr/share/fonts/ipa-gothic # 存在確認
$ cd /path/to/redmine
$ vim config/configuration.yml
> # 日本語に対応したフォントのパスを指定。値は環境によって異なる。
> rmagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf
画像のサムネイル表示に使うアプリケーション。
# 以下コマンドで導入後サーバ再起動
$ yum install ImageMagick
$ cd ~
$ yum install rpm-build wget ttmkfdir
$ rpm -ivh http://www.cabextract.org.uk/cabextract-1.4-1.i386.rpm
$ wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
$ rpmbuild -bb msttcorefonts-2.5-1.spec
> ...
> Checking for unpackaged file(s): /usr/lib/rpm/check-files /usr/src/rpm/BUILDROOT/msttcorefonts-2.5-1.x86_64
> Wrote: /usr/src/rpm/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
> ...
$ rpm -ivh /usr/src/rpm/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
$ mkdir -p /usr/share/fonts/default/TrueType
$ cd /usr/share/fonts/default/TrueType
$ find /usr/share/fonts/msttcorefonts -exec ln -s {} \;
# 未検証
$ wget http://www.cabextract.org.uk/cabextract-1.4-1.src.rpm
$ rpmbuild --rebuild cabextract-1.4-1.src.rpm
$ rpm -ivh /usr/src/rpm/RPMS/x86_64/cabextract-1.4-1.x86_64.rpm
$ cd /path/to/redmine
$ vim Gemfile
> # rmagick をインストールするように変更
$ bundle install
$ sudo su
# 新規サーバにruby2.3.xやら何やら導入
$ yum remove ruby20
$ yum install ruby23
$ yum groupinstall "Development Tools"
$ yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel
$ yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts
# rails, bundler, passenger を gem で導入
$ gem install rails
$ gem install yard
$ gem install bundler --no-rdoc --no-ri
$ gem install passenger --no-rdoc --no-ri
$ /usr/local/bin/passenger-install-apache2-module --auto --languages ruby
# 旧サーバの mysql ダンプ ( DB 情報は config/database.yml 参照 )
$ mysqldump -u MySQLユーザー名 -pMySQLパスワード Redmineデータベース名 > データ出力先ファイル名
# redmine/files をバックアップ ( 添付ファイル )
# redmineディレクトリをまるまる移動
# sql ダンプから mysql を復元 ( 同じ空の DB / ユーザ / 権限 を用意してから )
$ mysql -u ユーザー名 -pパスワード DB名 < ダンプデータファイル名
# インストール
$ bundle install # パス通ってなかったら → /usr/local/bin/bundle install
$ bundle exec rake generate_secret_token
$ bundle exec rake tmp:cache:clear tmp:sessions:clear
# httpd 設定
$ vim /etc/httpd/conf.d/redmine.conf
> <Directory> 内にアクセス許可設定
> CentOS7.x系は Require all granted
> CentOS6.x系は AllowOverride all & Order allow,deny & Allow from all
$ chkconfig httpd on
$ chown -R apache:apache /var/www/html/redmine
$ /usr/local/bin/passenger-install-apache2-module --snippet # 表示された内容を httpd.conf へ
# サブディレクトリ運用の場合はAlias,Locationの設定を記述
# DB マイグレート
$ bundle exec rake db:migrate RAILS_ENV=production
$ bundle exec rake redmine:plugins:migrate RAILS_ENV=production
$ RAILS_ENV=production bundle exec rake db:migrate
$ RAILS_ENV=development bundle exec rake db:migrate
# コンフィグテスト & 再起動
$ touch ./tmp/restart.txt
$ service httpd configtest
$ service httpd restart
# database ~~ adapter ~~ なんちゃら的なエラーは database.yml に development モード加えたら通った
production:
adapter: mysql2
database: db_redmine
host: localhost
username: user_redmine
password: password
encoding: utf8
development:
adapter: mysql2
database: db_redmine
host: localhost
username: user_redmine
password: password
encoding: utf8
# bundler を使ったビルドは以下で突破
$ bundle install --without development test rmagick --path vendor/bundle
$ bundle exec rake generate_secret_token
$ RAILS_ENV=production bundle exec rake db:migrate
# バージョン要件OKなはずなのに passenger のインストール時に ruby-version2.2.2 以上にしてね!って怒られたのは以下で解決
$ gem install rack