素晴らしいプロジェクト管理システムが色々とSaaSで提供されていますが、無料で利用できるオープンソースのプロジェクト管理ソフトウェアのRedmineサーバを構築し運用してみると最低限の機能は、十分活用できたので構築メモを作成しました。(2023年5月18日構築時の情報)
運用に関しては、書籍「逆引きでわかる! Redmineハンドブック バージョン5.0対応」を参考に行いました。
(前提条件)
・ Postfix、http(s)、MariaDBの構築が完了していること
・ 作業は、すべて管理者権限(root)で実施すること
・ Redmineの利用は、他のサービス(Wordpress等)と同居するので「/redmine」でアクセス
ruby & rails のインストール
Redmineは、ruby & rails を使用しているのでインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
git clone https://github.com/sstephenson/rbenv.git /usr/local/rbenv /usr/local/rbenv/bin/rbenv init echo 'export RBENV_ROOT=/usr/local/rbenv' >> ~/.bashrc echo 'export PATH="/usr/local/rbenv/bin:$PATH"' >> ~/.bashrc echo 'eval "$(rbenv init -)"' >> ~/.bashrc source ~/.bashrc type rbenv git clone https://github.com/rbenv/ruby-build.git /usr/local/rbenv/plugins/ruby-build ls /usr/local/rbenv/plugins/ruby-build/bin dnf install -y gcc openssl-devel readline-devel zlib-devel ghostscript MariaDB-devel rbenv install -l 3.0.6 3.1.4 3.2.2 jruby-9.4.2.0 mruby-3.2.0 picoruby-3.0.0 truffleruby-22.3.1 truffleruby+graalvm-22.3.1 Only latest stable releases for each Ruby implementation are shown. Use 'rbenv install --list-all / -L' to show all local versions. (注意)ruby-3.1 版で動作確認したので、この時点で、最新版の3.1.4 が表示されたので、これを使用する。 rbenv install 3.1.4 rbenv global 3.1.4 ruby -v ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [x86_64-linux] gem -v 3.3.26 gem update --system gem -v 3.4.13 gem install rails rails -v Rails 7.0.4.3 gem info rails *** LOCAL GEMS *** rails (7.1.3.2, 6.1.7.7) Author: David Heinemeier Hansson Homepage: https://rubyonrails.org License: MIT Installed at (7.1.3.2): /usr/local/rbenv/versions/3.1.5/lib/ruby/gems/3.1.0 (6.1.7.7): /usr/local/rbenv/versions/3.1.5/lib/ruby/gems/3.1.0 Full-stack web application framework. ※ Redmineは、railsのバージョン6系を使用します。 |
Redmineのインストール
バージョン 5.0.4 をインストール
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
wget https://www.redmine.org/releases/redmine-5.0.4.tar.gz tar zxvf redmine-5.0.4.tar.gz mv redmine-5.0.4 /usr/local/redmine cd /usr/local/redmine mysql -p -u root CREATE DATABASE redmine CHARACTER SET utf8mb4; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'DB用パスワード'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost'; QUIT; cd config cp database.yml.example database.yml vi database.yml ---------------------------------------------------------------------- production: adapter: mysql2 database: redmine host: localhost username: root password: "DB用パスワード" # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7 encoding: utf8mb4 ---------------------------------------------------------------------- cp configuration.yml.example configuration.yml vi configuration.yml ---------------------------------------------------------------------- email_delivery: # ==== Simple SMTP server at localhost # # email_delivery: delivery_method: :smtp smtp_settings: address: "localhost" port: 25 ---------------------------------------------------------------------- cd /usr/local/redmine bundle install --without development test bundle exec rake generate_secret_token RAILS_ENV=production bundle exec rake db:migrate RAILS_ENV=production bundle exec rake redmine:load_default_data 'ja' を入力 mkdir -p tmp tmp/pdf public/plugin_assets chmod -R 755 files log tmp public/plugin_assets # chown -R apache:apache files log tmp public/plugin_assets chown -R apache:apache . bundle add webrick bundle exec rails server -u webrick -e production (動作確認) http://サーバIPアドレス:3000 で動作確認(ユーザ:admin、パスワード:admin) 動作確認後に割り込み(Ctrl+c)で終了 |
Apache Passengerのインストール
3000番ポートでの運用は嫌、httpsを運用しているので、個別設定ではなく「Apche httpd」に同居させたいので「Passenger」をインストール
「Passenger」のインストール
1 2 3 4 |
dnf -y install libcurl-devel httpd-devel apr-devel apr-util-devel gem install passenger passenger-install-apache2-module Enterキーを3回入力 |
Apache httpdの設定
上記の「passenger-install-apache2-module」でApcheの設定が出力されるので、そのモジュール内容を記載(各バージョンでパスが異なる)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
LoadModule passenger_module /usr/local/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/passenger-6.0.17/buildout/apache2/mod_passenger.so <IfModule mod_passenger.c> PassengerRoot /usr/local/rbenv/versions/3.1.4/lib/ruby/gems/3.1.0/gems/passenger-6.0.17 PassengerDefaultRuby /usr/local/rbenv/versions/3.1.4/bin/ruby </IfModule> Header always unset "X-Powered-By" Header always unset "X-Runtime" PassengerMaxPoolSize 30 PassengerMaxInstancesPerApp 20 PassengerPoolIdleTime 864000 #PassengerHighPerformance on PassengerStatThrottleRate 10 PassengerSpawnMethod smart PassengerFriendlyErrorPages off |
1 2 3 4 5 6 7 8 9 10 |
<Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /usr/local/redmine Require all granted </Location> <Directory "/usr/local/redmine/public"> Options None AllowOverride None </Directory> |
再起動
1 |
systemctl restart httpd |
再起動後の1回目のアクセスは、時間を要するので注意。
環境設定
cron設定
(設定内容)
・ 再起動直後にアクセスすると時間を要するため毎朝5:00にダミーアクセスを行う。
・ 期限切れのチケット情報を毎朝9:00に担当者にメールで送信する。
1 2 |
0 5 * * * /usr/bin/wget -O /dev/null https://FQDN/redmine >/dev/null 2>&1 0 9 * * * /usr/local/sbin/Redmine_send_reminders.sh |
1 2 3 4 5 6 |
#!/bin/sh source /root/.bashrc cd /usr/local/redmine bundle exec rake redmine:send_reminders days=5 RAILS_ENV=production |
ログローテーション
ログ(/usr/local/redmine/log/production.log)が肥大化するのでログローテーションに追加
・ production.logのローテート
1 |
config.logger = Logger.new("log/#{Rails.env}.log", 10, 10240000) |
Redmine動作確認
https://FQDN/redmine
初期ユーザ/パスワード:admin / admin
→ 初回ログイン後にパスワード変更
※ 初期検討・設定項目(詳細は、書籍等で確認)
管理
ロールと権限
トラッカー
設定 > 全般
プロトコル
テキスト形式(Textile) ※ 最初に決定すること(運用中に変更は表示が乱れる可能性)
設定 > 表示
テーマ
設定 > 認証
認証が必要 はい
ユーザーによるアカウント登録 無効
「パスワードの最低必要文字数」
「パスワードの必須文字種別」
二要素認証
設定 > プロジェクト
設定 > ファイル
設定 > メール通知
プラグイン