実際、Redmineには優れた機能があります。複数のプロジェクトの管理、エラーの追跡、リポジトリとの統合、コミットの修正済みバグとバグレポートのコミットの相互参照、各プロジェクトでの異なるユーザーロールの割り当てなどです。 ただし、インストール手順はかなり複雑であり、非常に便利な機能の中には、少し改良したり、プラグインを使用したりする必要があるものがあります。 以下のガイドが、プロジェクトでRedmineを使用したい人に役立つことを願っています。
コンポーネント
プロジェクト管理システムRedmine
→ 公式サイト
主な機能:
- いくつかのプロジェクト
- イベント追跡システム(バグ、機能)
- プロジェクトごとに異なるユーザーロール(マネージャー、開発者、レポーター)
- 各プロジェクトのニュース、ドキュメント、ファイル、Wiki、フォーラムのサポート
- バージョン管理システム(SVN、Git、Mercurial)との統合
- イベント通知をメールで送信
- 時間を追跡する機能
Mercurialバージョン管理システム
→ 公式サイト
クロスプラットフォームの分散バージョン管理システム。
また必要
Webサーバーおよびデータベース管理システム。 MysqlおよびApacheで使用されます。
設置
指示は、有用ではあるが非常に時代遅れの指示に基づいています。
Ubuntu Server 10.04にMercurialおよびSubversionを使用してRedmine 1.2.xをインストールする方法 。
公式のインストール手順も使用しました
Redmineインストールガイド 。
Ubuntu Server 16.04がプリインストールされたサーバーが既にあると仮定します。 詳細な手順では、制御システムと補助ソフトウェアのインストールについて説明します。
それでは始めましょう。 最初にLAMPサーバーをインストールします。
$ sudo tasksel install lamp-server
インストール中に、MySQLデータベースのrootユーザーのパスワードを入力する必要があります(オペレーティングシステムのrootパスワードと混同しないでください)。
MySQLデータベースとそれを操作するredmineユーザーを作成します。 [パスワード]の代わりに、目的のユーザーパスワードを挿入します。
$ mysql -u root -p ( root MySQL) > create database redmine character set utf8; > create user 'redmine'@'localhost' identified by '[password]'; > grant all privileges on redmine.* to 'redmine'@'localhost'; > exit
Redmineをwww.redmine.org/projects/redmine/wiki/Downloadまたはチームからダウンロードします
$ wget http://www.redmine.org/releases/redmine-3.3.3.tar.gz
Redmineを/ usr / share / redmineディレクトリに解凍します。 configサブディレクトリを見つけて、config / database.yml.exampleをconfig / database.ymlにコピーします。 その後、データベースの本番モードを設定するためにファイルを編集します。
$ sudo cp /usr/share/redmine/config/database.yml.example /usr/share/redmine/config/database.yml $ sudo nano /usr/share/redmine/config/database.yml
テキストを入力し、ファイルを保存します(ctrl + x):
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "[password]" encoding: utf8
必要なパッケージをインストールします。
$ sudo apt install ruby ruby-dev build-essential libmysqlclient-dev
Bundlerをインストールします。
$ gem install bundler
これで、Redmineに必要なgemをインストールできます。
$ cd /usr/share/redmine $ bundle install --without development test rmagick
RailsがCookie内のデータを暗号化するために使用するランダムキーを作成します。
$ cd /usr/share/redmine $ bundle exec rake generate_secret_token
次に、データベース構造を作成します(/ usr / share / redmineで実行):
$ RAILS_ENV=production bundle exec rake db:migrate $ RAILS_ENV=production bundle exec rake redmine:load_default_data
必要なアクセス権を設定します。
$ cd /usr/share/redmine $ sudo chown -R www-data:www-data files log tmp public/plugin_assets $ sudo chmod -R 755 files log tmp public/plugin_assets
必要に応じて、WEBrick Webサーバーを使用してRedmineのインストールをテストできます。
$ sudo -u www-data bundle exec rails server webrick -e production
WEBrickを起動すると、ブラウザの
http://localhost:3000/
Redmineの開始ページが利用可能になります。
Apache統合
Passengerをインストールします。
$ sudo apt-get install libapache2-mod-passenger
Redmineパブリックディレクトリにシンボリックリンクを追加します。
$ sudo ln -s /usr/share/redmine/public /var/www/redmine
デフォルトでPassengerユーザーを設定する必要があります。このためにファイルを編集します:
$ sudo nano /etc/apache2/mods-available/passenger.conf
次の行を追加して保存する必要があります(ctrl + x):
PassengerDefaultUser www-data
その結果、ファイルは次のようになります。
<IfModule mod_passenger.c> PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini PassengerDefaultRuby /usr/bin/ruby PassengerDefaultUser www-data </IfModule>
次に、apache用のredmine.conf構成ファイルを作成します。
$ sudo nano /etc/apache2/sites-available/redmine.conf
次のテキストを追加して保存します(ctrl + x):
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www ServerName myservername RewriteEngine on RewriteRule ^/$ /redmine [R] <Directory /var/www/redmine> RailsBaseURI /redmine PassengerResolveSymlinksInDocumentRoot on </Directory> ErrorLog /var/log/apache2/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/apache2/access.log combined </VirtualHost>
PassengerモジュールとRewiteモジュールを接続します。
$ sudo a2enmod passenger $ sudo a2enmod rewrite
デフォルトのWebサイトを無効にし、redmineを有効にします。
$ sudo a2dissite 000-default $ sudo a2ensite redmine
/ tmp / cache Redmineにアクセス許可を設定します。
sudo chmod 777 /usr/share/redmine/tmp/cache
Apacheを再起動します。
$ sudo service apache2 reload
これで、お気に入りのブラウザを開いて
http://[my site or ip]/redmine
または単に
http://[my site or ip]
。 Redmineシステムの開始ページが表示されます。
Mercurialをインストールする
パッケージをインストールする必要があります。
$ sudo apt-get install mercurial libapache2-mod-perl2 libapache-dbi-perl libdbd-mysql-perl
プロジェクトリポジトリを保存するディレクトリを作成します。
$ sudo mkdir -p /var/hg/
次に、httpプロトコルを介してリポジトリにアクセスできるようにします。 これを行うには、cgiスクリプトを作成します。
$ sudo nano /var/hg/hgwebdir.cgi
次のテキストを追加して保存します。
#!/usr/bin/python from mercurial import demandimport; demandimport.enable() from mercurial.hgweb.hgwebdir_mod import hgwebdir import mercurial.hgweb.wsgicgi as wsgicgi application = hgwebdir('hgweb.config') wsgicgi.launch(application)
次に、hgweb.configファイルを作成する必要があります。
$ sudo nano /var/hg/hgweb.config
次のコンテンツを追加して保存します。
[paths] /=/var/hg/** [web] allow_push = * push_ssl = false allowbz2 = yes allowgz = yes allowzip = yes
ファイルのアクセス許可を設定します。
$ sudo chown -R www-data:www-data /var/hg/* $ sudo chmod gu+x /var/hg/hgwebdir.cgi
次に、Apacheのconfファイルを作成する必要があります。
$ sudo nano /etc/apache2/conf-available/hg.conf
次のコンテンツを追加して保存します。
PerlLoadModule Apache2::Redmine ScriptAliasMatch ^/hg/(.*) /var/hg/hgwebdir.cgi/$1 <Directory /var/hg> Options +ExecCGI </Directory> <Location /hg> AuthType Basic AuthName "Mercurial" Require valid-user AuthUserFile /dev/null #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=127.0.0.1" RedmineDbUser "redmine" RedmineDbPass "[password]" </Location>
それでもリンクを作成する必要があります:
$ sudo ln -s /etc/apache2/conf-available/hg.conf /etc/apache2/conf-enabled/ $ sudo ln -s /usr/share/redmine/extra/svn/Redmine.pm /usr/lib/x86_64-linux-gnu/perl5/5.22/Apache2/
CGIモジュールを有効にして、Apacheを再起動します。
$ sudo a2enmod cgi $ sudo service apache2 reload
リポジトリは
http://[my site or ip]/hg/*
で利用できます。 たとえば、プロジェクトプロジェクトの場合、アドレスは
http://[my site or ip]/hg/project
ます。 プロジェクトプロジェクトにサブプロジェクトsubproject1がある場合、そのリポジトリは
http://[my site or ip]/hg/project/subproject1
で利用できます。
リポジトリのクローンを作成するには、次を行う必要があります。
$ hg clone http://[my site or ip]/hg/project
複製されたプロジェクトが公開されていない場合(Redmine Webインターフェイスを介してプロジェクト設定で設定)、ユーザー名とパスワードを入力する必要があります。
承認はプロジェクトで実行されます。 アクセスできるのは、プロジェクト参加者(マネージャーと開発者)のみです。
Redmine Webインターフェースでリポジトリを作成する場合、 / var / hg / projectnameなど、そのパスを指定する必要があります。 / var / hg内のリポジトリは、プロジェクトごとに手動で作成し、コマンド(
hg init
)で初期化する必要があります。
新しいリポジトリを作成したら、必要なアクセス権があることを確認する必要があります。
$ sudo chown -R www-data:www-data /var/hg/[repository name]
原則として、リポジトリの作成を自動化することが可能です。 これについては、 Ubuntu Server 10.04でのMercurialおよびSubversionでのRedmine 1.2.xのインストール方法を参照してください。
コミット通知をメールで送信
Redmineは、さまざまなイベント(バグ/機能の寿命の変更など)の通知をサポートしています。 この機能を使用するには、電子メールメッセージの送信方法を設定するだけです。 これは/usr/share/redmine/config/configuration.ymlファイルで行われ、このファイルにはさまざまな構成のテンプレートが含まれています。 目的のコメントを解除して編集する必要があります。
たとえば、次のように:
email_delivery: delivery_method: :smtp smtp_settings: address: "10.11.12.13" port: 25 authentification: :none enable_starttls_auto: false openssl_verify_mode: 'none'
configuration.ymlファイルの各セクションは2つのスペース分シフトされていることに注意してください。 これは重要です。
基本的な通知は、電子メールの送信方法を指定した後に利用可能になります。 ただし、リポジトリの変更を通知するには、外部プラグインを使用する必要があります。 github.com/lpirl/redmine_diff_emailからダウンロードできます。
このプラグインをインストールします。 これを行うには、プラグインの内容を/ usr / share / redmine / plugins / redmine_diff_emailディレクトリにコピーします。 プラグインのインストール手順に従って、ファイル/usr/share/redmine/app/views/repositories/_form.html.erbを変更します。
--- OLD +++ NEW @@ -23,6 +23,7 @@ <% button_disabled = ! @repository.class.scm_available %> <%= repository_field_tags(f, @repository) %> <% end %> +<%= call_hook(:view_repository_form) %> </div> <p>
元のプラグインは、古いバージョンのredmineで動作します。 redmine-3.3の場合、ファイルに変更を加える必要があります
/usr/share/redmine/plugins/redmine_diff_email/db/migrate/002_add_repositories_is_diff_email_attached.rb ファイルの内容は次のようになります。
class AddRepositoriesIsDiffEmailAttached < ActiveRecord::Migration def self.up add_column :repositories, :is_diff_email_attached, :boolean, :default => false, :null => false Repository.update_all(["is_diff_email_attached = ?", true]) Repository.update_all(["is_diff_email = ?", true]) end def self.down remove_column :repositories, :is_diff_email_attached end end
その後、/ usr / share / redmineディレクトリで、コマンドを実行してデータベースを更新します。
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
Redmineの再起動:
$ sudo service apache2 reload
プラグインが正しくインストールされると、 管理→プラグインのプラグインリストにRedmine Diff Emailプラグインが表示され、Redmine SomeProject→「設定」タブ→「リポジトリ」タブ→「編集」 Webインターフェースに通知設定が表示されます。
さらに、Redmineがリポジトリの変更を自動的に追跡するには、追加の手順を実行する必要があります。 まず、WSがリポジトリーを管理し、APIキーを生成できるようにする必要があります。 方法:
* Redmine Webインターフェースの管理メニューで、設定を選択します
* [リポジトリ]タブに移動します
*「リポジトリ管理のWSを有効にする」を有効にする
*リンク「キーの生成」をクリックします
* [保存]ボタンで変更を保存する
次に、スクリプトを作成します。
$ sudo nano /var/hg/fetch_changes
次のテキストを追加して保存します:([APIキー]をAPIキーで生成されたものに置き換える必要があります)
#!/bin/sh curl "http://localhost/redmine/sys/fetch_changesets?key=[your API key]" > /dev/null 2>&1
作成されたファイルの許可を設定します。
$ sudo chown www-data:www-data /var/hg/fetch_changes $ sudo chmod ug+x /var/hg/fetch_changes
/var/hg/hgweb.configに[hooks]セクションを追加して、各コミット後にfetch_changesスクリプトが実行されるようにします。
[hooks] changegroup = /var/hg/fetch_changes
これで、リポジトリが変更されると、Redmineは自動的にプロジェクト参加者に通知を送信します。