====== 06 GitPrep ======
GitPrepはGithubのクローン、ポータブルなGithubシステムをUnix/LinuxにインストールできるWebアプリケーショGitPrepです。
[[https://github.com/yuki-kimoto/gitprep/releases]]
===== 1.インストール =====
gitはインストールしておく。[[01_linux:01_net:35_gitインストール]]
==== ソースwget ====
# wget https://github.com/yuki-kimoto/gitprep/archive/latest.tar.gz
# mv gitprep-latest gitprep
==== 設定ファイル修正 ====
git_binのパスと、ssh_rep_urlをを修正
$ diff gitprep.conf gitprep.conf.org
11c11
< ssh_rep_url_base=
---
> ;ssh_rep_url_base=/git
16c16
< git_bin=/usr/bin/git
---
> ;git_bin=/usr/local/bin/git
35c35
< authorized_keys_file=/home/gitprep/.ssh/authorized_keys
---
> ; authorized_keys_file=/home/gitprep/.ssh/authorized_keys
48c48
< listen=http://*:10020
---
> ;listen=http://*:10020
52c52
< on=1
---
> ;on=1
==== authorized_keys用意 ====
$ ssh-keygen
$ touch ~/.ssh/authorized_key
$ chmod 600 ~/.ssh/authorized_key
==== セットアップ ====
$ cd gitprep
$ bash -x setup.sh
==== Mojolicousの起動スクリプト用意 ====
$ cat << EOM > gitprep/mojo.sh
#!/bin/sh
DIR=$(dirname $0)
PERL5LIB="$DIR/mojo/lib:$DIR/extlib/lib/perl5"
#MOJO_LOG_LEVEL='debug'
HOME=$(egrep ^$(whoami): /etc/passwd |awk -F ":" '{print $6}')
export PERL5LIB MOJO_LOG_LEVEL HOME
exec $DIR/mojo/script/hypnotoad $* $DIR/script/gitprep --foreground
EOM
=== Mojolicousの起動 ===
$ nohup ./mojo.sh &
== Mojolicousの自動起動スクリプト ==
$ vi bin/check_gitprep.sh
#!/bin/bash
netstat -ant | grep ':10020'
if [ $? -eq 0 ];then
echo OK
else
nohup bash ~/public_html/gitprep/mojo.sh &
fi
==== SSL設定 ====
# REVERSE_PROXY=$(cat << EOS
Order deny,allow
Allow from all
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://localhost:10020/ keepalive=On
ProxyPassReverse / http://localhost:10020/
RequestHeader set X-Forwarded-HTTPS "1"
EOS
)
# perl -i.org -nle "s%^%$REVERSE_PROXY%;print;" /etc/httpd/conf.d/ssl.conf
# /etc/init.d/httpd reload
===== git on SSL =====
SSLに対してgitコマンドで実行してもエラーになる。
$ git clone https://gitprep.example.jp:10443/matsui/test.git
Cloning into test...
error: SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed while accessing https://gitprep.example.jp:10443/matsui/test.git/info/refs
fatal: HTTP request failed
==== 対処 ====
これでSSLでもいけるようになる。
# git config --global http.sslVerify false
===== upgrate =====
=== 1.念の為バックアップ ===
$ rsync -av gitprep/ gitprep.`date "+%Y%m%d"`/
=== 2.レポジトリを最新にする ===
※gitprep.repoディレクトリレポジトリを入れてるものとして
レポジトリがない場合は、下記のコマンドでcloneしておく。
git clone https://github.com/yuki-kimoto/gitprep.git gitprep.repo
$ cd gitprep.repo
$ git pull
=== 3.全て上書き ===
$ rsync -av gitprep.repo/ gitprep/
=== 4.confを戻す ===
$ cp gitprep.`date "+%Y%m%d"`/gitprep.conf gitprep/gitprep.conf
=== 5.setup.sh実行 ===
$ cd gitprep/
$ bash -x setup.sh
=== 6.mojo.sh再起動 ===
mojo.shを起動しなおせば完了
{{tag>git}}