====== 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}}