Raspberry Pi3B+でRedmineサーバーを構築してみた


概要

RaspberryPi3B+でRedmineを構築し、自宅で24H365Dでの常時稼働をさせます。
今回は、3B+から可能になったMicroSD以外のストレージからの起動を利用して、MicroSDを利用せずに64GBの余っていたUSBメモリに全部入れて動かします。

構築後の状態

Raspbianを使わず、Ubuntu20.04LTS(64bit)を使用します。
(せっかくarm64対応なので・・・)

所感

ラズパイで動くからしょうがないよね。と思うぐらい投稿や設定などの反映などあらゆる箇所で「ぐぬぬぬ」というぐらい待たされます。ラズパイ4ならもっと速いと思うのですが、この辺りを留意してもらえれば読み進めてください。

必要なもの

  • RaspberryPi3B+
    • 最初の設定時は、キーボード(USB)とHDMI出力でディスプレイ、有線LANが必要です。
  • USBメモリ(64GB)
  • 別途macOSやWindows、LinuxなどのPCが必要です。(今回はWindows10のPCを使用してます)
    • USBメモリにOSを入れるとき
    • SSHで接続するとき

やってみる

STEP1:USBメモリにUbuntu20.04LTSを書き込む

まずは、USBメモリにUbuntu20.04LTSを入れます。

RaspberryPiのサイトに行き、Pi-ImagerをDLしてWindowsPCにインストールします。
https://www.raspberrypi.org/software/

Pi-Imagerをインストールしたら、USBメモリをPCにさして、Pi-Imagerを起動します。

Pi-Imager v1.6.1

「CHOOSE OS」では、「other general purpose OS」-「Ubuntu」-「Ubuntu Server20.04.2LTS(RPi3/4/400)[64bit]
「CHOOSE STORAGE」では、挿入したUSBメモリを選択します。
「WRITE」ボタンを押して、書き込みます。
※ざっと20分ぐらいかかるでしょうか・・・

STEP2:Raspberry Pi3B+にUbuntuセットアップ

STEP1で作成したUSBメモリをRaspberryPi3B+のUSBポートに挿して電源ONにします。
(記載してませんが、HDMIにディスプレイ、USBにキーボード、LANポートにLANケーブルを接続しておいてください)
→よくやらかしますが、microSDは抜いておいてください。(どっちが起動してるかわからなくなるので)

起動したら、ログイン画面が表示されます。

Ubuntu 20.04.01 LTS ubuntu tty1

ubuntu login: ubuntu
Password:

初回は、idが「ubuntu」でpasswordも「ubuntu」です。
ログインすると、そのままpasswordの変更を要求されますので、変更してください。

★Ubuntuでは、初期状態でSSHがonになっているので、これ以降は、RaspberryPi側のディスプレイ、キーボードを抜いて、ほかのPCからTeraterm等でSSH接続して進めることができます。

OSをひとまず最新にします。(Pi-Imagerで最新を入れても最新ではないです)

$ sudo apt update
$ sudo apt upgrade -y
$ sudo apt dist-upgrade

$ sudo reboot

STEP3:諸々設定する

RedmineセットアップでSwap領域が足りない(3B+は1GBのメモリしかない)とか言われますので、いろいろ設定します。

SWAP領域を4GB確保する

下記を実行して、Swap領域を作成します。(4GBも要らないので2GBでもいいです)

$ sudo fallocate -l 4G /swapfile
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
$ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

一応、上記で再起動してもSwap領域が確保された状態になります。
Swap領域があるかは下記で確認します。

$ free

Hostnameを変更する

Hostnameの確認

$ sudo hostname

Hostnameを変更する。今回は「rasp3bp」にしてみる。

$ sudo hostnamectl set-hostname rasp3bp
$ sudo hostnamectl

   Static hostname: rasp3bp
         Icon name: computer
        Machine ID: 00000000000000000000000000000000
           Boot ID: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
  Operating System: Ubuntu 20.04.2 LTS
            Kernel: Linux 5.4.0-1033-raspi
      Architecture: arm64

Localeを変更する

Redmineで日本語の問題が出るので、ここでいろいろしておく。

$ sudo apt -y install language-pack-ja-base language-pack-ja
$ sudo localectl set-locale LANG=ja_JP.UTF-8
$ sudo localectl

   System Locale: LANG=ja_JP.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105

TimezoneをAsia/Tokyoにする

UTCになってるので、日本時間にする

$ sudo timedatectl set-timezone Asia/Tokyo
$ sudo timedatectl

               Local time: Wed 2021-04-14 21:27:19 JST
           Universal time: Wed 2021-04-14 12:27:19 UTC
                 RTC time: n/a
                Time zone: Asia/Tokyo (JST, +0900)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

STEP4:Redmineをインストールする

いざ、Redmineをインストールしますが、個人で使うのでSqliteを使います。(複数人同時接続では推奨されてない)

※インストールには数時間かかるので耐えましょう。

$ sudo apt install redmine-sqlite
$ sudo apt install apache2 libapache2-mod-passenger bundler imagemagick libmagick++-dev

000-default.confを編集します。

$ sudo vi /etc/apache2/sites-available/000-default.conf

「redmine-sqlite」を使ってインストールすると、redmineは「/usr/lib/redmine」に配置されます。
併せて、書き換えます。

000-default.conf
<VirtualHost *:80>
    DocumentRoot /usr/share/redmine/public
    PassengerHighPerformance on
    <Directory /usr/share/redmine/public>
        Allow from all
        Options -MultiViews
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

続いて、passenger.confを編集します。

$ sudo vi /etc/apache2/mods-available/passenger.conf
passenger.conf
<IfModule mod_passenger.c>
  PassengerRoot /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini
  PassengerDefaultRuby /usr/bin/ruby
  PassengerDefaultUser www-data
  RailsBaseURI /redmine
</IfModule>

最後に、Apache2.4を再起動します。

$ sudo service apache2 restart

STEP5:Redmineを設定する

Apacheを再起動後、Passengerが起動し終わるまで結構かかります。(10分とかw)
しっかり時間をおいてから、Redmineへアクセスします。

※今回は、サブディレクトリでredmineを提供してません。
Webブラウザで下記のように入力してアクセスしてみてください。

http://(サーバーのIP)/

無事RedmineのTOP画面が出てきたら、Redmineを使い始めます。

REDMINE.JPのページを参考にしてユーザーを作ったり、プロジェクトを作ったりして使い始めます。
https://redmine.jp/tech_note/first-step/admin/

あとがき

今回、RaspberryPi3B+を購入して、全然使っていなかったことからRedmineを立ち上げる流れになったのですが、Ubuntu20.04にRedmine4.1を入れる手順を進めても途中で止まってしまい、Raspbianで試しても止まってしまう(半日以上放置してたんですがすすまない)
redmine-sqliteという方法でインストールしようと思ったが、raspbianでは提供されておらず、残った手段を探してこうなったという感じです。