tanacasinoのメモ

what are you waiting for ?

Ubuntu 12.04 でGitBucketを動かす

@takezoeさんが作っているGitHubクローンであるGitBucketを動かしてみたのでそのメモ。Ubuntu 12.04 LTS 64bit でのお話。

GitBucketは、最低限のレポジトリ管理は可能ですが、いくつかの大事な機能はまだ作成中とのこと。(例えばpull request) Scalaで書かれているというだけでも十分心くすぐるアプリになってます。 最近画面のあるWebアプリに触れてなかったので、勉強の題材としてもいいかなと思って触ってみてます。 (RESTでJSONしか返してくれないインフラ構築Webアプリ?には毎日触れてたけど・・・)

GitBucketを動かすのは簡単でリリースされてるwarファイルを TomcatやJettyにデプロイするだけである。 GitBucketのリリースページ もしくは開発版を動かしたい場合はsbtを使用すればよい。

  1. Tomcat
  2. Jetty
  3. sbt

とりあえずの3パターンをメモしておく。

Tomcat で動かす

JDKUbuntuレポジトリにあるOpenJDKのパッケージを使うけどが、Tomcatはオフィシャルからtarボールをダウンロードしてきて展開したものを使う。

$ sudo apt-get install openjdk-7-jre
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.42/bin/apache-tomcat-7.0.42.tar.gz
$ tar xzf apache-tomcat-7.0.42.tar.gz
$ wget https://github.com/takezoe/gitbucket/releases/download/1.3/gitbucket.war
$ cp gitbucket.war apache-tomcat-7.0.42/webapps/
$ cd apache-tomcat-7.0.42/
$ ./bin/startup.sh
# デーモンで起動してくれるので、止める場合は以下を実施。
$ ./bin/shutdown.sh

以上でおしまい。これで8080をlistenしてTomcatが起動し、gitbukcetが使用出来ます。簡単。 http://localhost:8080/gitbucket/

初期ユーザはroot/rootで、gitbukcetのDBデータやgitレポジトリの実体は、すべて実行ユーザの$HOME/gitbucketというディレクトリ以下に保存されます。 お試ししていろいろ作ったり消したりしたら、このディレクトリを削除して再起動すればOK。

※ どうでもいい話。githubのリリースページからwarをダウンロードするとAmazon S3 からダウンロードされるようになってた。githubさんマジ洒落乙。

Jettyで動かす

Jettyも同様に、JDKUbuntuレポジトリにあるOpenJDK 7 を使用する。

$ sudo apt-get install openjdk-7-jre
$ wget "http://eclipse.org/downloads/download.php?file=/jetty/stable-9/dist/jetty-distribution-9.0.4.v20130625.tar.gz&r=1" -O jetty-distribution-9.0.4.v20130625.tar.gz
$ tar xzf jetty-distribution-9.0.4.v20130625.tar.gz
$ wget https://github.com/takezoe/gitbucket/releases/download/1.3/gitbucket.war
$ cp gitbucket.war jetty-distribution-9.0.4.v20130625/webapps/
$ cd jetty-distribution-9.0.4.v20130625
$ ./bin/jetty.sh start
# デーモンで起動してくれるので、止める場合は以下を実施。
$ ./bin/jetty.sh stop

sbtで動かす

Windowsの場合は、sbt.batがレポジトリに入ってるしドキュメントもあるのでそれを見るのが正解。 GitBucketの開発者向けドキュメント OSが変わっても、やり方はほぼ変わんないけど、せっかくだから書いておく。

  • 必要なパッケージをインストールする ( githubからソースを取得するのでgitを、Scalaで書かれているのでJDKとして OpenJDKを入れる。)
sudo apt-get install git openjdk-7-jdk
  • gitbucket を cloneしてくる
$ mkdir src
$ cd src
$ git clone https://github.com/takezoe/gitbucket.git
  • sbt.sh を作成する
$ cd gitbucket
$ cat << EOS > sbt.sh
java -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256m -Xmx512M -Xss2M -jar `pwd`/sbt-launch-0.12.3.jar "\$@"
EOS
$ chmod u+x sbt.sh
  • 実行!
# とりあえず動かす(テスター向け)初回はjarのダウンロードが始まるので結構時間かかります。。。
$ ./sbt.sh ~container:start

# 開発者向けのCCモードで使う
$ ./sbt.sh
…
> container:start
…
> ~ ;copy-resources;aux-compile