読者です 読者をやめる 読者になる 読者になる

GitHub クローンの GitBucket を月500円で利用する

サービス紹介 ハック やってみた

GitHub をシゴトで使いたいけど、GitHubEnterprise は $5000 / 20 User / year かかるので、お手軽に使える GitHub クローンを探してみた。


GitBucket


ホスティング環境はコスト重視で DigitalOcean を選択。


GitBucket を稼働するまでをまとめておく。


DigitalOcean とは?

平たくいえば、レンタルサーバークラウド版。
他には AmazonEC2さくらのVPS なんかがある。
DigitalOcean の特徴は SSD で提供されているところ。
あと後発のサービスということもあって、値段が安い。


海外のサービスだけど、中1レベルの英語がわかれば問題なく使える。
今回初めて使ったのでアカウントを作った。


↓ちなみにここでアカウントを作成してもらえると、アフィリエイトがもらえて嬉しいです。。
https://www.digitalocean.com/?refcode=348c173d9100


参考:徳丸浩の雑記帳: 試験環境用VPSとして1時間1円から使えるDigitalOceanが安くて便利


マシンを調達

無事アカウントを作成できたら、早速マシンを調達する。


まずは適当な HostName を入力。
構成は一番安い 1CPU 512MB $5.00/month を選択。
ほぼワンコインという素晴らしいコストパフォーマンス!!

DigitalOcean SelectSize


リージョンはどこでもいいので初期選択のまま。
サンフランシスコのほうが近いって情報をどっかで見た気がする。

DigitalOcean SelectRegion


OS は Ubuntu 14.04 x64 を選択。
Ubuntu 初めて使うけど、気にしない。

DigitalOcean SelectImage

CreateDropret をクリックすれば、60秒ほどで立ち上がる。


立ち上がると、DigitalOcean で登録したメルアドにroot のパスワードが届く。


GitBucket インストール

ログイン

まずは SSH でログイン。
パスワードはさっき書いたとおり、メールからコピペ。

ssh root@xxx.xxx.xxx.xxx


Java のインストール

GitBucket は Java で動く。
素の Ubuntu 環境に Java が入っていないので、Java をインストール。

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer


参考:http://ubuntuhandbook.org/index.php/2014/02/install-oracle-java-6-7-or-8-ubuntu-14-04/


GitBucket のインストール

https://github.com/takezoe/gitbucket/releases

↑から最新の gitbucket.war のURLをコピー。
wget でファイルを持ってくる。

wget https://github.com/takezoe/gitbucket/releases/download/2.2.1/gitbucket.war

本来はサービスで動かしたいが、まずは動作が見れればいいので直接実行。

java -jar gitbucket.war &


僕の場合はドメインも取ってないので、IP 直接入力で稼働を確認した。
デフォルトではポートが 8080 となっている。

GitBucket


Tomcat を使ってサービスで動かす

サービスで動かすまで

sudo apt-get install openjdk-7-jre
wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-7/v7.0.55/bin/apache-tomcat-7.0.55.tar.gz
tar xzf apache-tomcat-7.0.55.tar.gz
# GitBucket を Tomcat の公開ディレクトリに移動
mv gitbucket.war apache-tomcat-7.0.55/webapps/gitbucket.war
cd apache-tomcat-7.0.55/
# 起動
bin/startup.sh
# 終了
bin/shutdown.sh

参考:Scala - Githubクローン界の新星 GitBucket を Ubuntu 12.04 で動かす - Qiita


Tomcat はデフォルト設定だと http://(hostname):8080/(appname) に配置する。
http://(hostname):8080 のほうがスマートなので、設定をいじる。

vi conf/server.xml

root で war ファイルをダウンロードした前提の設定は以下。

<Host name="localhost"  appBase="webapps" 
        unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/root/gitbucket.war" reloadable="true"> #このセクションを追加。
    </Context>
</Host>

参考:java - Tomcat 6: How to change the ROOT application - Stack Overflow


本当はもう少しスマートな設定があるはず。
それにしても、Windows が主戦場なためか、ついサービスって言葉を使ってしまう。
デーモンって呼ぶのが適切なのかな。


設定変更後は再度 Tomcat を起動し直せばOK。

# 終了
bin/shutdown.sh
# 起動
bin/startup.sh


http://(hostname):8080 でアクセスできればOK。
おつかれさまでした!!


おまけ

実は GitLab も試していた。
ただ要求されるハードスペックの問題か、うまくインストールができなかったり、すぐに落ちたりしてた。
トラブルシューティングのスキルがそこまで高くないので、3, 4回インストールしたところで投げた。


この点、GitBucket は特に問題なく動作している。
ありがたや。


最後に

このエントリで細かいことは書かないけど、セキュリティを高める対応は必要。
たとえば、Linux マシンの root ユーザの ssh を制限したり、DigitalOcean のアカウントに2段階認証つけたり。
このへんは詳しくないので自己責任でお願いします。


GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)

チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)