簡単にできるかと思ったら、結構嵌ってしまったので備忘録としてメモしたいと思います。
インストール先の環境
- OS は Ubuntu 18.04.3。
- イメージは bitnami-redmine-4.0.4-5-linux-x64-installer.run
- さくら VPS 上に構築。
- 先にインストールした apache があるため、ポートは 10080, 10443 を使う。
- git は bitnami に付いてくるものを使う。
イメージを落としてくるところまでは出来ているものとします。
Bitnami redmine のインストール
デフォルトとの差は、subversion を No、メール送信を No、Git を Yes に設定したくらい。
インストールが長いが(特にゲージが100%に達してからが)、我慢して待つ。
途中でredmine/mariaDB のユーザ/パスワードの設定を聞かれるので、適切な値を入れる。
パスワードは英文字と数字しか入れられないようです。(ハイフンは入るかも)
インストールが終了すると http://127.0.0.1:10080/ にアクセスするように求められるので、ssh トンネルか何かを作ってアクセスする。
(と言うものの、phpmyadmin のようにローカルアドレスをチェックしていない模様。)
さくら VPS の場合はデフォルトでファイアウォールがブロックしているので、su になって
ufw allow to [Global IP] port 10443
でパケットの透過を許可するようにする。
WebDAV の設定
CGI で設定するのが本当はよいらしいのですが、今回は WebDAV を使います。
apache2 以下の conf/bitnami/bitnami.conf に以下を追加。
Alias /git /opt/redmine-4.0.4-5/git/repo
DavLockDB "/opt/redmine-4.0.4-5/apache2/var/git/DavLock"
<Location /git>
DAV on
AuthType Basic
AuthName "git repository"
AuthUserFile "/opt/redmine-4.0.4-5/git/gitpasswd"
Require valid-user
</Location>
DavLock ファイルを touch し、ユーザを daemon に変更します。
gitpasswd に htpasswd を使ってパスワードを追加します。
(bitnami の apache2/bin/ 以下にあります。)
/opt/redmine-4.0.4-5/apps/redmine/htdocs/config/configuration.yml ファイルに
<pre?
scm_git_command: /opt/redmine-4.0.4-5/git/bin/git
を設定します。
Git の設定
一番嵌ったところです。
まず、Git 用のレポジトリを作成し、グループ、ユーザを daemon に変更しておきます。
今回は /opt/redmine-4.0.4-5/git/repo というディレクトリを作成しました。
例として sample というプロジェクトを作成することにすると、
mkdir sample.git
cd sample.git
git --bare init --shared=true
git --bare update-server-info
cd ..
chown -R daemon:daemon sample.git
として初期レポジトリを作成します。4行目と最後の行が重要。
ローカルマシンに移り、
export GIT_SSL_NO_VERIFY=1
とした後、git clone https://<Global IP>:10443/git/sample.git を実行してレポジトリが取れることを確認します。取れない時はエラーログが出ているので確認します。
sample.git に中に入り、README.txt を作ってみます。
cd sample.git
touch README.txt
git add README.txt
git commit -m 'readme'
.git の下にある config の url に htpasswd で追加したユーザ名を追加します。仮に myname としたとすると、
[remote "origin"]
url = https://myname@sample.com:10443/git/sample.git/
のようにサーバ名の前にユーザ名を追加します。
git push が実行できることを確認します。ブランチが指定されていないと怒られたときは git push origin master とします。
Redmine のプロジェクトを追加
最後に管理権限を持ったユーザで Redmine にログインし、「管理」タブを選択してプロジェクトを作成します。リポジトリをどうするか聞かれるので、Git を選択し、上で作ったディレクトリ名(例の場合は /opt/redmine-4.0.4-5/git/repo/sample.git)を指定します。保存後、Redmine の「リポジトリ」タグを選択します。ここで404エラーが出てくる場合はパスを確認します。
おまけ
付属する bncert-tool を使うと、Let's Encrypt で証明書を生成することが可能ですが、ポート番号が 80, 443 固定であったため、利用をあきらめ、さくらで取ったサーバ証明書を流用しました。
apache2/conf 以下の server.key, server.crt を入れ替えれば動作します。