Windows でソース管理したくて本当は GitLab を使いたかったのだけれど簡単にはインストールできなそうなので GitBucket をインストールしてみました。
目次
準備
Java をインストール
Windows版Javaのダウンロード から最新をダウンロードしてインストールします。(投稿時 Version 8 Update 144 )
GitBucket を取得
GitBucket から gitbucket.war をダウンロードします。
念のため最新ではなくひとつ前のバージョンにしました。(投稿時 4.14.1 )
GitBucket プラグインを取得
GitBucket Community Plugins から必要なものをダウンロードします。
今回は、下記を使うことにしました。
MySQL をインストール
デフォルトで使われている H2 から MySQL へ変更するためにインストールします。
変更しないときは不要です。
MySQL :: Download MySQL Installer から最新をダウンロードしてインストールします。(投稿時 5.7.19.0 )
インストール
インストールは不要で即実行です。
ダウンロードした gitbucket.war を適当なフォルダに移動します。
今回は C:\Dev\GitBucket へ移動しました。
Windows キーを押下して cmd と入力後 Enter キーを押下してコマンドプロンプトを起動します。
gitbucket.war の保存先へ移動します。
C:\Users\miyabis> cd /d C:\Dev\GitBucket
下記を入力して実行します。
C:\Dev\GitBucket> java -jar gitbucket.war
ブラウザで http://localhost:8080/ にアクセスするとトップページが表示されます。
設定
このままでも良いのですが、ポートやデータの保存先、ログイン方法等を環境に合わせて変更します。
ポートとデータ保存先の変更
ポートは 8200 、保存先は C:\Dev\GitBucket に変更します。
変更は起動時にパラメータを指定します。
C:\Dev\GitBucket> java -jar gitbucket.war --port=8200 --gitbucket.home=C:\Dev\gitbucket
毎回入力するのは手間なので C:\Dev\GitBucket フォルダに下記の内容で gitbucket.bat ファイルを作成します。
java -jar gitbucket.war --port=8200 --gitbucket.home=C:\Dev\gitbucket
データベースの変更
H2 から MySQL に変更します。
MySQL Workbench を起動してデータベースとユーザーを作成します。
インストール時に作成したデフォルトのインスタンスに接続し、Query のエディタータブで下記を実行します。
CREATE DATABASE gitbucket;
GRANT ALL ON gitbucket.* to gitbucket@localhost IDENTIFIED BY 'パスワード';
FLUSH PRIVILEGES;
接続先を MySQL に変更します。
C:\Dev\GitBucket フォルダに下記の内容で database.conf ファイルを作成します。
db {
url = "jdbc:mysql://localhost:3306/gitbucket?useUnicode=true&characterEncoding=utf8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&useSSL=false"
user = "gitbucket"
password = "パスワード"
}
ログイン方法の変更
LDAP 認証
社内で使うとなると ActiveDirectory のユーザーで使いたいのでユーザー登録制ではなく LDAP 認証にします。
- root でサインインします。(デフォルトではユーザー名とパスワードは同じ)
- 右上のユーザーメニューから System administration をクリックします。
- 左メニューの System settings をクリックします。
- Authentication の LDAP に✔を入れます。
各項目は下記の通りです。例) ad.domain.com に接続するとして
LDAP host:ad.domain.com
LDAP port:389
Bind DN:ActiveDirectory に接続するためのユーザー(hoge@domain.com)
Bind password:Bind DN で指定したユーザーのパスワード
Base DN:DC=domain,DC=com
User name attribute:sAMAccountName
Additional filter condition:
Full name attribute:displayName
Mail address attribute:mail
Enable TLS:
Enable SSL:
Keystore:ホスト名はコマンドプロンプトで下記のコマンドを実行するとわかります。
C:\Dev\GitBucket> echo %logonserver:~2%.%userdnsdomain%
- 自分のログインユーザーでログインします。
root ユーザーの無効化
LDAP認証で root ユーザーでログインすると ActiveDirectoy へ認証しにいってしまいます。
企業の場合、不正アクセスとしてみなされてセキュリティ事故扱いされかねません。
root ユーザーは使わず管理者を自分へ変更します。
- gitbucket.conf ファイルの名前を gitbucket.conf.bak に変更する。
- gitbucket.conf.bak ファイルの中の ldap で始まる行をすべて削除しファイル名を gitbucket.conf として保存する。
- gitbucket を起動しなおします。
- root でログインします。
- System administration メニューにて User management から自分のユーザーの Edit をクリックします。
- User Type を Administrator に変更します。
- Update user ボタンをクリックして保存します。
- gitbucket.conf ファイルの名前を gitbucket.conf.org に変更する。
- gitbucket.conf.bak ファイルの名前を gitbucket.conf に変更する。
- gitbucket を起動しなおします。
- 自分のログインユーザーでログインします。
- System administration メニューにて User management から root の Edit をクリックします。
- Disable に✔を入れて Update user ボタンをクリックして保存します。
もしログインできなくなったときは gitbucket.conf ファイルの中の ldap で始まる行をすべて削除すると LDAP 認証の設定が初期化されます。
サービス起動
サービス起動にするならGitBucket を Windows サービスとして起動させてみたを参照してください。