- ホーム
- マニュアル
- セットアップスクリプト
- Redmine
Redmineセットアップスクリプトを利用する
対象
1.Redmineについて
1-1.Redmineとは
Redmineは、プロジェクト管理や課題管理を行うためのオープンソースのWebアプリケーションです。
プロジェクトごとにタスクを「チケット」として登録し、進捗状況を管理できます。
Webブラウザから利用でき、チームでのプロジェクト管理などに活用できます。
1-2.特徴
| 特徴 | 説明 |
|---|---|
| チケット管理 | タスクをチケットとして登録し、担当者やステータスを管理できます。 |
| プロジェクト管理 | 複数のプロジェクトを作成し、メンバーや権限、チケットなどを管理できます。 |
| ガントチャート | 登録したチケットの開始日をもとに、プロジェクトを視覚的に確認できます。 |
| Wiki | プロジェクトごとにWikiを作成し、情報を共有できます。 |
1-3.活用例
| 活用例 | 説明 |
|---|---|
| タスク管理 | 作業内容をチケットとして登録し、進捗状況を管理できます。 |
| 不具合管理 | システムで発生した不具合を登録し、対応状況を管理できます。 |
| プロジェクト管理 | プロジェクトの進捗状況を管理できます。 |
| 情報共有 | Wikiやファイル機能を利用して、情報をメンバー間で共有できます。 |
2.Redmineセットアップスクリプトの利用手順
本手順ではサーバーを契約してRedmineの仮想マシンを構築することを前提とします。
既存のサーバーをRedmineに置き換える場合は、「OS再インストール」からRedmineのセットアップスクリプトを利用してください。
1.「お申し込み」をクリック
XServerアカウントへログインし、「お申し込み」をクリックしてください。

2.セットアップスクリプトを選択
「お申し込み」一覧の「VPS(Linux系サーバー)」をクリックしてください。

「OSを選択してインストール」をクリックし、対応する以下のOS・バージョンを選択してください。
その後、「セットアップスクリプト」から「Redmine」を選択してください。

お申し込み・お支払いを完了することで、選択したスクリプトがサーバー構築時に自動実行されます。
本セットアップスクリプトで実行される処理は以下のとおりです。
スクリプトを表示
# Redmine
set -euo pipefail
REDMINE_VERSION="6.1.1"
RAILS_VERSION="7.2.3"
DB_NAME="redmine"
DB_USER="redmineuser"
DB_PASS=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1 || true`
DB_ROOTPW=`cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1 || true`
## install
for i in {1..5}; do
DEBIAN_FRONTEND=noninteractive apt update -y \
&& DEBIAN_FRONTEND=noninteractive apt install -y \
apache2 \
apache2-bin \
apache2-data \
apache2-dev \
apache2-utils \
ruby-full \
libapr1-dev \
libaprutil1-dev \
libcurl4-openssl-dev \
mariadb-server \
mariadb-server-core \
mariadb-client \
mariadb-client-core \
mariadb-common \
libmariadb3 \
libmariadb-dev \
git \
curl \
build-essential \
libssl-dev \
libreadline-dev \
zlib1g-dev \
nodejs \
libffi-dev \
libyaml-dev \
unzip \
&& break
[[ "$i" -eq 5 ]] && exit 1 || sleep 5
done
systemctl enable --now apache2
systemctl enable --now mariadb
for i in {1..10}; do
systemctl is-active --quiet apache2.service \
&& systemctl is-active --quiet mariadb.service \
&& break
sleep 3
done
## mysql
sudo mysql <<MYSQL
CREATE DATABASE IF NOT EXISTS ${DB_NAME};
CREATE USER IF NOT EXISTS '${DB_USER}'@'localhost' IDENTIFIED BY '${DB_PASS}';
GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'localhost';
ALTER USER 'root'@'localhost' IDENTIFIED BY '${DB_ROOTPW}';
FLUSH PRIVILEGES;
MYSQL
## install rails
export HOME=/root
cd ~
gem install rails -v ${RAILS_VERSION}
gem install bundler
## Redmine
curl -fL \
--retry 10 \
--retry-delay 5 \
--retry-connrefused \
--retry-all-errors \
-o "/tmp/redmine.zip" \
"https://www.redmine.org/releases/redmine-${REDMINE_VERSION}.zip" \
--fail
unzip /tmp/redmine.zip -d /var/www/html/
chown -R www-data:www-data /var/www/html
mv /var/www/html/redmine-${REDMINE_VERSION} /var/www/html/redmine
rm -f /var/www/html/index.html
rm -f /tmp/redmine.zip
cat > /var/www/html/redmine/config/database.yml <<EOF
# Default setup is given for MySQL 5.7.7 or later.
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).
production:
adapter: mysql2
database: redmine
host: localhost
username: redmineuser
password:
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
encoding: utf8mb4
#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
#username: root
#password: ""
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
#encoding: utf8mb4
# Warning: The database defined as "test" will be erased and
# re-generated from your development database when you run "rake".
# Do not set this db to the same as development or production.
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
# encoding: utf8mb4
# PostgreSQL configuration example
#production:
# adapter: postgresql
# database: redmine
# host: localhost
# username: postgres
# password: "postgres"
# SQLite3 configuration example
#production:
# adapter: sqlite3
# database: db/redmine.sqlite3
# SQL Server configuration example
#production:
# adapter: sqlserver
# database: redmine
# host: localhost
# username: jenkins
# password: jenkins
EOF
sed -i "s|password:.*|password: \"${DB_PASS}\"|" /var/www/html/redmine/config/database.yml
sed -i 's/\r$//' /var/www/html/redmine/bin/*
cd /var/www/html/redmine
mkdir -p tmp tmp/pids tmp/cache tmp/sockets log
bundle install
gem install passenger
passenger-install-apache2-module --auto
SECRET_KEY_BASE=$(bin/rails secret)
if [ ! -f config/master.key ]; then
EDITOR="tee" bin/rails credentials:edit <<EOF
secret_key_base: ${SECRET_KEY_BASE}
EOF
fi
chown www-data:www-data config/master.key
chmod 600 config/master.key
bundle exec rake db:migrate RAILS_ENV=production
bundle exec rake redmine:load_default_data RAILS_ENV=production <<EOF
ja
EOF
bundle exec rake assets:precompile RAILS_ENV=production
chown -R www-data:www-data /var/www/html/redmine
cat > /etc/apache2/conf-available/redmine.conf <<EOF
<Directory "/var/www/html/redmine/public">
Require all granted
Allow from all
Options Indexes FollowSymLinks
</Directory>
LoadModule passenger_module $(passenger-config --root)/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot $(passenger-config --root)
PassengerRuby $(which ruby)
</IfModule>
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerStatThrottleRate 10
EOF
a2enconf redmine
sed -i 's|DocumentRoot /var/www/html|DocumentRoot /var/www/html/redmine/public|' /etc/apache2/sites-available/000-default.conf
systemctl restart apache2
cat > /etc/motd <<EOF
================================================
Redmine application
Redmine URL: http://${IPADDR}/
Redmine Admin Login: admin/admin
MySQL root password: ${DB_ROOTPW}
MySQL redmine user name: redmineuser
MySQL redmine user pass: ${DB_PASS}
MySQL redmine DB name: redmine
To delete this message: rm -f /etc/motd
===============================================
EOF
3.事前準備
3-1.パケットフィルターの設定
Redmineを利用するには、使用する機能に応じて必要なポートを開放する必要があります。
コントロールパネルの「パケットフィルター設定」画面から、該当のポートを許可するルールを追加してください。
基本ポート
| 用途 | ポート番号 | 目的 |
|---|---|---|
| SSH | TCP 22 | Tera TermなどのSSHクライアントを使ってサーバーに接続する場合。 |
| HTTP | TCP 80 | WebブラウザからRedmineへHTTPでアクセスする場合。 |
| HTTPS | TCP 443 | SSL/TLS設定後、WebブラウザからRedmineへHTTPSでアクセスする場合。 |
パケットフィルターの設定は下記マニュアルからご確認ください。
パケットフィルターの設定について
3-2.サーバーに接続
3-3.Redmineの接続情報を確認
VPSへログインすると、以下のようなRedmineへの接続に必要な情報が表示されます。
================================================ Redmine application Redmine URL: http://XXX.XXX.XXX.XXX/ Redmine Admin Login: admin/admin MySQL root password: ******** MySQL redmine user name: redmineuser MySQL redmine user pass: ******** MySQL redmine DB name: redmine To delete this message: rm -f /etc/motd ===============================================
「Redmine URL」はRedmineへアクセスする際に使用します。
「Redmine Admin Login」は、Redmineへ初回ログインする際の管理者アカウントのログイン情報です。
※初回ログイン時に、「admin」ユーザーのパスワードが変更されます。
3-4.Redmineの動作確認
RedmineのWebサーバーの動作状況は、以下のコマンドで確認できます。
systemctl status apache2
「active (running)」と表示されていれば、Webサーバーは正常に起動しています。
終了する場合は「q」キーを押してください。
Webサーバーが起動していない場合は、以下のコマンドで再起動できます。
systemctl restart apache2
再起動後、再度状態を確認してください。
systemctl status apache2
3-5.ドメインの準備
RedmineのWebインターフェースを安全に利用するため、SSL/TLSによる暗号化通信(HTTPS)の利用を推奨します。
「XServerのサブドメイン」を使用する場合、選択したVPSのIPアドレスが、自動的に「Aレコード」に設定されます。
独自のドメインを使用する場合、DNSの「Aレコード」にVPSのIPアドレスを設定してください。
4.Redmineセットアップ手順
本手順では、SSL/TLSによる暗号化通信(HTTPS)の利用を前提とした接続手順を案内しています。
暫定的に暗号化なし通信(HTTP)でRedmineにアクセスする場合は、パケットフィルタによる接続元IPアドレス制限を実施してください。
4-1.Redmineへアクセス
「3-3.Redmineの接続情報を確認」で確認した「URL」へWebブラウザからアクセスしてください。
https://<VPSのIPアドレス>/
ドメインを設定している場合は、VPSのIPアドレスの代わりに設定したドメインを指定してください。
https://<指定したドメイン>/
Redmineの画面が表示されることを確認してください。
※アクセスできない場合は、「3-4.Redmineの動作確認」を実施し、Webサーバーが正常に起動していること、およびパケットフィルターでTCP 443が許可されていることを確認してください。
4-2.Redmineへログイン
1.「ログイン」をクリック
Redmineの画面右上にある「ログイン」をクリックしてください。

2.管理者アカウントでログイン
3.パスワードを変更
ログインが成功すると、新しいパスワードの入力画面が表示されます。
「パスワード変更画面」で新しいパスワードを入力して「適用」をクリックします。

4.セットアップ完了
パスワードが更新され、Redmineの個人設定画面が表示されます。

以上でRedmineのセットアップは完了です。
4-3.SSL/TLS設定
セキュリティ対策として、RedmineにはSSL/TLS(HTTPS)による暗号化通信の導入を推奨しています。
通信を暗号化することで、ログイン情報やRedmine上の通信内容が第三者に盗聴・改ざんされるリスクを軽減できます。
「Let's Encrypt」を利用することで、無料でSSL証明書を取得できます。
SSL/TLSを設定する場合は、事前にドメインのDNS設定を行い、VPSへ正しくアクセスできる状態にしてください。
設定方法につきましては、以下のマニュアルをご参照ください。
Let's Encryptのインストール手順
5.その他詳細情報
Redmineのプロジェクト管理やチケット、ユーザー管理、その他の機能についてはRedmine公式ガイドをご確認ください。
インストールや動作環境に関する詳細については、Redmine公式インストールガイドをご確認ください。


