GitHubいいよね!というのは分かるけど、業務で使おうとすると
- 業務のセンシティブな内容(製品のソースコードやChefレシピに書かれたサーバの構成とか)を他所のサーバに置くことに抵抗があるけど、プライベートリポジトリ作るにはお金がかかる
- 勉強でちょっと試したいだけなので、アカウントはまだとりたくない
といったことで使うのに躊躇するいケースもあるかと思います。
ということで、ローカルにインストールして使えるGitHub cloneのgitbucketを使ってみることにしました。また、個人的な趣味からFreeBSD(10.0)でのインストールにチャレンジ。
#とりあえずjavaとtomcat7を入れる
何も考えずに
sudo pkg install tomcat7
servlet3.0必須なんでtomcat7で。これでopenjdk7も入ります。
ついでにこのタイミングでtomcat動くかも確認しておきましょう。
/etc/rc.confに1行追加。
tomcat7_enable="YES"
それから、WEBページ経由でtomcatにアプリケーションをデプロイできるようにユーザも設定しときましょう。
例としてユーザ名tomcat、パスワードtompassの場合。/usr/local/apache-tomcat-7.0/conf/tomcat-users.xmlを編集。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<user username="tomcat" password="tompass" roles="manager-gui"/>
</tomcat-users>
起動。
sudo /usr/local/etc/rc.d/tomcat7 start
適当なブラウザからローカルホストのtomcatにアクセスしてみましょう。
localhostでなくて、マシンに設定したIPアドレスでもOK。
こんな感じで表示されたらOK。
#gitbucket取ってくる
git cloneとかでもいいけど、とりあえずリリースページからwarファイルを取得。
先ほどアクセスしたtomcatのページの「Manage App」ボタンを押す。IDとパスワード求められるので、先ほど設定したtomcat/tompassでログイン。
あとはwarファイルの設置で先ほどダウンロードしたgitbucket.warを指定して「配備」を押したら完了。
#起動しない!
はい、多分この通りにやるとgitbucket起動しません。
何故かというと、gitbucketは起動時にレポジトリを「起動ユーザのホーム直下に作った.gitbucketディレクトリ」または「環境変数GITBUCKET_HOMEで指定されたディレクトリ」に作成しようとするからです。
FreeBSDだとtomcatの起動ユーザはwww、そのディレクトリは/nonexistent。そりゃ書き込めるわけない。
ユーザwwwのホームディレクトリを変えてもいいですが、ここはGITBUCKET_HOMEで指定してやりましょう。
#設定追加
起動スクリプトである/usr/local/etc/rc.d/tomcat7を見ると、どうも${_tomcat_catalina_base}/bin/setenv.shまたは/usr/local/apache-tomcat-7.0/bin/setenv.shというファイルを実行した上で起動してくれるようなので、こいつに書いてやりましょう。
新規ファイルとして/usr/local/apache-tomcat-7.0/bin/setenv.shに以下の内容を記載します。
#!/bin/sh
export GITBUCKET_HOME=/home/gitbucket
もちろん、書き込み可能なディレクトリも作っておきます。
sudo mkdir /home/gitbucket
sudo chown www:www /home/gitbucket
で、再起動。restartでもいいかもだけど念のためにstop→start。
sudo /usr/local/etc/rc.d/tomcat7 stop
sudo /usr/local/etc/rc.d/tomcat7 start
tomcatのアプリケーションマネージャから確認するか、実際にgitbucketにアクセスして起動してればめでたしめでたし。
#まとめ
- GitHubクローンのgitbucket入れてみましょう
- tomcat7に配備するだけだから動かすのは楽ちん。
- ただし、レポジトリデータ等の保存先ディレクトリの設定は気をつけようね。ログにも出ないよ