Redmine を ポータブル化してUSBで持ち運べるようにした

0.目的

インストール無しにRedmineをUSBなどに入れて、どこでも動かせるようにする。なお、Rubyについては全くわからない人なので、理解不足なところはご容赦を。

とりあえず起動までできたけど、時間がかかりすぎて動作確認ができてません。動かなくてもご容赦を

2.環境

以下、2021/2/27 時点で最新のバージョンのもの

OS Windows 10 Pro 64bit
JVM jdk-15.0.2
Redmine 4.1.1
JRuby 9.2.15.0
SQLite 3.34.1

3.必要なものをダウンロード

以下必要なものをダウンロードする

<https://www.oracle.com/java/technologies/javase-jdk15-downloads.html>

  • Redmin 4.1.1 : redmine-4.1.1.zip をダウンロードする

<https://www.redmine.org/projects/redmine/wiki/Download>

  • JRuby 9.2.15.0 : JRuby 9.2.15.0 Binary .zip をダウンロードする

<https://www.jruby.org/download>

<http://www.imagemagick.org/script/download.php>

<https://www.sqlite.org/download.html>

redmine-4.1.1.zip を解凍する。以降 $REDMINE_BASE$ とする。

この $REDMINE_BASE$ の中に jdk / JRuby / SQLite / imageMagick をフォルダ単位で突っ込む

ちょうど以下のような感じになる。

0228

コマンドプロンプトを立ち上げ REDMINE_BASE に移動する。その後以下のコマンドを実行し、PATHを通しておく

set REDMINE_BASE=%CD%
set JAVA_HOME=%REDMINE_BASE%\jdk
set SQLITE_HOME=%REDMINE_BASE%\sqlite
set IMAGICK_HOME=%REDMINE_BASE%\ImageMagick
set JRUBY_HOME=%REDMINE_BASE%\jruby
set PATH=%PATH%;%JAVA_HOME%\bin
set PATH=%PATH%;%JRUBY_HOME%\bin

念の為 PATH が通っていることを確認する。それぞれバージョンが出てくればOK

java -version
jruby -v

4.redmine/Gemfileの設定

$REDMINE_BASE$/redmine に移動し Gemfile を開く。その後以下のように変更/追記して保存する

  • racc と jdbcsqlite3-adapter を rbpdf の下に追記する (raccが無いとダメ)
gem "rbpdf", "~> 1.20.0"
↓
gem "rbpdf", "~> 1.20.0"
gem "racc"
gem "activerecord-jdbcsqlite3-adapter"
  • tzinfo-data の余計な文字を削る
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :x64_mingw, :mswin]
↓
# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data'
  • redcarpetをコメント (JRubyでは動かないため)
# Optional Markdown support, not for JRuby
group :markdown do
  gem "redcarpet", "~> 3.5.0"
end
↓
# Optional Markdown support, not for JRuby
# group :markdown do
#   gem "redcarpet", "~> 3.5.0"
# end

5.redmine/DBの設定

$REDMINE_BASE$/redmine/config に移動し database.yml.example をコピーし database.yml に変更後、テキストエディタで開き、以下のように変更していく

  • Production/development/test を全てSQLite(JDBC接続) に変更する
production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: root
  password: ""
  # Use "utf8" instead of "utfmb4" for MySQL prior to 5.7.7
  encoding: utf8mb4
↓
production:
  adapter: jdbcsqlite3
  database: db/redmine_prod.db
  encoding: utf8
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
↓
development:
  adapter: jdbcsqlite3
  database: db/redmine_dev.db
  encoding: utf8
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
↓
test:
  adapter: jdbcsqlite3
  database: db/redmine_test.db
  encoding: utf8

6.各種インストール等

以降マニュアルに従っていく。$REDMINE_BASE$/redmine に移動する

  • bundler をインストール
gem install bundler
  • redmineに必要なものをすべてインストール
bundle install --without development test
bundle exec rake generate_secret_token

コマンド終了後にメッセージ等が出てこないので、以下に が作成されていて、中にそれらしきものが出力されていればOK

$REDMINE_BASE$\redmine\config\initializers\secret_token.rb

  • データベースのテーブル等の作成

公式マニュアル通り

set RAILS_ENV=production
bundle exec rake db:migrate
  • デフォルトデータ

公式マニュアル通り

set REDMINE_LANG=ja
bundle exec rake redmine:load_default_data

6. 動作確認

以下のコマンドを実行し、admin/admin でログオンできればOK。起動するのにちょっと時間がかかる

bundle exec rails server webrick -e production

7. 起動バッチ

以下のようなバッチファイルを作っておいて、そこから起動するとOK。終了時は Ctrl+C しないとpidファイルが残って次が面倒になるので注意

@echo off
set REDMINE_BASE=%CD%
set JAVA_HOME=%REDMINE_BASE%\jdk
set JRUBY_HOME=%REDMINE_BASE%\jruby
set PATH=%PATH%;%JAVA_HOME%\bin
set PATH=%PATH%;%JRUBY_HOME%\bin
jruby jruby\bin\rails server webrick -e production
pause