在 Ubuntu 12.04 上安装 GitLab
2012年11月19日 | 标签: git, gitlab, ubuntu
我们需要一套能自己托管 git 的工具,类似 GitHub,但是要求能 host 在自己的服务器上,看了一下 Git Enterprise 版本,20人每年授权费用是5000美金,太贵,只能找找类似的开源工具,以前用的是 Redmine + Git 和 Trac + Git/Subversion 来管理实验室的项目,有点腻了,听一个朋友说 GitLab 挺好用、基于 Rails & Gitolite、社区活跃每月都有 release、安装起来比 Gitorious 要简单。下午没事装了一个试了一下,感觉还不错,有个重要功能是支持 LDAP 认证,可以很容易和我们的 LDAP 服务器连起来,这样我们不需要在 GitLab 里另外创建用户就可以使用 GitLab 了。GitLab 的官方安装文档非常详细,按照步骤就可以完成安装。
安装 GitLab
安装 curl 后下载 GitLab 的自动安装脚本 debian_ubuntu.sh 并安装:
$ sudo apt-get install curl $ sudo curl https://raw.github.com/gitlabhq/gitlab-recipes/master/install/debian_ubuntu.sh | sh
上面的安装脚本只进行了完成了部分工作,接下来安装一些库和包、下载 gitlab 源代码、拷贝配置文件:
$ sudo gem install charlock_holmes --version '0.6.8' $ sudo pip install pygments $ sudo gem install bundler $ cd /home/gitlab # 下载 gitlab 源代码 $ sudo -H -u gitlab git clone -b stable https://github.com/gitlabhq/gitlabhq.git gitlab $ cd gitlab # 拷贝配置文件 $ sudo -u gitlab cp config/gitlab.yml.example config/gitlab.yml
安装数据库引擎(可选 SQLite, MySQL, Postgres)、根据对应的数据库引擎(这里选择 SQLite)选择拷贝相应的配置文件并按照对应的 gem,最后安装数据库表:
$ sudo apt-get install -y sqlite3 libsqlite3-dev $ sudo -u gitlab cp config/database.yml.sqlite config/database.yml $ sudo -u gitlab -H bundle install --without development test mysql postgres --deployment $ sudo -u gitlab bundle exec rake gitlab:app:setup RAILS_ENV=production
配置 gitlab hooks:
$ sudo cp ./lib/hooks/post-receive /home/git/.gitolite/hooks/common/post-receive $ sudo chown git:git /home/git/.gitolite/hooks/common/post-receive
测试一下程序状态,是否该有的配置文件都有了:
$ sudo -u gitlab bundle exec rake gitlab:app:status RAILS_ENV=production
运行 gitlab 和 resque:
$ sudo -u gitlab bundle exec rails s -e production $ sudo -u gitlab bundle exec rake environment resque:work QUEUE=* RAILS_ENV=production BACKGROUND=yes
下载 gitlab 启动脚本并设为系统自动启动:
$ sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/init.d/gitlab -P /etc/init.d/ $ sudo chmod +x /etc/init.d/gitlab $ sudo update-rc.d gitlab defaults 21
现在可以通过 /etc/init.d/gitlab 来启动、关闭和重启 gitlab 服务了:
$ sudo /etc/init.d/gitlab restart
配置 LDAP 支持(可选)
如果需要配置 LDAP 认证登陆,修改 gitlab.yml 文件的 2. Auth settings 部分:
$ sudo vi config/gitlab.yml # # 2. Auth settings # ========================== ldap: enabled: true host: 'ldap.vpsee.com' base: 'dc=vpsee,dc=com' port: 636 uid: 'uid' method: 'ssl' # plain bind_dn: 'cn=admin,dc=vpsee,dc=com' password: 'password'
安装和配置 Nginx + Unicorn
GitLab 可以用 Rails 自带的服务器独立运行,但是在生产环境我们选择用 Nginx + Unicorn:
# 配置 Unicorn $ cd /home/gitlab/gitlab $ sudo -u gitlab cp config/unicorn.rb.example config/unicorn.rb $ sudo -u gitlab bundle exec unicorn_rails -c config/unicorn.rb -E production -D # 安装 nginx $ sudo apt-get install nginx # 增加 gitlab 的 nginx 配置文件 $ sudo wget https://raw.github.com/gitlabhq/gitlab-recipes/master/nginx/gitlab -P /etc/nginx/sites-available/ $ sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab # 修改 **YOUR_SERVER_IP** 和 **YOUR_SERVER_FQDN** $ sudo vi /etc/nginx/sites-enabled/gitlab # 重启 nginx $ sudo /etc/init.d/nginx restart
测试
打开浏览器访问这台机器域名或 IP 地址,默认用户名是 [email protected] 密码是 5iveL!fe,登陆后可见如下界面: