GitHub をシゴトで使いたいけど、GitHubEnterprise は $5000 / 20 User / year かかるので、お手軽に使える GitHub クローンを探してみた。
ホスティング環境はコスト重視で DigitalOcean を選択。
GitBucket を稼働するまでをまとめておく。
DigitalOcean とは?
平たくいえば、レンタルサーバーのクラウド版。
他には AmazonEC2 や さくらのVPS なんかがある。
DigitalOcean の特徴は SSD で提供されているところ。
あと後発のサービスということもあって、値段が安い。
海外のサービスだけど、中1レベルの英語がわかれば問題なく使える。
今回初めて使ったのでアカウントを作った。
↓ちなみにここでアカウントを作成してもらえると、アフィリエイトがもらえて嬉しいです。。
https://www.digitalocean.com/?refcode=348c173d9100
参考:徳丸浩の雑記帳: 試験環境用VPSとして1時間1円から使えるDigitalOceanが安くて便利
マシンを調達
無事アカウントを作成できたら、早速マシンを調達する。
まずは適当な HostName を入力。
構成は一番安い 1CPU 512MB $5.00/month を選択。
ほぼワンコインという素晴らしいコストパフォーマンス!!
リージョンはどこでもいいので初期選択のまま。
サンフランシスコのほうが近いって情報をどっかで見た気がする。
OS は Ubuntu 14.04 x64 を選択。
Ubuntu 初めて使うけど、気にしない。
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 となっている。
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)
- 作者: 大塚弘記
- 出版社/メーカー: 技術評論社
- 発売日: 2014/03/20
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
チーム開発実践入門 ~共同作業を円滑に行うツール・メソッド (WEB+DB PRESS plus)
- 作者: 池田尚史,藤倉和明,井上史彰
- 出版社/メーカー: 技術評論社
- 発売日: 2014/04/16
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (6件) を見る