torutkのブログ

ソフトウェア・エンジニアのブログ

GitLabとGitBucketとお試しインストール

一つのGitリポジトリを雑多な用途で使用すると、必要なプログラムやデータだけを扱いたいのにリポジトリ全体をクローンして扱う必要があります。といって、小さな用途が多数あるような場合、一つ一つにGitリポジトリを設けるのも手間がかかってしまいます。

そういう場合に、GitHubのようなサーバーが欲しくなります。オープンソースGitHubクローンのGitLabや、GitBucketを使うとよさそうです。

GitLab

Community EditionがMITライセンスで公開されています。
https://about.gitlab.com/downloads/

CentOS 6用のRPMパッケージを入手できます。書かれた手順でも動くのですが、少し補足しておきます。

  • gitlab-ctl reconfigureを実行する前に、/etc/gitlab/gitlab.rbを編集する
    • external_urlをマシンに合わせて変更
  • lokkit は、iptablesを書き換えてしまうので要注意
    • 必要なhttp、sshポートをACCEPTする設定なのですが、事前に設定していたhttpsが消えてしまった
  • 実行は、gitlab-ctl startです
    • Nginx、PostgreSQL、redis、sidekiq、unicornが動作します
    • apachehttpd)が動作しているとポート80が競合して動かないので停止させる必要があります
  • 停止は、gitlab-ctl stopです

GitBucket

GitBucketのリリースページから最新バージョンのwarファイルをダウンロードします。
https://github.com/takezoe/gitbucket/releases

  • ダウンロードしたwarファイルをjavaで実行します
serviceとして起動終了させるには

GitBucketのリポジトリに、Red Hat Enterprise Linux向けのサービス起動用スクリプトが置かれていました。
https://github.com/takezoe/gitbucket/tree/master/contrib/redhat

また、RPMパッケージ作成用のSPECファイルも同じ場所に置かれています。
これをいじればよさそうです。

contrib/redhatの下の次のファイルを、RPMビルド用のツリーに配置します。

$ cp gitbucket.conf ~/rpm/SOURCES/
$ cp gitbucket.init ~/rpm/SOURCES/
$ cp gitbucket.spec ~/rpm/SPECS/

gitbucket.specのバージョン番号を、リリースバージョン番号に書き換えます。

rpmbuildを実行してRPMを作成します。

$ rpmbuild -ba rpm/SPECS/gitbucket.spec
  :

生成したRPMをインストールします。

$ cd ~/rpm/RPMS/noarch
$ sudo yum localinstall gitbucket-2.0-1.el6.noarch.rpm

インストールしただけでは、chkconfigにgitbucketが追加されなかったので、chkconfigに追加します。

$ sudo chkconfig --add gitbucket

設定ファイルが/etc/sysconfig/gitbucketに置かれているので適宜修正します。
ポート番号はデフォルトが8080です。

サービスを起動します。

$ sudo service gitbucket start

ファイアウォールiptables)を稼動しているときは、ポート番号を通過可能にします。

$ sudo iptables -I INPUT 6 -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

挿入箇所(上述コマンド実行例では6を指定)は実際に合わせます。