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サーバの設定

email_delivery ブロック内のキーではRedmineからメール送信を行うためのSMTPサーバの情報を設定します。

email_deliveryブロック内のキー

キーの名称 説明
delivery_method メール送信方法。以下のいずれかを指定できる。
smtp : 指定されたSMTPサーバ経由でメールを送信。 smtp_settings ブロックでメールサーバの指定が必須
sendmail : サーバ上の sendmail コマンドを使用してメールを送信

delivery_methodsmtp を指定した場合は smtp_settings ブロックの設定も行います。

smtp_settingsブロック(email_deliveryブロック内)のキー

キーの名称 説明
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

オートログインcookieの設定

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リポジトリで / を設定
【危険な設定】Filesystemリポジトリで / を設定
【危険な状態】リポジトリブラウザ経由でRedmineサーバ上の全ファイルにアクセスできる
【危険な状態】リポジトリブラウザ経由で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モードの設定

sudoモードの設定を行うと、以下に挙げるセキュリティ上重要な影響がある操作を実行する直前にパスワードの入力が要求されるようになります。

  • 自分自身のアカウント情報の変更
  • プロジェクトのメンバーの変更
  • 管理画面での設定変更
  • ユーザー、グループ、ロールの変更
  • LDAP認証の設定変更
  • プロジェクトの削除

sudoモード関連のキー

キーの名称 説明
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形式の画像に出力すると文字化けするを参照してください。