Gitlab
といえば環境構築が非常に手間のかかる作業と思っていたのですが、どうやら最近はパッケージ一つで簡単に立てられるようです。
以下、CentOS6.4にて
https://www.gitlab.com/downloads/ から環境にあったパッケージをダウンロード
wget https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-6.9.1_omnibus-1.el6.x86_64.rpm
openssh-serverとpostfixが必要になるので導入していない場合はインストールする
yum install openssh-server yum install postfix
Gitlab omnibusインストール
rpm -i gitlab-6.9.1_omnibus-1.el6.x86_64.rpm
起動する
gitlab-ctl reconfigure gitlab-ctl start
おしまい
しかしこのパッケージ、デフォルトで動かすといくつかの問題があります。
Apacheが死ぬ
Gitlab omnibusではnginxを80番で使用するため、既に80番で動いてるサービスがあると上書きされてしまいます。
リバースプロキシを設定することで回避できます。
/etc/gitlab/gitlab.rb
external_url "http://gitlab.icchy.net:8081"
virtual.conf
<VirtualHost *:80> ServerName gitlab.icchy.net DocumentRoot /opt/gitlab/embedded/service/gitlab-rails/public CustomLog /var/log/httpd/gitlab_access.log combined ErrorLog /var/log/httpd/gitlab_error.log ErrorDocument 502 /502.html <Directory "/opt/gitlab/embedded/service/gitlab-rails/public"> Options FollowSymLinks </Directory> <Proxy *> AddDefaultCharset off Order deny,allow Allow from all </Proxy> ProxyVia On ProxyPreserveHost On ProxyRequests Off ProxyPass /assets/ ! ProxyPass /Uploads/ ! ProxyPass / http://gitlab.icchy.net:8081/ retry=1 ProxyPassReverse / http://gitlab.icchy.net:8081/ </VirtualHost>
重い
貧弱なサーバだとつらいものがあるので、unicornのプロセスを減らしてpostgresのメモリ使用量も減らします。
/etc/gitlab/gitlab.rb
external_url "http://gitlab.icchy.net:8081" unicorn["worker_processes"] = 1 postgresql["shared_buffers"] = "128MB" postgresql["effective_cache_size"] = "32MB"
dovecotが死ぬ
gitlab設定後、今まで使ってたメールが使えなくなりました。
原因を調べてみたところ、iptablesで塞がれていました。
/etc/sysconfig/iptables
-A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited
コメントアウトしてしまいましょう。
/etc/gitlab/gitlab.rb
の中身を書き換えたあとはgitlab-ctl reconfigure
またはgitlab-ctl restart
で設定を反映してください。