Windowsマシンを社内gitサーバにする

# 説明

以前書いた
[Windows8マシンを社内gitサーバにする](http://qiita.com/satoshi0212/items/43dd0067d55040986633)
の増補追記版です。

Windows7上にも構築したので、対象を広げWindowsマシン全般としました。

追記:
「JCE管轄ポリシーファイル(無制限強度)のインストール」を追記しました。

# はじめに

無料で、10〜20人程度が使う、社内プライベートなgitサーバが必要でした。

ソフトウェアは、調査検討した結果「Gitblit」に落ち着きました。
(2014/12現在では、GitBucketも良さそうですね)

1年間以上運用していますがトラブルなく使用できています。

Gitblitのインストールは実はとても簡単です。
ポート番号指定して実行するだけ。

サービス化もすぐにできました。

# JREのインストール

バージョン7以降が必須です。
こちらからダウンロードしインストールします。

https://java.com/ja/download/

32bit版と64bit版があることに気を付けましょう。
動かしているOSのbit数に合わせます。

## JCE管轄ポリシーファイル(無制限強度)のインストール
暗号強度のポリシーファイルを更新します。

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

こちらからダウンロードしたファイルをインストールします。

デフォルトであれば以下のパスです。
Program Files/Java/jre[バージョン]/lib/security/

**local_policy.jar**
**US_export_policy.jar**

上記のファイルを(必要であれば退避し)上書きしてください。

# Gitblit GO のダウンロードとインストール

こちらより「Gitblit GO」をダウンロードします。

http://gitblit.com/

展開してC:¥直下にgitblitフォルダを配置。
(ここ以外に配置する場合、パスにスペースが無い方が良いようです)

### data/gitblit.propertiesの編集
propertiesファイルを2行編集します。

```lang:gitblit.properties
(前後略)
server.httpPort 任意のポート:(例) 8050
(中略)
server.storePassword 任意のパスワード
```

### gitblit.cmd実行
コマンドラインよりgitblit.cmdを実行します。
開始をしばし待ちましょう。

### ブラウザで動作確認
http://localhost:8050 (例)

Gitblitの画面が表示されたら成功です。
admin / adminでログインしてください。

そこまで確認できたら、コマンドプロンプトを閉じ、一度終了させておきます。

# サービス化

サービス化しWindowsを再起動しても自動で立ち上がるようにします。

### installService.cmd内容確認と実行

ARCH、StartParamsの内容を確認・変更します。

**SET ARCH=amd64**
32bitの場合、amd64をx86に変更

**--StartParams="--storePassword;**
パスワード値を変更します。初期値はgitblitになっていると思います。

```lang:installService.cmd
@REM Install Gitblit as a Windows service.

@REM gitblitw.exe (prunmgr.exe) is a GUI application for monitoring 
@REM and configuring the Gitblit procrun service.
@REM
@REM By default this tool launches the service properties dialog
@REM but it also has some other very useful functionality.
@REM
@REM http://commons.apache.org/daemon/procrun.html

@REM arch = x86, amd64, or ia32
SET ARCH=amd64

@REM Be careful not to introduce trailing whitespace after the ^ characters.
@REM Use ; or # to separate values in the --StartParams parameter.
"%CD%\%ARCH%\gitblit.exe"  //IS//gitblit ^
		 --DisplayName="gitblit" ^
		 --Description="a pure Java Git solution" ^
		 --Startup=auto ^
		 --LogPath="%CD%\logs" ^
		 --LogLevel=INFO ^
		 --LogPrefix=gitblit ^
		 --StdOutput=auto ^
		 --StdError=auto ^
		 --StartPath="%CD%" ^
		 --StartClass=org.moxie.MxLauncher ^
		 --StartMethod=main ^
		 --StartParams="--storePassword;上記で入力した任意のパスワード;--baseFolder;%CD%\data" ^
		 --StartMode=jvm ^
		 --StopPath="%CD%" ^
		 --StopClass=org.moxie.MxLauncher ^
		 --StopMethod=main ^
		 --StopParams="--stop;--baseFolder;%CD%\data" ^
		 --StopMode=jvm ^
		 --Classpath="%CD%\gitblit.jar" ^
		 --Jvm=auto ^
		 --JvmMx=1024
```

コマンドラインよりinstallService.cmdを実行します。

サービス一覧より確認すると
gitblitのサービスが追加されています。

サービス一覧で「自動」で開始するよう設定しましょう。

### 再度、ブラウザで動作確認
http://localhost:8050 (例)

Gitblitの画面が表示されたら成功です。

### 他のマシンからブラウザで動作確認
http://WindowsマシンのIPアドレス:8050 (例)

うおお！
Gitblitの画面が表示されたら大成功です。

# サービス化に失敗する場合
Gitblitフォルダのgitblitw.exeを実行し「Startup」タブの
Aruguments:内容を確認します。

このstorePasswordの値が、自分が入力した値になっているでしょうか。

# おわりに
Windowsでgitをホストしたい場合の参考になりましたら幸いです。