Redmineのconfiguration.ymlの設定項目
Redmineの設定のうち、システム環境に関するものなど一部の設定は、Webの管理画面ではなく configuration.yml
というRedmineサーバ上の設定ファイルで行います。
configuration.yml
はRedmineのインストールディレクトリ以下の config
ディレクトリに置かれています。新しく作成するときは同じディレクトリ内にある config/configuration.yml.example
というサンプルファイルをコピーするのが簡単です。
(例)メール送信の設定とPNG画像内のフォント指定のみのシンプルな configuration.yml
default: email_delivery: delivery_method: :smtp smtp_settings: address: localhost port: 25 domain: redmine.example.com minimagick_font_path: /usr/share/fonts/ipa-gothic/ipag.ttf
configuration.yml
はYAMLという形式のテキストファイルです。編集の際は以下の点に注意してください。誤った文法で記述するとRedmineが起動しません。
- インデントはデータの階層構造を表現しています。インデントを崩さないようにしてください。
- インデントには半角スペースを使用してください。タブは使えません。
- キーと値を区切る
:
(半角コロン)の直後には半角スペースで空けてください。 #
以降はコメントです。- 値に
:
など記号文字が含まれる場合はエラーを回避するために値全体を"
で囲んでください。
- メール通知に使用するSMTPサーバの設定
- 添付ファイルの保存ディレクトリの設定
- オートログインcookieの設定
- バージョン管理システムのコマンドの設定
- リポジトリパスとして入力できる値の制限
- バージョン管理システムのコマンドのエラーログの出力先
- データベースに保存するパスワードの暗号化
- sudoモードの設定
- プラグインで使用される画像等の自動コピーを無効化
- 画像処理関係の設定
email_delivery
ブロック内のキーではRedmineからメール送信を行うためのSMTPサーバの情報を設定します。
キーの名称 | 説明 |
---|---|
delivery_method |
メール送信方法。以下のいずれかを指定できる。 ・ smtp : 指定されたSMTPサーバ経由でメールを送信。 smtp_settings ブロックでメールサーバの指定が必須・ sendmail : サーバ上の sendmail コマンドを使用してメールを送信 |
delivery_method
に smtp
を指定した場合は smtp_settings
ブロックの設定も行います。
キーの名称 | 説明 |
---|---|
enable_starttls_auto |
true を指定するとSTARTTLSを使用してメールサーバに対して暗号化された通信を行います。 |
address |
SMTPサーバのホスト名またはIPアドレス。 |
port |
SMTPサーバのポート番号。通常は25ですが、サブミッションポートを使う場合は587です。 |
domain |
SMTPの HELO コマンドで送出されるホスト名です。Redmineを実行しているホストのFQDNを設定するのが原則です。 |
authentication |
SMTPサーバが認証を要求する場合に、どの認証方式を使用するか指定できます。 :plain 、 :login 、 :cram_md5 のいずれかを指定します。認証を要求しないSMTPサーバを使用する場合はこの項目は不要です。 |
user_name |
authentication で何らかの認証方式を指定した場合に、ユーザー名を指定します。 |
password |
authentication で何らかの認証方式を指定した場合に、パスワードを指定します。 |
localhost のSMTPサーバを使用してメールを送信する場合
default: email_delivery: delivery_method: :smtp smtp_settings: address: localhost port: 25 domain: redmine.example.com
Gmailなどインターネット上のSMTPサーバを使用してメールを送信すると通信に時間がかかり、チケットの作成・更新などメール通知が発生する操作に対する反応が遅く感じることがあります。
設定例については メール通知のためのconfiguration.ymlの設定 をご覧ください。
Redmineにアップロードされたファイルの保存先をデフォルトのディレクトリ(インストールディレクトリ直下の files
ディレクトリ)以外に変更することができます。絶対パスで指定してください。
ファイルの保存場所を /var/redmine-files
にする
attachments_storage_path: /var/redmine-files
Redmineへの自動ログインが有効な場合(「管理」→「設定」→「認証」で「自動ログイン」を「無効」以外にしているとき)に作成されるcookieについて、cookieの名前やパス、セキュアフラグの有無を変更できます。
デフォルト設定は以下の通りです。
キーの名称 | 説明 | デフォルト値 |
---|---|---|
autologin_cookie_name |
名前 | autologin |
autologin_cookie_path |
パス | / |
autologin_cookie_secure |
セキュアフラグ | false |
cookieの名前を redmine_autologin
にし、パスを /redmine/
、セキュアフラグ有効にしたい場合
autologin_cookie_name: redmine_autologin autologin_cookie_path: /redmine/ autologin_cookie_secure: true
git
コマンドや svn
コマンドなど、Redmineがリポジトリの情報を取得するために起動するバージョン管理ツールのコマンド(実行ファイル)のパスを明示的に指定できます。デフォルトと異なるディレクトリにインストールされているなどの理由でパスが通っていないときに設定します。
デフォルトでは次の値が使われます。
設定項目 | 対応するツール | デフォルト値 |
---|---|---|
scm_git_command |
git | git |
scm_subversion_command |
subversion | svn |
scm_mercurial_command |
mercurial | hg |
scm_cvs_command |
cvs | cvs |
scm_bazaar_command |
bazaar | bzr |
scm_git_command: /opt/gitlab/embedded/bin/git
プロジェクトの「設定」→「リポジトリ」から連係先リポジトリの設定を行うとき、デフォルトではサーバ上の任意のパスを入力できます。プロジェクトの設定を行う権限さえあればサーバ上の任意のパスのリポジトリを参照できることになり、セキュリティ上好ましくない場合があります。
特に、「管理」→「設定」→「リポジトリ」で「Filesystem」リポジトリを有効にしているときにプロジェクトのリポジトリの設定で 「ルートディレクトリ」に /
を指定した場合は、Redmineを実行しているOSのユーザーの権限でサーバ上の全ファイルにアクセスできてしまいます。
【危険な設定】Filesystemリポジトリで
/
を設定
【危険な状態】リポジトリブラウザ経由でRedmineサーバ上の全ファイルにアクセスできる
configuration.yml
内の設定 scm_*_path_regexp
を利用すると入力を許可するパスのパターンを正規表現で制限できるようになり、安全性が高まります。
# Gitリポジトリの設定で特定のディレクトリ以下をすべて許可 scm_git_path_regexp: /var/opt/gitlab/git-data/repositories/.* # /var/lib/repos以下のプロジェクト識別子と同じ名前のディレクトリを許可 scm_subversion_path_regexp: /var/lib/repos/%project%
Redmine経由で起動されたバージョン管理システムのコマンドが出力したエラーの保存先ファイルを変更します。絶対パスで指定してください。デフォルトはRedmineのインストールディレクトリ直下の log/production.scm.stderr.log
です。
scm_stderr_log_file: /var/log/redmine_scm_stderr.log
「管理」→「LDAP認証」で設定したLDAPのパスワードと、プロジェクトの「設定」→「リポジトリ」で設定したバージョン管理システムにアクセスするためのパスワードは、デフォルトでは平文でデータベースに保存されます。
database_cipher_key
で暗号化のための鍵を設定すると、これらの情報を暗号化(256bitAES)して保存できます。
database_cipher_key: ******
******には任意の暗号化鍵を入力してください。
Redmineのユーザーのパスワードは database_cipher_key
の設定とは無関係に、平文ではなくハッシュ値で保存されています。
データベースを暗号化した状態で暗号化鍵を紛失・変更されるとデータベースを読み取ることができなくなります。
既に平文でパスワードがデータベースに保存されている場合は暗号化鍵を設定した後に rake db:encrypt RAILS_ENV=production
を実行して下さい。保存されているパスワードが暗号化されます。
暗号化前
mysql> select account_password from auth_sources; +------------------+ | account_password | +------------------+ | ldappasswd | +------------------+
暗号化後
mysql> select account_password from auth_sources; +----------------------------------------------------------------+ | account_password | +----------------------------------------------------------------+ | aes-256-cbc:BgYzwok2En2Wp9pDp78yCg==--n+6K/4G8HTqnaCcSIObVfA== | +----------------------------------------------------------------+
sudoモードの設定を行うと、以下に挙げるセキュリティ上重要な影響がある操作を実行する直前にパスワードの入力が要求されるようになります。
- 自分自身のアカウント情報の変更
- プロジェクトのメンバーの変更
- 管理画面での設定変更
- ユーザー、グループ、ロールの変更
- LDAP認証の設定変更
- プロジェクトの削除
キーの名称 | 説明 |
---|---|
sudo_mode |
true を指定するとsudoモードが有効になり、セキュリティ上重要な影響がある操作を実行する前にはパスワード入力が求められるようになります。 |
sudo_mode_timeout |
sudoモードのパスワード入力画面のタイムアウト(分単位)。デフォルトは15分です。 |
通常、Redmineが起動する際にプラグインのassetsを public/plugin_assets/
に自動でコピーしますがそれを無効にすることができます。
mirror_plugins_assets_on_startup: false # コメントアウトを解除
Redmineは以下の処理で画像処理ライブラリImageMagickとMiniMagickを使用しています。
- ガントチャートをPNG形式の画像としてエクスポート
- 添付ファイルのサムネイル画像作成
configuration.yml
ではImageMagickのコマンドのパスとMiniMagickが使用する日本語フォントのパスを指定できます。
キーの名称 | 説明 |
---|---|
imagemagick_convert_command |
ImageMagickの convert コマンドのフルパス名。デフォルトと異なるディレクトリにインストールされているなどの理由でパスが通っていないときに設定します。 |
minimagick_font_path |
日本語フォントのフルパス名。この項目の設定が行われていない場合、ガントチャートをPNG形式の画像としてエクスポートしたときに日本語の部分が文字化けします。 |
imagemagick_convert_command: c:/im/convert.exe
minimagick_font_path
で指定するフォントはOSによって異なります。具体的な設定はガントチャートをPNG形式の画像に出力すると文字化けするを参照してください。