Redmine(スクラム、アジャイルプラグイン)の環境構築備忘録

# Redmineの環境を作成する機会があったのでメモ

- Dockerを使用
- https化はLet’s Encrypt(https-portal)を使用
- Redmineのバージョンは最新バージョン(4.1.1)
- MySQLを使用

## docker-compose(パスワードやドメイン名は適宜設定してください)

```yml:docker-compose.yml
version: '3'
services:
  redmine:
    image: redmine:4.1.1
    restart: always
    container_name: redmine_container
    environment:
      REDMINE_DB_MYSQL: mysql
      REDMINE_DB_DATABASE: redmine
      REDMINE_DB_USERNAME: redmine
      REDMINE_DB_PASSWORD: redmine
      REDMINE_DB_ENCODING: utf8mb4
      VIRTUAL_HOST: <設定したいドメイン名>
    expose:
      - 3000
    volumes:
      - ./redmine/files:/usr/src/redmine/files
      - ./redmine/log:/usr/src/redmine/log
      - ./redmine/plugins:/usr/src/redmine/plugins
      - ./redmine/public/themes:/usr/src/redmine/public/themes
    depends_on:
      - mysql
  mysql:
    image: mysql:5.7
    container_name: mysql
    restart: always
    environment:
      TZ: Asia/Tokyo
      MYSQL_ROOT_PASSWORD: redmine
      MYSQL_DATABASE: redmine
      MYSQL_USER: redmine
      MYSQL_PASSWORD: redmine
    volumes:
      - ./mysql-data:/var/lib/mysql
    command: mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_bin
  https-portal:
    image: steveltn/https-portal:latest
    ports:
      - '80:80'
      - '443:443'
    links:
      - redmine
    restart: always
    environment:
      DOMAINS: '<設定したいドメイン名> -> http://redmine_container:3000'
      STAGE: 'production'
      #FORCE_RENEW: 'true'
    volumes:
      - ./certs:/var/lib/https-portal

```

## https-portalとは？？
- Let’s Encryptを使用したSSL証明書の取得を簡単に設定することができる。
- https://github.com/SteveLTN/https-portal/blob/master/README.md

### STAGE
- production...SSL証明書を取得しに行く
- local...オレオレ証明書を設定

### FORCE_RENEW
- 基本使わない
- 強制的に証明書を発行する
- Let’s Encryptには制限があるので注意

### volumes
- 証明書を永続化するために、`/var/lib/https-portal`をボリュームに設定する


# [Scrum Redmine plugin](https://redmine.ociotec.com/projects/redmine-plugin-scrum)のインストール
### 1. Redmineのpluginディレクトリにプラグインを格納する  
- サンプルのdocker-compose.ymlのpluginディレクトリは`./redmine/plugins`  
- https://redmine.ociotec.com/projects/redmine-plugin-scrum/files

### 2. Redmineのコンテナ内に入り以下のコマンドを実行

```bash
$ RAILS_ENV=production bundle exec rake redmine:plugins:migrate
```

### 3. Redmine上でプラグインの設定  
- 設定例は以下の記事を参考  
  - [脱BackLogsスクラム開発(Ubuntu18.04 + sameersbn/Redmine3.4.6 + Scrum)](https://qiita.com/optman/items/33276347b5360fa4991e)
  
### 参考

- 公式のインストール手順
    - [redmine-plugin-scrum wiki](https://redmine.ociotec.com/projects/redmine-plugin-scrum/wiki)


# [Redmine Agile plugin (Light version)](https://www.redmineup.com/pages/plugins/agile)のインストール
### 1. 公式サイトから無料のLightプランをダウンロード
### 2. Redmineのpluginディレクトリにプラグインを格納する  
- サンプルのdocker-compose.ymlのpluginディレクトリは`./redmine/plugins` 

### 3. Redmineのコンテナ内に入り以下のコマンドを実行
```bash
$ bundle install --without development test --no-deployment
$ bundle exec rake redmine:plugins NAME=redmine_agile RAILS_ENV=production
```

### 参考

- 公式のインストール手順
    - [Installing Agile plugin on Linux](https://www.redmineup.com/pages/help/agile/installing-redmine-agile-plugin-on-linux?utm_source=Main&utm_medium=email&utm_campaign=Download_plugin_email&utm_term=download_plugin_email&utm_content=installation_guide)

## インストールが完了したらRedmineのプラグインページが表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/470777/8ff9804e-0a91-05d5-99d2-51b8d720aef6.png)