Sqale で Redmine を利用する

Redmine Redmineはオープンソースのプロジェクト管理ソフトウェアです。

プロジェクトのタスク管理、進捗管理、情報共有が行えます。SubversionやGitなどのバージョン管理システムとの連携機能も備えており、ソフトウェア開発やwebサイト制作などのITプロジェクトで特に威力を発揮します。

「Redmine.JP > Redmineとは」より

本文書では、RedmineをSqale上で動かす手順について説明いたします。

Sqaleで新規アプリケーションを作成する

以下の文書を参照し、新規にアプリケーションを作成してください。

手順説明の前提

  • Redmineのバージョンは、本文書執筆時 (2015/02/04) の最新バージョンである2.6.1を前提とします。
  • 以下の作業は、配布されているRedmine 2.6.1のリリース版を用い、ダウンロードしたファイルを展開したディレクトリ内で行います。

ローカルGitリポジトリの作成

Redmine 2.6.1をダウンロードし、展開したディレクトリ内でgit initコマンドを実行し、ローカルGitリポジトリを作成します。

$ git init
Initialized empty Git repository in /path/to/redmine-2.6.1/.git/

変更履歴を追いやすくするために、この時点でcommitしておきましょう。

$ git add .
$ git commit -m 'initial commit'

.gitignoreを修正

本文書では、説明上の簡単のため、データベース接続情報などの秘密情報が書かれたファイルもmasterブランチに直接コミットします。そのため、以下のように.gitignoreを編集してください。

また、後述のbundleコマンドでインストールするライブラリをコミット対象から除外する設定も追記しています。 .gitignore から/config/database.yml/config/initializers/secret_token.rb の行を削除し、 /vendor/bundle を追加して下さい。 変更前と変更後の差分は以下のようになります。

diff --git a/.gitignore b/.gitignore
index 683c0f0..33fa68e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,10 +2,8 @@
 /.loadpath
 /config/additional_environment.rb
 /config/configuration.yml
-/config/database.yml
 /config/email.yml
 /config/initializers/session_store.rb
-/config/initializers/secret_token.rb
 /coverage
 /db/*.db
 /db/*.sqlite3
@@ -24,6 +22,7 @@
 /tmp/test/*
 /vendor/cache
 /vendor/rails
+/vendor/bundle
 *.rbc

 /.bundle

変更をcommitしておきましょう。

$ git add .
$ git commit -m 'modified .gitignore'

データベース接続情報の設定

  1. config/database.ymlを作成します。
  2. アプリケーションの「データベース接続情報」ページで「Rails の database.yml 形式でコピー」のアイコンをクリックし、データベース接続情報をクリップボードにコピーします。
  3. (1)で作成したconfig/database.ymlにペーストします。

ここで作成したconfig/database.ymlは、以下のような内容になります。

production:
  adapter: mysql2
  encoding: utf8
  username: [ユーザ名]
  password: [パスワード]
  database: [DB名]
  host: [ホスト名]

変更をcommitしておきましょう。

$ git add .
$ git commit -m 'added database connection info'

依存ライブラリを準備する

bundlerを使います。まだインストールしていない場合は、事前にgem install bundlerしてください。

$ bundle install --without development test --path=vendor/bundle

シークレットトークンの生成

以下のようにして、rakeタスクを実行します。

$ bundle exec rake generate_secret_token

例によって、変更をcommitしておきましょう。

$ git add .
$ git commit -m 'added secret token'

Sqaleにデプロイする

アプリケーション詳細ページにあるSqale上のリモートGitリポジトリを追加します。

$ git remote add sqale ssh://sqale@gateway.sqale.jp:2222/username/redmine.git

以下のようにして、Sqaleにデプロイします。

$ git push sqale master

ダッシュボードのアプリケーション詳細画面に「アプリケーション○○のデプロイが完了しました」と表示されるまで待ちます(数分ほど時間がかかります)。

Sqale上のデータベースを準備する

Sqaleサーバにsshでログインして、データベースを準備します。
※先頭が # で始まる行はコマンドの説明なので入力不要です。各コマンド行の先頭の $ マークも入力不要です。

$ ssh -p 2222 sqale@gateway.sqale.jp

...

# アプリケーションのディレクトリに移動します
$ cd current

# マイグレーションを実行します
$ RAILS_ENV=production bundle exec rake db:migrate

# デフォルトの言語を選ぶプロンプトが出るので `ja' と入力して Enter キーを押してください
$ RAILS_ENV=production bundle exec rake redmine:load_default_data

# アプリケーションを再起動します
$ /etc/init.d/app restart

動作確認する

  • http://redmine-ユーザ名.sqale.jp/ にアクセスする。
  • Redmineの画面が表示されることを確認する。
  • ユーザ名: admin, パスワード: adminでログインできることを確認する。

参考文書