エンタープライズ運用ガイド 2.2.1

ディレクトリ構成

Backlogは以下の構成でインストールされます。

<インストール先のディレクトリ>
├── backlog-job-worker
│     └── hikaricp.properties #データベース接続の最大コネクション数
├── data #Backlogの各データの保存先
├── logs #Backlogの各ログの保存先
├── .env #各設定値
├── docker-compose.yml #Backlogの各コンテナ定義
└── Licenses.txt #Backlogが利用しているオープンソースソフトウェアの情報

Backlogの停止・起動

停止

Backlogを停止します

cd <インストール先のディレクトリ>
docker-compose down

起動

Backlogを起動します

cd <インストール先のディレクトリ>
docker-compose up -d

使用するサービス

サービス名説明
backlog-apiBacklogのAPI
backlog-davsvnBacklogのファイル機能・Subversion機能
backlog-job-worker内部のデータ処理
backlog-solrBacklogの全文検索
backlog-webBacklogのWebサービス
cron内部のデータ処理
database-migrationデータベースのバージョン管理
elasticsearchBacklogの全文検索
elasticsearch-init全文検索の初期設定
fluentdBacklogのログ収集
git-backlog-worker内部のデータ処理
git-httpBacklogのGit HTTPサービス
git-rpc内部のデータ処理
git-sshBacklogのGit SSHサービス
git-webhook-worker内部のデータ処理
kanban-backendBacklogのボード機能
kanban-notification内部のデータ処理
memcached各種キャッシュ保存場所
nginxリバースプロキシ
redis各種キャッシュ保存場所

利用するポート番号

以下のポート番号を利用してサービスを公開しますので、iptables等を利用されている場合は、下記のポート番号への外部からのアクセスを許可してください。

利用ポート番号
HTTPS443
Git SSH8972

ファイルデータの保存ディレクトリ

Backlogのファイルデータは、以下のディレクトリに保存されます。

data
├── attachment
│       └── pull_request
├── davsvn
│       ├── share
│       └── svn
├── elasticsearch
├── git
├── image
└── solr
        ├── issue
        ├── pull_request
        ├── shared_file
        └── wiki
ディレクトリのパス説明
data/attachment/pull_requestGit機能のプルリクエストに添付されたファイルが保存される
data/davsvn/shareファイル機能で管理されるファイルが保存される
data/davsvn/svnSubversion機能のリポジトリが保存される
data/elasticsearch検索のインデックス
data/gitGit機能のリポジトリが保存される
data/image画像ファイルが保存される
data/solr検索のインデックス

ログの保存ディレクトリ

<インストール先のディレクトリ>/logsに各サービスのログが保存されます。

logs
├── ${tag[1]} #ログの一時保存領域
│       └── ${tag[1]}
├── backlog-api
├── backlog-davsvn
├── backlog-davsvn-mntlog
│       ├── dav-job-worker
│       ├── httpd-davsvn
│       ├── svn-hook
│       └── svnserve
├── backlog-job-worker
├── backlog-solr
├── backlog-web
├── database-migration
├── elasticsearch
├── elasticsearch-init
├── git-http
├── git-rpc
├── git-rpc-mntlog
├── git-ssh
├── kanban-backend
├── kanban-notification
├── memcached
├── nginx
└── redis

.envのパラメーター

パラメーター名初期値説明設定ツールで入力
BACKLOG_DB_HOST接続先データベースのホスト✔︎
BACKLOG_DB_PORT接続先データベースのポート✔︎
BACKLOG_DB_NAME接続先データベースのスキーマ名✔︎
BACKLOG_DB_USER接続先データベースのユーザー名✔︎
BACKLOG_DB_PASSWORD接続先データベースのパスワード✔︎
BACKLOG_SMTP_HOSTSMTPサーバーのホスト✔︎
BACKLOG_TIMEZONEタイムゾーン✔︎(初回のみ)
BACKLOG_MAIL_NOTIFICATIONS_ADDRESS_FORMATBacklogから送信されるメールの送信元メールアドレス
指定しない場合は、課題の登録などを実行した人のメールアドレスになるため、なりすましやスパムと判定される場合があります。
BACKLOG_WEB_PLAY_SESSION_SECRET_KEY設定ツールで自動生成された値このパラメーターは変更しないでください
BACKLOG_API_PLAY_SESSION_SECRET_KEY設定ツールで自動生成された値このパラメーターは変更しないでください
FIXED_IP_ADDRESS_PREFIX10.254.249Docker Composeのネットワークに使用する固定IPのプレフィックス
LOG_REMAIN_DAYS7ログの保存期間
LDAPS_USINGfalseLDAPS通信の有無
GIT_SSH_HOST_PRIVATE_KEY_ENC設定ツールで自動生成された値このパラメーターは変更しないでください
KANBAN_OAUTH2_CLIENT_ID設定ツールで自動生成された値このパラメーターは変更しないでください
BACKLOG_DATA_DIRECTORY./dataBacklogのデータディレクトリのパス
BACKLOG_LOG_DIRECTORY./logsログディレクトリ
BACKLOG_CERT_DIRECTORYSSL証明書と秘密鍵のディレクトリ✔︎(初回のみ)
BACKLOG_WEB_JAVA_OPTS’-Xmx2048M -Xms512M -XX:MaxMetaspaceSize=512m’backlog-webのJVM起動オプション
BACKLOG_API_JAVA_OPTS’-Xmx1024M -Xms512M -XX:MaxMetaspaceSize=512m’backlog-apiのJVM起動オプション
BACKLOG_JOBWORKER_JAVA_OPTS’-Xmx1024M -Xms512M -XX:MaxMetaspaceSize=256m’backlog-job-workerのJVM起動オプション
BACKLOG_KANBAN_JAVA_OPTS’-Xmx1024M -Xms512M -XX:MaxMetaspaceSize=256m’kanban-backendのJVM起動オプション
BACKLOG_WEB_DB_MAXIMUM_POOL_SIZE10backlog-webのDB接続コネクション最大数
BACKLOG_API_DB_MAXIMUM_POOL_SIZE10backlog-apiのDB接続コネクション最大数
BACKLOG_DAVSVN_START_SERVERS5backlog-davsvnのHTTPサーバーの設定
詳しくは こちら
BACKLOG_DAVSVN_MIN_SPARE_SERVERS5backlog-davsvnのHTTPサーバーの設定
詳しくは こちら
BACKLOG_DAVSVN_MAX_SPARE_SERVERS10backlog-davsvnのHTTPサーバーの設定
詳しくは こちら
BACKLOG_DAVSVN_MAX_REQUEST_WORKERS256backlog-davsvnのHTTPサーバーの設定
詳しくは こちら
BACKLOG_DAVSVN_MAX_CONNECTIONS_PER_CHILD0backlog-davsvnのHTTPサーバーの設定
詳しくは こちら

データをバックアップする

Backlogで扱うデータは以下に保存されています。これらのファイルは定期的にバックアップすることを推奨します。

詳細設定ファイルを作成する

docker-compose.ymlと同じ階層にdocker-compose.override.ymlを作成します。
docker-compose.override.ymlには、変更したいサービスとその設定値を記載します。
作成後は、起動と同じコマンドで再起動してください。

version: "3"

services:
  backlog-web:
    environment:
    ...

  backlog-api:
    environment:
    ...

詳しくは以下のサイトをご覧ください。
https://docs.docker.jp/compose/extends.html#understanding-multiple-compose-files

Active Directoryと連携する

LDAPSポート番号を変更する

LDAPS接続する場合は、詳細設定ファイルにLDAPSポート番号を記載します。
編集後は、起動と同じコマンドで再起動してください。

backlog-api:
  environment:
    - LDAPS_PORT=8636 #デフォルト 636

backlog-web:
  environment:
    - LDAPS_PORT=8636 #デフォルト 636

Active Directory証明書サービスを使用する

LDAPS接続を利用し、かつActive Directory証明書サービスを利用した場合は、Active Directory証明書サービスで発行した証明書を任意のディレクトリに配置し、詳細設定ファイルに以下の内容を追記します。
編集後は、起動と同じコマンドで再起動してください。

backlog-api:
  volumes:
    - /path/to/cert/dir:/mnt/certs #`/path/to/cert/dir`を証明書を配置したディレクトリに書き換えてください
  command: -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true

backlog-web:
  volumes:
    - /path/to/cert/dir:/mnt/certs #`/path/to/cert/dir`を証明書を配置したディレクトリに書き換えてください
  command: -Dcom.sun.jndi.ldap.object.disableEndpointIdentification=true

Active Directoryを用いてユーザーを作成する

Active Directoryの情報を利用してBacklogユーザーを作成できます。
操作する際には、あらかじめActive Directory用のゾーン定義や、SRVリソースレコードを設定しておいてください。
Windows Server 2012 R2、Windows Server 2016、Windows Server 2019でのActive Directoryに対応しています。

詳しい操作方法はヘルプページを参照してください。

検索インデックスを再生成する

キーワード検索の結果が正しく表示されない場合、検索インデクシングを再生成するコマンドを実行してください。インデクシングデータが多い場合、再生成には時間がかかります。

課題検索(課題一覧)に問題があるとき

以下を実行してください。

docker-compose up elasticsearch-tool

グローバルバーの全体からキーワード検索に問題があるとき

以下を実行してください。

docker-compose up solr-tool

検索インデックスの再生成の速度を変更する

詳細設定ファイルのインデクシングジョブの制限値を変更します。
編集後は、起動と同じコマンドで再起動してください。

backlog-job-worker:
  environment:
    - BACKLOG_WORKER_JOB_INDEXING_ISSUE_JOB_PERMITS=16 #デフォルト 6

リクエストのパケットサイズ上限を変更する

Wikiの文字数が多すぎて保存ができなくなった場合などは、詳細設定ファイルのパケットサイズの制限値を変更します。
編集後は、起動と同じコマンドで再起動してください。

backlog-api:
  environment:
    - MAX_MEMORY_BUFFER=25MB #デフォルト 20MB
    - MAX_DISK_BUFFER=25MB #デフォルト 20MB

backlog-web:
  environment:
    - MAX_MEMORY_BUFFER=25MB
    - MAX_DISK_BUFFER=25MB

Nginxの同時接続数の最大値を変更する

以下のコマンドでnginx.confをローカルにコピーします。
編集後は、起動と同じコマンドで再起動してください。

docker-compose cp nginx:/etc/nginx/nginx.conf .

nginx.confを編集し、docker-compose.override.ymlを編集します。

nginx:
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf

nginx.confの設定について詳しくは以下のサイトをご覧ください。
nginx documentation

MySQL 5.7の利用時の注意点

クエリキャッシュを無効にする

my.cnfでquery_cache_typeに0を指定してクエリキャッシュを無効にしてください。
BacklogがMySQL 8.0に対応したことにより、MySQLのクエリキャッシュを有効にするとBacklogが正しく動作しなくなるおそれがあります。
なお、MySQL 5.7でquery_cache_typeのデフォルト値は0のため、my.cnfで設定していない場合は追加する必要はありません。

[mysqld]
max_allowed_packet = 16M
character-set-server=utf8mb4
sql_mode = "NO_ENGINE_SUBSTITUTION"
query_cache_type = 0

[mysql]
default-character-set=utf8mb4

[client]
default-character-set=utf8mb4

商標について

  • MySQLとJavaは、Oracle Corporation及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
  • Dockerは、米国及びその他の国におけるDocker, Inc. の商標または登録商標です。
  • Nginxは、米国及びその他の国におけるNginx Software Inc. 及びその子会社、関連会社の登録商標です。
  • Active DirectoryとWindows Serverは、米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
  • その他記載されている会社名および商品名は各社の登録商標または商標です。