RaspberryにRedmine6を立てる

タイトル通り、Raspberry に、Redmineサーバを準備してみます。
誤解を生みそうですが、運用目的でセットアップするわけではありません。
最近では、Windowsサーバをクラウドでリースして、Bitnamiで簡単にセットアップ…で運用開始は出来ますが、バージョンアップしたい、移設したいと、使い込めば要望は尽きず…
でも、簡単に始めたものだから、そんな要望に応えるには、知識も技術も足らず困難…と。

**今回の目的**
Raspberry PI に、Redmineサーバを準備してみる事で、Debianに、Redmineを準備するプロセスを学んでみようと思います。

**Raspberryの準備**
Raspberry 本体は、4以上でメモリ多めを推奨します。
（以前、仮想svのLinuxで、メモリ不足でinstallが完了しない悲劇にあった事が…）
Raspberry Pi OS は Lite（64bit／Debian GNU/Linux 12 bookworm）を利用します。
最終的に、以下のバージョンで構築されます。
ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [aarch64-linux-gnu]
Apache/2.4.62 (Debian)
redmine 6.0
psql (PostgreSQL) 15.10 (Debian 15.10-0+deb12u1)
Phusion Passenger(R) 6.0.23

**各種インストールとセットアップ**
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install postgresql
sudo apt-get install apache2 apache2-dev
sudo apt-get install ruby ruby-dev
sudo apt-get install subversion

sudo mkdir /home/redmine
sudo groupadd redminegrp
sudo useradd -g redminegrp -d /home/redmine redmine
sudo passwd redmine　（パスワードを決めましょう）
sudo passwd postgres　（パスワードを決めましょう）
sudo vi /etc/postgresql/15/main/pg_hba.conf　（パスワードで利用する為変更）
```diff_conf:pg_hba.conf
- local all all peer
+ local all all md5
```
sudo vi /etc/postgresql/15/main/postgresql.conf　（ローカル利用を明示）
```diff_conf:postgresql.conf
- #listen_addresses = 'localhost'
+ listen_addresses = 'localhost'
```
sudo reboot　（再起動して設定変更を適用）
su - postgres　（ssh実行ユーザ切替）
createuser -P redmine　（redmine用DBユーザ）
createdb -E UTF-8 -O redmine -T template0 redmine　（データベース作成）
exit　（postgresユーザ作業終了）
sudo mkdir /test
sudo chmod 777 -R /test
cd /test
svn co https://svn.redmine.org/redmine/branches/6.0-stable/ redmine
sudo chmod 777 -R redmine
cd redmine/config
cp database.yml.example database.yml
vi database.yml　（不要な行は全てコメントアウトする事）
```diff_conf:database.yml
production:
  adapter: postgresql
  database: redmine
  host: localhost
  username: redmine
  password: "パスワード"
```
cd /test/redmine

sudo apt install libyaml-dev
sudo apt-get install libpq-dev
sudo gem install bundler
vi Gemfile　（テストの為にwebrickを入れましょう）
```diff_conf:Gemfile　（最下段に１行追加します）
gem "webrick"
```
bundle config set --local without 'production:rmagick'
sudo bundle install　（かなり時間が掛かります）

:::note warn
色々とエラーが発生する箇所です
エラーの文面が読み解ければ良いですが、英語は…それも長文…　orz
とりあえず、流し読みで構わないので、エラー個所から下へ、拾える単語だけ拾って見て行くと、このライブラリが足らないから、このコマンドでINSTALLしてね…みたいな文面が見つかるはずです。
この辺りは経験がモノを言う世界なので、苦しんで身に付けましょう。
エラーをAiに聞いて、対応を検討して貰うのも有効です。
:::

sudo bundle exec rake generate_secret_token
　「/test/redmine/config/initializers/secret_token.rb」が作成されます
RAILS_ENV=production bundle exec rake db:migrate　（DBの初期作成）
RAILS_ENV=production bundle exec rake redmine:load_default_data　（日本語）
bundle exec rails server -u webrick -e production　（稼働テストをしましょう）
起動に時間が掛かるので、しばらく時間をおいて、以下のURLへアクセスしてみましょう
「http://IPアドレス:3000」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878922/06fc6a9f-5aaf-14d5-4f70-9df4db342ea9.png)
ホーム画面が起動すれば、Redmineのセットアップは終了です。

次にApacheへ連携します。
sudo apt-get install libcurl4-openssl-dev 
sudo apt-get install zlib1g-dev
sudo gem install passenger
sudo passenger-install-apache2-module　（非常に長い処理です…）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3878922/4fff75cf-f275-769b-e594-a1ab68ec9144.png)

:::note warn
ここも色々とエラーが発生する箇所です。
でも、エラーは確認しやすいので、頑張って身に付けましょう。
:::
 
sudo vi /etc/apache2/ports.conf
```diff_conf:ports.conf　（１行追加します）
Listen 3000
```
sudo vi /etc/apache2/sites-enabled/redmine.conf
```diff_conf:redmine.conf
<VirtualHost *:3000>
    DocumentRoot /test/redmine/public
    <Directory "/test/redmine/public">
        Allow from all
        Require all granted
    </Directory>
    Alias /redmine /test/redmine/public
    <Location /redmine>
        PassengerBaseURI /redmine
        PassengerAppRoot /test/redmine
    </Location>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
LoadModule passenger_module /var/lib/gems/3.1.0/gems/passenger-6.0.23/buildout/apache2/mod_passenger.so
    <IfModule mod_passenger.c>
         PassengerRoot /var/lib/gems/3.1.0/gems/passenger-6.0.23
         PassengerDefaultRuby /usr/bin/ruby3.1
</IfModule>
```
sudo chown -R www-data:www-data /test/redmine
sudo systemctl restart apache2
しばらく時間をおいて、以下のURLへアクセスしてみましょう
「http://IPアドレス:3000/redmine」
初期ログイン時のユーザID／パスワードは、「admin」です。
お疲れさまでした～