VPSにGitLabをインストール
プライベートなリポジトリにBitbucketを使っているんですが、なんだかんだで使いにくい。そこで、お手軽とはいかないけど人気のGitHubクローンということで、GitLab使ってみます。
プロジェクトページの手順の通りにやればいいんだけど、ちょっと手を抜いて違う手順でインストールしたのでメモ。
構成
- CentOS 6.2
- Ruby 1.9.3-p194
- Gitolite 3.2
- GitLab 3.0.3
準備
とりあえず必要そうなのを入れます。足りない物があればbundle installで怒られると思うので都度入れていけばいいと思います。
sudo yum install libxml2-devel libxslt-devel libicu-devel sqlite-devel redis
Redisを起動+自動起動。いわゆるNoSQLってやつで、使うのは今回が初めて。
sudo chkconfig redis on
sudo service redis start
GitoliteとGitLabのユーザを分けずにgitユーザだけで設定します。ここから先はgitユーザで作業します。
sudo useradd git
sudo passwd git
su - git
rbenv派です。GitLabに合うバージョンのRubyが導入済みの場合は読み飛ばしてください。
git clone http://github.com/sstephenson/rbenv.git ~/.rbenv
git clone http://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
~/.bash_profile
PATH=$HOME/.rbenv/bin:$PATH:$HOME/bin
export PATH
eval "$(rbenv init -)"
rbenv install 1.9.3-p194
rbenv global 1.9.3-p194
gem install bundler
rbenv rehash
Gitoliteインストール
SSHの鍵はgitlabとか分かりやすい名前にした方がいいかも。
git config --global user.email "git@example.com"
git config --global user.name "gitadmin"
git clone git://github.com/sitaramc/gitolite
ssh-keygen -t rsa -N ""
gitolite/install
gitolite/src/gitolite setup -pk ~/.ssh/id_rsa.pub
chmod -R g+rwX repositories/
~/.gitolite.rc
UMASK => 0007, # 0077 -> 0007
GIT_CONFIG_KEYS => '.*', # '' -> '.*'
~/.ssh/config
Host localhost
Port <SSHのポート番号>
chmod 600 ~/.ssh/config
GitLabインストール
SQLite大好きなのでDBはSQLiteを使います。たぶんMySQL使う人が多いだろうけど。
git clone -b stable git://github.com/gitlabhq/gitlabhq.git
cd gitlabhq
cp config/gitlab.yml.example config/gitlab.yml
cp config/database.yml.sqlite config/database.yml
環境に合わせてgitlab.ymlとdatabase.ymlを編集したらセットアップ。
bundle install --without development test mysql postgres --deployment
bundle exec rake gitlab:app:setup RAILS_ENV=production
cp ./lib/hooks/post-receive ~/.gitolite/hooks/common/post-receive
chmod 750 /home/git/.gitolite
./resque.sh
あとは手順どおりにWebサーバや起動スクリプトを設定すればOKです。